X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=libjava%2Fjava%2Flang%2FString.java;fp=libjava%2Fjava%2Flang%2FString.java;h=0000000000000000000000000000000000000000;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=b485ffecfcfe1f93702fff4923ad7ecea38b06d9;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java deleted file mode 100644 index b485ffec..00000000 --- a/libjava/java/lang/String.java +++ /dev/null @@ -1,411 +0,0 @@ -/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -package java.lang; -import java.io.UnsupportedEncodingException; -import java.io.Serializable; -import java.lang.Comparable; -import java.util.Comparator; -import java.util.Locale; - -/** - * @author Per Bothner - * @date September 4, 1998. - */ -/* Written using "Java Class Libraries", 2nd edition, plus online - * API docs for JDK 1.2 beta from http://www.javasoft.com. - * Status: Complete to 1.3. - */ - -public final class String implements Serializable, Comparable, CharSequence -{ - private Object data; - private int boffset; // Note this is a byte offset - don't use in Java code! - private int count; - - // This is probably not necessary because this class is special cased already - // but it will avoid showing up as a discrepancy when comparing SUIDs. - private static final long serialVersionUID = -6849794470754667710L; - - /** - * An implementation for {@link CASE_INSENSITIVE_ORDER}. - * This must be {@link Serializable}. - */ - private static final class CaseInsensitiveComparator - implements Comparator, Serializable - { - /** - * The default private constructor generates unnecessary overhead - */ - CaseInsensitiveComparator() {} - - /** - * Compares two Strings, using - * String.compareToIgnoreCase(String). - * - * @param o1 the first string - * @param o2 the second string - * @return < 0, 0, or > 0 depending on the case-insensitive - * comparison of the two strings. - * @throws NullPointerException if either argument is null - * @throws ClassCastException if either argument is not a String - * @see #compareToIgnoreCase(String) - */ - public int compare(Object o1, Object o2) - { - return ((String) o1).compareToIgnoreCase((String) o2); - } - } - - /** - * A Comparator that uses String.compareToIgnoreCase(String). - * This comparator is {@link Serializable}. - * - * @since 1.2 - */ - public static final Comparator CASE_INSENSITIVE_ORDER - = new CaseInsensitiveComparator(); - - public String () - { - init(); - } - - public String (String value) - { - data = value.data; - boffset = value.boffset; - count = value.count; - } - - public String (StringBuffer buffer) - { - synchronized (buffer) - { - buffer.shared = true; - init (buffer.value, 0, buffer.count, true); - } - } - - // This is used by gnu.gcj.runtime.StringBuffer, so it must have - // package-private protection. It is accessed via CNI and so avoids - // ordinary protection mechanisms. - String (gnu.gcj.runtime.StringBuffer buffer) - { - // No need to synchronize or mark the buffer, since we know it is - // only used once. - init (buffer.value, 0, buffer.count, true); - } - - public String (char[] data) - { - init(data, 0, data.length, false); - } - - public String (char[] data, int offset, int count) - { - init(data, offset, count, false); - } - - public String (byte[] byteArray) - { - this (byteArray, 0, byteArray.length); - } - - public String (byte[] byteArray, int offset, int count) - { - try - { - init (byteArray, offset, count, - System.getProperty("file.encoding", "8859_1")); - } - catch (UnsupportedEncodingException x1) - { - // Maybe the default encoding is bad. - try - { - init (byteArray, offset, count, "8859_1"); - } - catch (UnsupportedEncodingException x2) - { - // We know this can't happen. - } - } - } - - public String (byte[] byteArray, String enc) - throws UnsupportedEncodingException - { - this (byteArray, 0, byteArray.length, enc); - } - - public String (byte[] byteArray, int offset, int count, String enc) - throws UnsupportedEncodingException - { - init (byteArray, offset, count, enc); - } - - public static String copyValueOf(char[] data) - { - return copyValueOf (data, 0, data.length); - } - - public static String copyValueOf(char[] data, int offset, int count) - { - String r = new String (); - r.init(data, offset, count, false); - return r; - } - - /** @deprecated */ - public String (byte[] ascii, int hibyte) - { - init(ascii, hibyte, 0, ascii.length); - } - - /** @deprecated */ - public String (byte[] ascii, int hibyte, int offset, int count) - { - init(ascii, hibyte, offset, count); - } - - public String toString () - { - return this; - } - - public native boolean equals (Object anObject); - - public native int hashCode (); - - public int length () - { - return count; - } - - public native char charAt (int index); - - public native void getChars (int srcBegin, int srcEnd, - char[] dst, int dstBegin); - - public byte[] getBytes () - { - try - { - return getBytes (System.getProperty("file.encoding", "8859_1")); - } - catch (UnsupportedEncodingException x) - { - // This probably shouldn't happen, but could if file.encoding - // is somehow changed to a value we don't understand. - try - { - return getBytes ("8859_1"); - } - catch (UnsupportedEncodingException x2) - { - // This really shouldn't happen, because the 8859_1 - // encoding should always be available. - throw new InternalError ("couldn't find 8859_1 encoder"); - } - } - } - - public native byte[] getBytes (String enc) - throws UnsupportedEncodingException; - - /** @deprecated */ - public native void getBytes (int srcBegin, int srcEnd, - byte[] dst, int dstBegin); - - public native char[] toCharArray (); - - public native boolean equalsIgnoreCase (String anotherString); - - public native int compareTo (String anotherString); - - public int compareTo (Object obj) - { - return compareTo ((String)obj); - } - - public int compareToIgnoreCase (String str) - { - return this.toUpperCase().toLowerCase().compareTo( - str.toUpperCase().toLowerCase()); - } - - public native boolean regionMatches (int toffset, - String other, int ooffset, int len); - - public native boolean regionMatches (boolean ignoreCase, int toffset, - String other, int ooffset, int len); - - public boolean startsWith (String prefix) - { - return startsWith (prefix, 0); - } - - public native boolean startsWith (String prefix, int toffset); - - public boolean endsWith (String suffix) - { - return regionMatches (this.count - suffix.count, suffix, 0, suffix.count); - } - - // No such method specified in the doc, including JDK 1.2. - // public boolean endsWith (String suffix, int toffset) - // { - // return regionMatches (toffset, suffix, 0, suffix.count); - // } - - // The Language Specification, and the JDK 1.2 API docs say that - // index and lastIndex take an int, while the Class Libraries - // say they take a char. The former wins ... - - public int indexOf (int ch) - { - return indexOf (ch, 0); - } - - public native int indexOf (int ch, int fromIndex); - - public int indexOf (String str) - { - return indexOf (str, 0); - } - - public native int indexOf (String str, int fromIndex); - - public int lastIndexOf (int ch) - { - return lastIndexOf (ch, count - 1); - } - - public native int lastIndexOf (int ch, int fromIndex); - - public int lastIndexOf (String str) - { - return lastIndexOf (str, count - str.count); - } - - public int lastIndexOf (String str, int fromIndex) - { - if (fromIndex >= count) - fromIndex = count - str.count; - for (;; --fromIndex) - { - if (fromIndex < 0) - return -1; - if (startsWith(str, fromIndex)) - return fromIndex; - } - } - - /** - * Creates a substring of this String, starting at a specified index - * and ending at one character before a specified index. - *

- * To implement CharSequence. - * Calls substring(beginIndex, endIndex). - * - * @param beginIndex index to start substring (base 0) - * @param endIndex index after the last character to be - * copied into the substring - * - * @return new String which is a substring of this String - * - * @exception StringIndexOutOfBoundsException - * if (beginIndex < 0 || endIndex > this.length() || beginIndex > endIndex) - */ - public CharSequence subSequence(int beginIndex, int endIndex) - throws IndexOutOfBoundsException - { - return substring(beginIndex, endIndex); - } - - public String substring (int beginIndex) - { - return substring (beginIndex, count); - } - - public native String substring (int beginIndex, int endIndex); - - public native String concat (String str); - - public native String replace (char oldChar, char newChar); - - public native String toLowerCase (Locale locale); - public native String toUpperCase (Locale locale); - - public String toLowerCase () - { - // The JDK is a bit confused about what to do here. If we pass in - // the default Locale then special Locale handling might be - // invoked. However, the docs also say that Character.toLowerCase - // rules here. We go with the latter. - return toLowerCase (null); - } - - public String toUpperCase () - { - // The JDK is a bit confused about what to do here. If we pass in - // the default Locale then special Locale handling might be - // invoked. However, the docs also say that Character.toLowerCase - // rules here. We go with the latter. - return toUpperCase (null); - } - - public native String trim (); - - public static String valueOf (Object obj) - { - return obj == null ? "null" : obj.toString(); - } - - public static String valueOf (char[] data) - { - return valueOf (data, 0, data.length); - } - - public static native String valueOf (char[] data, int offset, int count); - - public static String valueOf (boolean b) - { - return b ? "true" : "false"; - } - - public static native String valueOf (char c); - - public static native String valueOf (int i); - - public static String valueOf (long l) - { - return Long.toString(l); - } - - public static String valueOf (float f) - { - return Float.toString(f); - } - - public static String valueOf (double d) - { - return Double.toString(d); - } - - public native String intern (); - - private native void init (); - private native void init (char[] chars, int offset, int count, - boolean dont_copy); - private native void init (byte[] chars, int hibyte, int offset, int count); - private native void init (byte[] chars, int offset, int count, String enc) - throws UnsupportedEncodingException; - private static native void rehash (); -}