001    package org.bridj.objc;
002    import org.bridj.*;
003    import org.bridj.objc.*;
004    import org.bridj.ann.Field;
005    import org.bridj.ann.Library;
006    import org.bridj.ann.Runtime;
007    import org.bridj.ann.Array;
008    import org.bridj.ann.Ptr;
009    import org.bridj.cpp.com.*;
010    import static org.bridj.Pointer.*;
011    import static org.bridj.BridJ.*;
012    
013    @Library("Foundation")
014    public class NSNumber extends NSObject {
015        static {
016            BridJ.register();
017        }
018    
019            public static native Pointer<NSNumber> numberWithBool(boolean value);
020            public static native Pointer<NSNumber> numberWithInt(int value);
021            public static native Pointer<NSNumber> numberWithDouble(double e);
022            public static native Pointer<NSNumber> numberWithLong(long value);
023            public static native Pointer<NSNumber> numberWithFloat(float value);
024            
025            public native short shortValue();
026            public native int intValue();
027            public native long longValue();
028            public native float floatValue();
029            public native double doubleValue();
030            public native int compare(Pointer<NSNumber> another);
031            
032            public native boolean isEqualToNumber(Pointer<NSNumber> another);
033            
034            @Override
035            public boolean equals(Object o) {
036                    if (!(o instanceof NSNumber))
037                            return false;
038                    
039                    NSNumber nn = (NSNumber)o;
040                    return isEqualToNumber(pointerTo(nn));
041            }
042    }