]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/src/org/simantics/databoard/primitives/UnsignedInteger.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / primitives / UnsignedInteger.java
index 35523e45eef4070bd5343181fdcc0ad0508b9529..0fe14ea2dcba3e28aabf71194d2bfb72e8fc6cd4 100644 (file)
-package org.simantics.databoard.primitives;\r
-\r
-\r
-/**\r
- * Unsigned 32-bit integer value, either mutable or immutable. \r
- * The value is between 0 and 4294967295.\r
- * \r
- * Example use: \r
- *    UnsignedInteger x = new UnsignedInteger.Mutable(); \r
- *    UnsignedInteger y = new UnsignedInteger.Immutable(4); \r
- *    UnsignedInteger z = UnsingedInteger.valueOf(5);\r
- *\r
- * @author Toni Kalajainen <toni.kalajainen@iki.fi>\r
- */\r
-public abstract class UnsignedInteger extends Number implements Comparable<Number> {\r
-\r
-       private static final long serialVersionUID = 1L;\r
-\r
-       public static final UnsignedInteger MIN_VALUE, MAX_VALUE, ZERO;\r
-       \r
-       static long MASK = 0xFFFFFFFFl;\r
-       public static final long L_MAX_VALUE = 0xFFFFFFFFL;\r
-       public static final long L_MIN_VALUE = 0;\r
-\r
-       /** Value container */\r
-       int value;\r
-       \r
-    public static UnsignedInteger fromBits(int intBits) {\r
-               if (intBits>=0 && intBits<CACHE.length) return CACHE[intBits];\r
-               return UnsignedInteger.Immutable.fromBits(intBits);\r
-    }  \r
-\r
-    public static UnsignedInteger valueOf(long value) {\r
-               if ( value>=0 && value<CACHE.length ) return CACHE[(int)value];\r
-       if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");               \r
-               return new Immutable(value);            \r
-    }\r
-       \r
-       public static class Mutable extends UnsignedInteger {\r
-\r
-               private static final long serialVersionUID = 1L;\r
-\r
-               public Mutable() {}\r
-               \r
-               /**\r
-                * Create new unsigned integer from a signed integer.\r
-                * Use #fromBits() to make bitwise conversion\r
-                * \r
-                * @param value signed integer\r
-                * @throws IllegalArgumentException if argument is sub zero\r
-                */\r
-           public Mutable(int value) throws IllegalArgumentException {\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = value;\r
-           }\r
-\r
-           public Mutable(long value) throws IllegalArgumentException {\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = (int) value;\r
-           }\r
-\r
-           public Mutable(String stringValue) throws IllegalArgumentException {\r
-               long value = Long.parseLong(stringValue);\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = (int) value;\r
-           }   \r
-           \r
-           public static UnsignedInteger fromBits(int intBits) {\r
-               Mutable result = new Mutable();\r
-               result.value = intBits;\r
-               return result;\r
-           }   \r
-           \r
-           public void setBits(int intBits) {\r
-               this.value = intBits;\r
-           }\r
-           \r
-           public void setValue(int value) {\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = value;\r
-           }\r
-           \r
-           public void setValue(long value) {\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = (int) value;\r
-           }       \r
-               \r
-       }\r
-       \r
-       public final static class Immutable extends UnsignedInteger {\r
-\r
-               private static final long serialVersionUID = 1L;        \r
-\r
-               Immutable() {}\r
-               \r
-               /**\r
-                * Create new unsigned integer from a signed integer.\r
-                * Use #fromBits() to make bitwise conversion\r
-                * \r
-                * @param value signed integer\r
-                * @throws IllegalArgumentException if argument is sub zero\r
-                */\r
-           public Immutable(int value) throws IllegalArgumentException {\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = value;\r
-           }\r
-\r
-           public Immutable(long value) throws IllegalArgumentException {\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = (int) value;\r
-           }\r
-\r
-           public Immutable(String stringValue) throws IllegalArgumentException {\r
-               long value = Long.parseLong(stringValue);\r
-               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");\r
-               this.value = (int) value;\r
-           }   \r
-                                   \r
-       }       \r
-           \r
-    public int toBits() {\r
-       return value;\r
-    }\r
-       \r
-       @Override\r
-       public int intValue() {\r
-               return value;\r
-       }\r
-       \r
-       @Override\r
-       public long longValue() {\r
-               return value & MASK;\r
-       }\r
-       \r
-       @Override\r
-       public float floatValue() {\r
-               return value & MASK;\r
-       }\r
-       @Override\r
-       public double doubleValue() {\r
-               return value & MASK;\r
-       }\r
-       \r
-    @Override\r
-       public boolean equals(Object obj) {\r
-               if (obj == null) return false;\r
-               if (obj == this) return true;\r
-               \r
-               if (obj instanceof UnsignedInteger == false) return false;\r
-               UnsignedInteger other = (UnsignedInteger) obj;\r
-               return value == other.value;\r
-       }\r
-    \r
-    @Override\r
-    public String toString() {\r
-        return Long.toString(value & MASK);\r
-    }\r
-    \r
-       @Override\r
-       public int compareTo(Number obj) {\r
-        return Long.signum( (value & MASK) - obj.longValue() );\r
-       }\r
-       \r
-       @Override\r
-       public int hashCode() {\r
-               return value;\r
-       }\r
-\r
-       // Initialize Cache\r
-       private static int CACHE_SIZE = 16;\r
-       private static UnsignedInteger.Immutable[] CACHE;\r
-       static {\r
-               CACHE = new UnsignedInteger.Immutable[CACHE_SIZE];\r
-               for (int i=0; i<CACHE_SIZE; i++) CACHE[i] = new UnsignedInteger.Immutable(i);\r
-               ZERO = MIN_VALUE = CACHE[0];\r
-               MAX_VALUE = new UnsignedInteger.Immutable(L_MAX_VALUE);\r
-       }                   \r
-       \r
-}\r
+package org.simantics.databoard.primitives;
+
+
+/**
+ * Unsigned 32-bit integer value, either mutable or immutable. 
+ * The value is between 0 and 4294967295.
+ * 
+ * Example use: 
+ *    UnsignedInteger x = new UnsignedInteger.Mutable(); 
+ *    UnsignedInteger y = new UnsignedInteger.Immutable(4); 
+ *    UnsignedInteger z = UnsingedInteger.valueOf(5);
+ *
+ * @author Toni Kalajainen <toni.kalajainen@iki.fi>
+ */
+public abstract class UnsignedInteger extends Number implements Comparable<Number> {
+
+       private static final long serialVersionUID = 1L;
+
+       public static final UnsignedInteger MIN_VALUE, MAX_VALUE, ZERO;
+       
+       static long MASK = 0xFFFFFFFFl;
+       public static final long L_MAX_VALUE = 0xFFFFFFFFL;
+       public static final long L_MIN_VALUE = 0;
+
+       /** Value container */
+       int value;
+       
+    public static UnsignedInteger fromBits(int intBits) {
+               if (intBits>=0 && intBits<CACHE.length) return CACHE[intBits];
+               return UnsignedInteger.Immutable.fromBits(intBits);
+    }  
+
+    public static UnsignedInteger valueOf(long value) {
+               if ( value>=0 && value<CACHE.length ) return CACHE[(int)value];
+       if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");               
+               return new Immutable(value);            
+    }
+       
+       public static class Mutable extends UnsignedInteger {
+
+               private static final long serialVersionUID = 1L;
+
+               public Mutable() {}
+               
+               /**
+                * Create new unsigned integer from a signed integer.
+                * Use #fromBits() to make bitwise conversion
+                * 
+                * @param value signed integer
+                * @throws IllegalArgumentException if argument is sub zero
+                */
+           public Mutable(int value) throws IllegalArgumentException {
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = value;
+           }
+
+           public Mutable(long value) throws IllegalArgumentException {
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = (int) value;
+           }
+
+           public Mutable(String stringValue) throws IllegalArgumentException {
+               long value = Long.parseLong(stringValue);
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = (int) value;
+           }   
+           
+           public static UnsignedInteger fromBits(int intBits) {
+               Mutable result = new Mutable();
+               result.value = intBits;
+               return result;
+           }   
+           
+           public void setBits(int intBits) {
+               this.value = intBits;
+           }
+           
+           public void setValue(int value) {
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = value;
+           }
+           
+           public void setValue(long value) {
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = (int) value;
+           }       
+               
+       }
+       
+       public final static class Immutable extends UnsignedInteger {
+
+               private static final long serialVersionUID = 1L;        
+
+               Immutable() {}
+               
+               /**
+                * Create new unsigned integer from a signed integer.
+                * Use #fromBits() to make bitwise conversion
+                * 
+                * @param value signed integer
+                * @throws IllegalArgumentException if argument is sub zero
+                */
+           public Immutable(int value) throws IllegalArgumentException {
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = value;
+           }
+
+           public Immutable(long value) throws IllegalArgumentException {
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = (int) value;
+           }
+
+           public Immutable(String stringValue) throws IllegalArgumentException {
+               long value = Long.parseLong(stringValue);
+               if ( value<L_MIN_VALUE || value>L_MAX_VALUE ) throw new IllegalArgumentException("Argument is not within range");
+               this.value = (int) value;
+           }   
+                                   
+       }       
+           
+    public int toBits() {
+       return value;
+    }
+       
+       @Override
+       public int intValue() {
+               return value;
+       }
+       
+       @Override
+       public long longValue() {
+               return value & MASK;
+       }
+       
+       @Override
+       public float floatValue() {
+               return value & MASK;
+       }
+       @Override
+       public double doubleValue() {
+               return value & MASK;
+       }
+       
+    @Override
+       public boolean equals(Object obj) {
+               if (obj == null) return false;
+               if (obj == this) return true;
+               
+               if (obj instanceof UnsignedInteger == false) return false;
+               UnsignedInteger other = (UnsignedInteger) obj;
+               return value == other.value;
+       }
+    
+    @Override
+    public String toString() {
+        return Long.toString(value & MASK);
+    }
+    
+       @Override
+       public int compareTo(Number obj) {
+        return Long.signum( (value & MASK) - obj.longValue() );
+       }
+       
+       @Override
+       public int hashCode() {
+               return value;
+       }
+
+       // Initialize Cache
+       private static int CACHE_SIZE = 16;
+       private static UnsignedInteger.Immutable[] CACHE;
+       static {
+               CACHE = new UnsignedInteger.Immutable[CACHE_SIZE];
+               for (int i=0; i<CACHE_SIZE; i++) CACHE[i] = new UnsignedInteger.Immutable(i);
+               ZERO = MIN_VALUE = CACHE[0];
+               MAX_VALUE = new UnsignedInteger.Immutable(L_MAX_VALUE);
+       }                   
+       
+}