001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.commons.lang.types;
020
021/**
022 * Integer Type that can be modified
023 */
024public final class RefLongImpl implements RefLong {
025
026    private long value;
027
028
029    /**
030     * Constructor of the class
031     * @param value
032     */
033    public RefLongImpl(long value) {
034        this.value=value;
035    }
036    
037    /**
038     * Constructor of the class
039     */
040    public RefLongImpl() {
041    }
042    
043    @Override
044    public void setValue(long value) {
045        this.value = value;
046    }
047    
048    @Override
049    public void plus(long value) {
050        this.value+=value;
051    }
052    
053    @Override
054    public void minus(long value) {
055        this.value-=value;
056    }
057
058    @Override
059    public Long toLong() {
060        return Long.valueOf(value);
061    }
062    
063        @Override
064        public long toLongValue() {
065                return value;
066        }
067        
068    @Override
069    public String toString() {
070        return String.valueOf(value);
071    }
072}