001    package org.bridj.objc;
002    import org.bridj.Pointer;
003    import org.bridj.Pointer.StringType;
004    import org.bridj.ann.Library;
005    import java.nio.charset.*;
006    import static org.bridj.objc.FoundationLibrary.*;
007    
008    @Library("Foundation")
009    public class NSString extends NSObject {
010    
011        public native int length();
012        public native boolean isAbsolutePath();
013        public native Pointer<Byte> UTF8String();
014    
015        public NSString() {
016            super();
017        }
018        public NSString(String s) {
019            super(pointerToNSString(s));
020        }
021        public String toString() {
022                    return UTF8String().getString(StringType.C, Charset.forName("utf-8"));
023        }
024        public int hashCode() {
025                    return toString().hashCode();
026        }
027        
028        /*
029        public boolean equals(Object o) {
030                    if (!(o instanceof NSString))
031                            return false;
032                    return o.toString().equals(toString());
033        }
034        */
035        
036        public static NSString valueOf(String s) {
037            return pointerToNSString(s).get();
038        }
039        
040    }