001 package com.softnetConsult.utils.mutableWrappers;
002
003 /**
004 * This class wraps a single <strong>public</strong> variable of type {@code float} -
005 * it can be used to emulate passing float values by reference.
006 * All methods here are self-explanatory and perform the same function as the corresponding
007 * methods of the classes {@link java.lang.Number} and {@link java.lang.Float}.
008 *
009 * <p style="font-size:smaller;">This product includes software developed by the
010 * <strong>SoftNet-Consult Java Utility Library</strong> project and its contributors.<br />
011 * (<a href="http://java-tools.sourceforge.net" target="_blank">http://java-tools.sourceforge.net</a>)<br />
012 * Copyright (c) 2007-2008 SoftNet-Consult.<br />
013 * Copyright (c) 2007-2008 G. Paperin.<br />
014 * All rights reserved.
015 * </p>
016 * <p style="font-size:smaller;">File: MutableFloat.java<br />
017 * Library API version: {@value com.softnetConsult.utils.APIProperties#apiVersion}<br />
018 * Java compliance version: {@value com.softnetConsult.utils.APIProperties#javaComplianceVersion}
019 * </p>
020 * <p style="font-size:smaller;">Redistribution and use in source and binary forms, with or
021 * without modification, are permitted provided that the following terms and conditions are met:
022 * </p>
023 * <p style="font-size:smaller;">1. Redistributions of source code must retain the above
024 * acknowledgement of the SoftNet-Consult Java Utility Library project, the above copyright
025 * notice, this list of conditions and the following disclaimer.<br />
026 * 2. Redistributions in binary form must reproduce the above acknowledgement of the
027 * SoftNet-Consult Java Utility Library project, the above copyright notice, this list of
028 * conditions and the following disclaimer in the documentation and/or other materials
029 * provided with the distribution.<br />
030 * 3. All advertising materials mentioning features or use of this software or any derived
031 * software must display the following acknowledgement:<br />
032 * <em>This product includes software developed by the SoftNet-Consult Java Utility Library
033 * project and its contributors.</em>
034 * </p>
035 * <p style="font-size:smaller;">THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY
036 * OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
037 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
038 * THE AUTHORS, CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
039 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
040 * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
041 * </p>
042 * @author Greg Paperin (<a href="http://www.paperin.org" target="_blank">http://www.paperin.org</a>)
043 * @version {@value com.softnetConsult.utils.APIProperties#apiVersion}
044 *
045 */
046 public class MutableFloat extends Number implements MutableWrapper {
047
048 public float value = Float.NaN;
049
050 public MutableFloat() {}
051
052 public MutableFloat(float value) {
053 this.value = value;
054 }
055
056 public MutableFloat(String value) {
057 this.value = Float.parseFloat(value);
058 }
059
060 public boolean booleanValue() { return (0.0f == this.value); }
061 @Override public byte byteValue() { return (byte) this.value; }
062 @Override public short shortValue() { return (short) this.value; }
063 @Override public int intValue() { return (int) this.value; }
064 @Override public long longValue() { return (long) this.value; }
065 @Override public float floatValue() { return this.value; }
066 @Override public double doubleValue() { return (double) this.value; }
067 public String stringValue() { return Float.toString(this.value); }
068 @Override public String toString() { return stringValue(); }
069
070 } // public class MutableFloat