javaprims.h: Updated class declaration list.
* gcj/javaprims.h: Updated class declaration list. * Makefile.in: Rebuilt. * Makefile.am (core_java_source_files): Added PropertyPermissionCollection.java. * java/lang/Thread.java (group, name): Now package-private. * java/lang/ThreadGroup.java: Re-merge with Classpath. * java/util/AbstractList.java: Likewise. * java/util/AbstractMap.java: Likewise. * java/util/Calendar.java: Likewise. * java/util/Collections.java: Likewise. * java/util/HashMap.java: Likewise. * java/util/Hashtable.java: Likewise. * java/util/LinkedHashMap.java: Likewise. * java/util/LinkedList.java: Likewise. * java/util/List.java: Likewise. * java/util/ListResourceBundle.java: Likewise. * java/util/Map.java: Likewise. * java/util/Observable.java: Likewise. * java/util/Properties.java: Likewise. * java/util/PropertyPermission.java: Likewise. * java/util/PropertyPermissionCollection.java: Likewise. * java/util/PropertyResourceBundle.java: Likewise. * java/util/Random.java: Likewise. * java/util/SimpleTimeZone.java: Likewise. * java/util/StringTokenizer.java: Likewise. * java/util/TimerTask.java: Likewise. * java/util/TreeMap.java: Likewise. * java/util/WeakHashMap.java: Likewise. * java/util/jar/Attributes.java: Likewise. * java/util/jar/JarException.java: Likewise. * java/util/jar/Manifest.java: Likewise. From-SVN: r54743
This commit is contained in:
parent
0fd534ed06
commit
3831381763
31 changed files with 2304 additions and 1518 deletions
|
@ -1,5 +1,5 @@
|
|||
/* AbstractMap.java -- Abstract implementation of most of Map
|
||||
Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
|
@ -518,4 +518,130 @@ public abstract class AbstractMap implements Map
|
|||
{
|
||||
return o == null ? 0 : o.hashCode();
|
||||
}
|
||||
|
||||
/**
|
||||
* A class which implements Map.Entry. It is shared by HashMap, TreeMap,
|
||||
* Hashtable, and Collections. It is not specified by the JDK, but makes
|
||||
* life much easier.
|
||||
*
|
||||
* @author Jon Zeppieri
|
||||
* @author Eric Blake <ebb9@email.byu.edu>
|
||||
*/
|
||||
static class BasicMapEntry implements Map.Entry
|
||||
{ // XXX - FIXME Use fully qualified implements as gcj 3.1 workaround.
|
||||
/**
|
||||
* The key. Package visible for direct manipulation.
|
||||
*/
|
||||
Object key;
|
||||
|
||||
/**
|
||||
* The value. Package visible for direct manipulation.
|
||||
*/
|
||||
Object value;
|
||||
|
||||
/**
|
||||
* Basic constructor initializes the fields.
|
||||
* @param newKey the key
|
||||
* @param newValue the value
|
||||
*/
|
||||
BasicMapEntry(Object newKey, Object newValue)
|
||||
{
|
||||
key = newKey;
|
||||
value = newValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compares the specified object with this entry. Returns true only if
|
||||
* the object is a mapping of identical key and value. In other words,
|
||||
* this must be:
|
||||
*
|
||||
<pre>(o instanceof Map.Entry) &&
|
||||
(getKey() == null ? ((HashMap) o).getKey() == null
|
||||
: getKey().equals(((HashMap) o).getKey())) &&
|
||||
(getValue() == null ? ((HashMap) o).getValue() == null
|
||||
: getValue().equals(((HashMap) o).getValue()))</pre>
|
||||
*
|
||||
* @param o the object to compare
|
||||
*
|
||||
* @return <code>true</code> if it is equal
|
||||
*/
|
||||
public final boolean equals(Object o)
|
||||
{
|
||||
if (! (o instanceof Map.Entry))
|
||||
return false;
|
||||
// Optimize for our own entries.
|
||||
if (o instanceof BasicMapEntry)
|
||||
{
|
||||
BasicMapEntry e = (BasicMapEntry) o;
|
||||
return (AbstractMap.equals(key, e.key)
|
||||
&& AbstractMap.equals(value, e.value));
|
||||
}
|
||||
Map.Entry e = (Map.Entry) o;
|
||||
return (AbstractMap.equals(key, e.getKey())
|
||||
&& AbstractMap.equals(value, e.getValue()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the key corresponding to this entry.
|
||||
*
|
||||
* @return the key
|
||||
*/
|
||||
public final Object getKey()
|
||||
{
|
||||
return key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the value corresponding to this entry. If you already called
|
||||
* Iterator.remove(), the behavior undefined, but in this case it works.
|
||||
*
|
||||
* @return the value
|
||||
*/
|
||||
public final Object getValue()
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the hash code of the entry. This is defined as the exclusive-or
|
||||
* of the hashcodes of the key and value (using 0 for null). In other
|
||||
* words, this must be:
|
||||
*
|
||||
<pre>(getKey() == null ? 0 : getKey().hashCode())
|
||||
^ (getValue() == null ? 0 : getValue().hashCode())</pre>
|
||||
*
|
||||
* @return the hash code
|
||||
*/
|
||||
public final int hashCode()
|
||||
{
|
||||
return (AbstractMap.hashCode(key) ^ AbstractMap.hashCode(value));
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces the value with the specified object. This writes through
|
||||
* to the map, unless you have already called Iterator.remove(). It
|
||||
* may be overridden to restrict a null value.
|
||||
*
|
||||
* @param newVal the new value to store
|
||||
* @return the old value
|
||||
* @throws NullPointerException if the map forbids null values
|
||||
*/
|
||||
public Object setValue(Object newVal)
|
||||
{
|
||||
Object r = value;
|
||||
value = newVal;
|
||||
return r;
|
||||
}
|
||||
|
||||
/**
|
||||
* This provides a string representation of the entry. It is of the form
|
||||
* "key=value", where string concatenation is used on key and value.
|
||||
*
|
||||
* @return the string representation
|
||||
*/
|
||||
public final String toString()
|
||||
{
|
||||
return key + "=" + value;
|
||||
}
|
||||
} // class BasicMapEntry
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue