aboutsummaryrefslogtreecommitdiff
path: root/src/java/com/cycling74/max/AtomFloat.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/java/com/cycling74/max/AtomFloat.java')
-rw-r--r--src/java/com/cycling74/max/AtomFloat.java96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/java/com/cycling74/max/AtomFloat.java b/src/java/com/cycling74/max/AtomFloat.java
new file mode 100644
index 0000000..ef763f8
--- /dev/null
+++ b/src/java/com/cycling74/max/AtomFloat.java
@@ -0,0 +1,96 @@
+package com.cycling74.max;
+
+class AtomFloat extends Atom {
+ private static final long serialVersionUID = 6497612039215711052L;
+ private float value;
+
+ AtomFloat(float value) {
+ super(DataTypes.FLOAT);
+ this.value = value;
+ }
+
+ public int compareTo(Object obj) {
+ if ( obj instanceof AtomFloat ) {
+ AtomFloat f = (AtomFloat) obj;
+ if ( f.getFloat() <= getFloat() )
+ return 1;
+ else
+ return -1;
+ }
+
+ if ( obj instanceof AtomString ) {
+ return 1;
+ }
+
+ throw new ClassCastException();
+ }
+
+ public boolean isFloat() {
+ return true;
+ }
+
+ public boolean isInt() {
+ return true;
+ }
+
+ public Object toObject() {
+ return new Float(value);
+ }
+
+ public int toInt() {
+ return (int) value;
+ }
+
+ public double toDouble() {
+ return value;
+ }
+
+ public long toLong() {
+ return (long) value;
+ }
+
+ public float toFloat() {
+ return value;
+ }
+
+ public short toShort() {
+ return (short) value;
+ }
+
+ public byte toByte() {
+ return (byte) value;
+ }
+
+ public char toChar() {
+ return (char) value;
+ }
+
+ public String toString() {
+ return new Float(value).toString();
+ }
+
+ public boolean toBoolean() {
+ return value != 0;
+ }
+
+ public float getFloat() {
+ return value;
+ }
+
+ public int getInt() {
+ return (int) value;
+ }
+
+ public boolean equals(Object comp) {
+ if ( !(comp instanceof AtomFloat) ) {
+ return false;
+ }
+ AtomFloat test = (AtomFloat) comp;
+
+ return test.value == value;
+ }
+
+ public int hashCode() {
+ return new Float(value).hashCode();
+ }
+}