Package com.dd.plist

Class NSNumber

  • All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Comparable<NSObject>

    public class NSNumber
    extends NSObject
    The NSNumber class wraps a numeric value. The value can be an integer a floating point number or a boolean value.
    See Also:
    Foundation NSNumber documentation
    • Constructor Summary

      Constructors 
      Constructor Description
      NSNumber​(boolean b)
      Creates a new NSNumber instance with the specified value.
      NSNumber​(byte[] bytes, int type)
      Creates a new NSNumber instance from its binary representation.
      NSNumber​(byte[] bytes, int startIndex, int endIndex, int type)
      Creates a new NSNumber instance from its binary representation.
      NSNumber​(double d)
      Creates a new NSNumber instance with the specified value.
      NSNumber​(int i)
      Creates a new NSNumber instance with the specified value.
      NSNumber​(long l)
      Creates a new NSNumber instance with the specified value.
      NSNumber​(java.lang.String text)
      Create a NSNumber instance from its textual representation.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean boolValue()
      Gets this instance's boolean value.
      NSNumber clone()
      Creates and returns a deep copy of this instance.
      int compareTo​(NSObject o)  
      double doubleValue()
      Gets this instance's double value.
      boolean equals​(java.lang.Object obj)
      Checks whether the other object is a NSNumber of the same value.
      float floatValue()
      Gets this instance's float value.
      private java.lang.String getRealStringRepresentation()  
      int hashCode()  
      int intValue()
      Gets this instance's integer value.
      boolean isBoolean()
      Gets a value indicating whether the value of this NSNumber is a boolean.
      boolean isInteger()
      Gets a value indicating whether the value of this NSNumber is an integer.
      boolean isReal()
      Gets a value indicating whether the value of this NSNumber is a real number.
      long longValue()
      Gets this instance's long integer value.
      java.lang.String stringValue()
      Gets this instance's value expressed as a human-readable string.
      private void throwIfIntegerValueNotAvailable()  
      protected void toASCII​(java.lang.StringBuilder ascii, int level)
      Generates the ASCII representation of this object.
      protected void toASCIIGnuStep​(java.lang.StringBuilder ascii, int level)
      Generates the ASCII representation of this object in the GnuStep format.
      (package private) void toBinary​(BinaryPropertyListWriter out)
      Generates the binary representation of the object.
      java.lang.Object toJavaObject()
      Converts this NSObject into an equivalent object of the Java Runtime Environment.
      java.lang.String toString()  
      (package private) void toXML​(java.lang.StringBuilder xml, int level)
      Generates the XML representation of the object (without XML headers or enclosing plist-tags).
      int type()
      Gets the type of this instance's value.
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • INTEGER

        public static final int INTEGER
        Indicates that the number's value is an integer. The number is stored as a Java long. Its original value could have been char, short, int, long or even long long.
        See Also:
        Constant Field Values
      • REAL

        public static final int REAL
        Indicates that the number's value is a real number. The number is stored as a Java double. Its original value could have been float or double.
        See Also:
        Constant Field Values
      • BOOLEAN

        public static final int BOOLEAN
        Indicates that the number's value is boolean.
        See Also:
        Constant Field Values
      • POSTIIVE_INFINITY_SYMBOL

        private static final java.lang.String POSTIIVE_INFINITY_SYMBOL
        See Also:
        Constant Field Values
      • NEGATIVE_INFINITY_SYMBOL

        private static final java.lang.String NEGATIVE_INFINITY_SYMBOL
        See Also:
        Constant Field Values
      • type

        private int type
        Holds the current type of this number
      • longValue

        private long longValue
      • doubleValue

        private double doubleValue
      • boolValue

        private boolean boolValue
    • Constructor Detail

      • NSNumber

        public NSNumber​(byte[] bytes,
                        int type)
        Creates a new NSNumber instance from its binary representation.
        Parameters:
        bytes - The binary representation of this number.
        type - The type of number.
        See Also:
        INTEGER, REAL, BOOLEAN
      • NSNumber

        public NSNumber​(byte[] bytes,
                        int startIndex,
                        int endIndex,
                        int type)
        Creates a new NSNumber instance from its binary representation.
        Parameters:
        bytes - An array of bytes containing the binary representation of the number.
        startIndex - The position in the array at which the number is stored.
        endIndex - The position in the array at which the number's data ends.
        type - The type of number
        See Also:
        INTEGER, REAL, BOOLEAN
      • NSNumber

        public NSNumber​(java.lang.String text)
        Create a NSNumber instance from its textual representation.
        Parameters:
        text - The textual representation of the number.
        Throws:
        java.lang.IllegalArgumentException - If the text does not represent an integer, real number or boolean value.
        See Also:
        Boolean.parseBoolean(java.lang.String), Long.parseLong(java.lang.String), Double.parseDouble(java.lang.String)
      • NSNumber

        public NSNumber​(int i)
        Creates a new NSNumber instance with the specified value.
        Parameters:
        i - The integer value.
      • NSNumber

        public NSNumber​(long l)
        Creates a new NSNumber instance with the specified value.
        Parameters:
        l - The long integer value.
      • NSNumber

        public NSNumber​(double d)
        Creates a new NSNumber instance with the specified value.
        Parameters:
        d - The real value.
      • NSNumber

        public NSNumber​(boolean b)
        Creates a new NSNumber instance with the specified value.
        Parameters:
        b - The boolean value.
    • Method Detail

      • type

        public int type()
        Gets the type of this instance's value.
        Returns:
        The type flag.
        See Also:
        BOOLEAN, INTEGER, REAL
      • isBoolean

        public boolean isBoolean()
        Gets a value indicating whether the value of this NSNumber is a boolean.
        Returns:
        Whether the number's value is a boolean.
      • isInteger

        public boolean isInteger()
        Gets a value indicating whether the value of this NSNumber is an integer.
        Returns:
        Whether the number's value is an integer.
      • isReal

        public boolean isReal()
        Gets a value indicating whether the value of this NSNumber is a real number.
        Returns:
        Whether the number's value is a real number.
      • boolValue

        public boolean boolValue()
        Gets this instance's boolean value.
        Returns:
        true if the value is true or non-zero and not Double.NaN; otherwise, false.
      • longValue

        public long longValue()
        Gets this instance's long integer value.
        Returns:
        The value of the number as a long.
        Throws:
        java.lang.IllegalStateException - The integer value is not available because the value of this NSNumber instance is NaN, positive infinity or negative infinity.
      • intValue

        public int intValue()
        Gets this instance's integer value. Note: Even though the number's type might be INTEGER it can be larger than a Java int. Use intValue() only if you are certain that it contains a number from the int range. Otherwise the value might be inaccurate.
        Returns:
        The value of the number as an int.
        Throws:
        java.lang.IllegalStateException - The integer value is not available because the value of this NSNumber instance is NaN, positive infinity or negative infinity.
      • doubleValue

        public double doubleValue()
        Gets this instance's double value.
        Returns:
        The value of the number as a double.
      • floatValue

        public float floatValue()
        Gets this instance's float value. WARNING: Possible loss of precision if the value is outside the float range.
        Returns:
        The value of the number as a float.
      • stringValue

        public java.lang.String stringValue()
        Gets this instance's value expressed as a human-readable string.
        Returns:
        The human-readable string representation of this number. "+infinity" is returned for the positive infinity value (1 / 0). "-infinity" is returned for the negative infinity value (-1 / 0). "nan" is returned if the value is invalid (i.e. not a number).
      • equals

        public boolean equals​(java.lang.Object obj)
        Checks whether the other object is a NSNumber of the same value.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - The object to compare to.
        Returns:
        Whether the objects are equal in terms of numeric value and type.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • clone

        public NSNumber clone()
        Description copied from class: NSObject
        Creates and returns a deep copy of this instance.
        Specified by:
        clone in class NSObject
        Returns:
        A clone of this instance.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • toJavaObject

        public java.lang.Object toJavaObject()
        Description copied from class: NSObject
        Converts this NSObject into an equivalent object of the Java Runtime Environment.
        • NSArray objects are converted to arrays.
        • NSDictionary objects are converted to objects extending the Map class.
        • NSSet objects are converted to objects extending the Set class.
        • NSNumber objects are converted to primitive number values (int, long, double or boolean).
        • NSString objects are converted to String objects.
        • NSData objects are converted to byte arrays.
        • NSDate objects are converted to Date objects.
        • UID objects are converted to byte arrays.
        Specified by:
        toJavaObject in class NSObject
        Returns:
        A native java object representing this NSObject's value.
      • compareTo

        public int compareTo​(NSObject o)
      • toXML

        void toXML​(java.lang.StringBuilder xml,
                   int level)
        Description copied from class: NSObject
        Generates the XML representation of the object (without XML headers or enclosing plist-tags).
        Specified by:
        toXML in class NSObject
        Parameters:
        xml - The StringBuilder onto which the XML representation is appended.
        level - The indentation level of the object.
      • toBinary

        void toBinary​(BinaryPropertyListWriter out)
               throws java.io.IOException
        Description copied from class: NSObject
        Generates the binary representation of the object.
        Specified by:
        toBinary in class NSObject
        Parameters:
        out - The output stream to serialize the object to.
        Throws:
        java.io.IOException - If an I/O error occurs while writing to the stream or the object structure contains data that cannot be saved.
      • toASCII

        protected void toASCII​(java.lang.StringBuilder ascii,
                               int level)
        Description copied from class: NSObject
        Generates the ASCII representation of this object. The generated ASCII representation does not end with a newline. Complies with the Old-Style ASCII Property Lists definition.
        Specified by:
        toASCII in class NSObject
        Parameters:
        ascii - The StringBuilder onto which the ASCII representation is appended.
        level - The indentation level of the object.
      • toASCIIGnuStep

        protected void toASCIIGnuStep​(java.lang.StringBuilder ascii,
                                      int level)
        Description copied from class: NSObject
        Generates the ASCII representation of this object in the GnuStep format. The generated ASCII representation does not end with a newline.
        Specified by:
        toASCIIGnuStep in class NSObject
        Parameters:
        ascii - The StringBuilder onto which the ASCII representation is appended.
        level - The indentation level of the object.
      • throwIfIntegerValueNotAvailable

        private void throwIfIntegerValueNotAvailable()
      • getRealStringRepresentation

        private java.lang.String getRealStringRepresentation()