com.jn.langx.util.struct.mutable.MutableValueFloat Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of langx-java Show documentation
Show all versions of langx-java Show documentation
Java lang extensions for java6+, a supplement to , replacement of a Guava, commons-lang.
Core utilities, Collection utilities, IO utilities, Cache, Configuration library ...
package com.jn.langx.util.struct.mutable;
/**
* {@link MutableValue} implementation of type float
.
* When mutating instances of this object, the caller is responsible for ensuring
* that any instance where exists
is set to false
must also
* value
set to 0.0F
for proper operation.
*/
public class MutableValueFloat extends MutableValue {
public float value;
@Override
public Object toObject() {
assert exists || 0.0F == value;
return exists ? value : null;
}
@Override
public void copy(MutableValue source) {
MutableValueFloat s = (MutableValueFloat) source;
value = s.value;
exists = s.exists;
}
@Override
public MutableValue duplicate() {
MutableValueFloat v = new MutableValueFloat();
v.value = this.value;
v.exists = this.exists;
return v;
}
@Override
public boolean equalsSameType(Object other) {
assert exists || 0.0F == value;
MutableValueFloat b = (MutableValueFloat) other;
return value == b.value && exists == b.exists;
}
@Override
public int compareSameType(Object other) {
assert exists || 0.0F == value;
MutableValueFloat b = (MutableValueFloat) other;
int c = Float.compare(value, b.value);
if (c != 0) return c;
if (exists == b.exists) return 0;
return exists ? 1 : -1;
}
@Override
public int hashCode() {
assert exists || 0.0F == value;
return Float.floatToIntBits(value);
}
}