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 }