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 class RefIntegerImpl implements RefInteger {
025
026    private int value;
027
028    /**
029     * @param value
030     */
031    public RefIntegerImpl(int value) {
032        this.value=value;
033    }
034    public RefIntegerImpl() {
035    }
036    
037    /**
038     * @param value
039     */
040    public void setValue(int value) {
041        this.value = value;
042    }
043    
044    /**
045     * operation plus
046     * @param value
047     */
048    public void plus(int value) {
049        this.value+=value;
050    }
051    
052    /**
053     * operation minus
054     * @param value
055     */
056    public void minus(int value) {
057        this.value-=value;
058    }
059
060    /**
061     * @return returns value as integer
062     */
063    public Integer toInteger() {
064        return Integer.valueOf(value);
065    }
066    /**
067     * @return returns value as integer
068     */
069    public Double toDouble() {
070        return new Double(value);
071    }
072    
073
074        @Override
075        public double toDoubleValue() {
076                return value;
077        }
078        
079        @Override
080        public int toInt() {
081                return value;
082        }
083    
084    
085    @Override
086    public String toString() {
087        return String.valueOf(value);
088    }
089}