public class BasicAttributes extends Object implements Attributes
Constructor and Description |
---|
BasicAttributes() |
BasicAttributes(boolean ignoreCase) |
BasicAttributes(String attrID,
Object val) |
BasicAttributes(String attrID,
Object val,
boolean ignoreCase) |
Modifier and Type | Method and Description |
---|---|
Object |
clone()
This method may be called to create a new copy of the
Object.
|
boolean |
equals(Object obj)
Returns true if and only if the given Object is an instance of
Attributes, the given attributes both do or don't ignore case for
IDs and the collection of attributes is the same.
|
Attribute |
get(String attrID) |
NamingEnumeration<Attribute> |
getAll() |
NamingEnumeration<String> |
getIDs() |
int |
hashCode()
Get a value that represents this Object, as uniquely as
possible within the confines of an int.
|
boolean |
isCaseIgnored() |
Attribute |
put(Attribute attr) |
Attribute |
put(String attrID,
Object val) |
Attribute |
remove(String attrID) |
int |
size() |
String |
toString()
Convert this Object to a human-readable String.
|
public BasicAttributes()
public BasicAttributes(boolean ignoreCase)
public BasicAttributes(String attrID, Object val)
public BasicAttributes(String attrID, Object val, boolean ignoreCase)
public Object clone()
Object
o == o.clone()
is falseo.getClass() == o.clone().getClass()
is trueo.equals(o)
is trueHowever, these are not strict requirements, and may
be violated if necessary. Of the three requirements, the
last is the most commonly violated, particularly if the
subclass does not override Object.equals(Object)
.
If the Object you call clone() on does not implement
Cloneable
(which is a placeholder interface), then
a CloneNotSupportedException is thrown. Notice that
Object does not implement Cloneable; this method exists
as a convenience for subclasses that do.
Object's implementation of clone allocates space for the new Object using the correct class, without calling any constructors, and then fills in all of the new field values with the old field values. Thus, it is a shallow copy. However, subclasses are permitted to make a deep copy.
All array types implement Cloneable, and override
this method as follows (it should never fail):
public Object clone() { try { super.clone(); } catch (CloneNotSupportedException e) { throw new InternalError(e.getMessage()); } }
clone
in interface Attributes
clone
in class Object
Cloneable
public boolean equals(Object obj)
equals
in class Object
obj
- the Object to compare toObject.hashCode()
public Attribute get(String attrID)
get
in interface Attributes
public NamingEnumeration<Attribute> getAll()
getAll
in interface Attributes
public NamingEnumeration<String> getIDs()
getIDs
in interface Attributes
public int hashCode()
Object
There are some requirements on this method which
subclasses must follow:
a.equals(b)
is true, then
a.hashCode() == b.hashCode()
must be as well.
However, the reverse is not necessarily true, and two
objects may have the same hashcode without being equal.Notice that since hashCode
is used in
Hashtable
and other hashing classes,
a poor implementation will degrade the performance of hashing
(so don't blindly implement it as returning a constant!). Also,
if calculating the hash is time-consuming, a class may consider
caching the results.
The default implementation returns
System.identityHashCode(this)
hashCode
in class Object
Object.equals(Object)
,
System.identityHashCode(Object)
public boolean isCaseIgnored()
isCaseIgnored
in interface Attributes
public Attribute put(Attribute attr)
put
in interface Attributes
public Attribute remove(String attrID)
remove
in interface Attributes
public int size()
size
in interface Attributes
public String toString()
Object
System.out.println()
and such.
It is typical, but not required, to ensure that this method
never completes abruptly with a RuntimeException
.
This method will be called when performing string
concatenation with this object. If the result is
null
, string concatenation will instead
use "null"
.
The default implementation returns
getClass().getName() + "@" +
Integer.toHexString(hashCode())
.
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)