javax.naming.directory
Class BasicAttribute

java.lang.Object
  extended by javax.naming.directory.BasicAttribute
All Implemented Interfaces:
Serializable, Cloneable, Attribute

public class BasicAttribute
extends Object
implements Attribute

Since:
1.3
See Also:
Serialized Form

Field Summary
protected  String attrID
          The ID of this attribute.
protected  boolean ordered
          True if this attribute's values are ordered.
protected  Vector<Object> values
          Values for this attribute.
 
Constructor Summary
BasicAttribute(String id)
           
BasicAttribute(String id, boolean ordered)
           
BasicAttribute(String id, Object value)
           
BasicAttribute(String id, Object value, boolean ordered)
           
 
Method Summary
 void add(int index, Object val)
           
 boolean add(Object val)
           
 void clear()
           
 Object clone()
          This method may be called to create a new copy of the Object.
 boolean contains(Object val)
           
 boolean equals(Object obj)
          Determine whether this Object is semantically equal to another Object.
 Object get()
           
 Object get(int index)
           
 NamingEnumeration<?> getAll()
           
 DirContext getAttributeDefinition()
           
 DirContext getAttributeSyntaxDefinition()
           
 String getID()
           
 int hashCode()
          Get a value that represents this Object, as uniquely as possible within the confines of an int.
 boolean isOrdered()
           
 Object remove(int index)
           
 boolean remove(Object val)
           
 Object set(int index, Object val)
           
 int size()
           
 String toString()
          Convert this Object to a human-readable String.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

attrID

protected String attrID
The ID of this attribute.


ordered

protected boolean ordered
True if this attribute's values are ordered.


values

protected transient Vector<Object> values
Values for this attribute.

Constructor Detail

BasicAttribute

public BasicAttribute(String id)

BasicAttribute

public BasicAttribute(String id,
                      boolean ordered)

BasicAttribute

public BasicAttribute(String id,
                      Object value)

BasicAttribute

public BasicAttribute(String id,
                      Object value,
                      boolean ordered)
Method Detail

add

public void add(int index,
                Object val)
Specified by:
add in interface Attribute

add

public boolean add(Object val)
Specified by:
add in interface Attribute

clear

public void clear()
Specified by:
clear in interface Attribute

clone

public Object clone()
Description copied from class: Object
This method may be called to create a new copy of the Object. The typical behavior is as follows:

However, 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());
     }
 }
 

Specified by:
clone in interface Attribute
Overrides:
clone in class Object
Returns:
a copy of the Object
See Also:
Cloneable

contains

public boolean contains(Object val)
Specified by:
contains in interface Attribute

equals

public boolean equals(Object obj)
Description copied from class: Object
Determine whether this Object is semantically equal to another Object.

There are some fairly strict requirements on this method which subclasses must follow:

This is typically overridden to throw a ClassCastException if the argument is not comparable to the class performing the comparison, but that is not a requirement. It is legal for a.equals(b) to be true even though a.getClass() != b.getClass(). Also, it is typical to never cause a NullPointerException.

In general, the Collections API (java.util) use the equals method rather than the == operator to compare objects. However, IdentityHashMap is an exception to this rule, for its own good reasons.

The default implementation returns this == o.

Overrides:
equals in class Object
Parameters:
obj - the Object to compare to
Returns:
whether this Object is semantically equal to another
See Also:
Object.hashCode()

get

public Object get()
           throws NamingException
Specified by:
get in interface Attribute
Throws:
NamingException

get

public Object get(int index)
           throws NamingException
Specified by:
get in interface Attribute
Throws:
NamingException

getAll

public NamingEnumeration<?> getAll()
                            throws NamingException
Specified by:
getAll in interface Attribute
Throws:
NamingException

getAttributeDefinition

public DirContext getAttributeDefinition()
                                  throws OperationNotSupportedException,
                                         NamingException
Specified by:
getAttributeDefinition in interface Attribute
Throws:
OperationNotSupportedException
NamingException

getAttributeSyntaxDefinition

public DirContext getAttributeSyntaxDefinition()
                                        throws OperationNotSupportedException,
                                               NamingException
Specified by:
getAttributeSyntaxDefinition in interface Attribute
Throws:
OperationNotSupportedException
NamingException

getID

public String getID()
Specified by:
getID in interface Attribute

hashCode

public int hashCode()
Description copied from class: Object
Get a value that represents this Object, as uniquely as possible within the confines of an int.

There are some requirements on this method which subclasses must follow:

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)

Overrides:
hashCode in class Object
Returns:
the hash code for this Object
See Also:
Object.equals(Object), System.identityHashCode(Object)

isOrdered

public boolean isOrdered()
Specified by:
isOrdered in interface Attribute

remove

public Object remove(int index)
Specified by:
remove in interface Attribute

remove

public boolean remove(Object val)
Specified by:
remove in interface Attribute

set

public Object set(int index,
                  Object val)
Specified by:
set in interface Attribute

size

public int size()
Specified by:
size in interface Attribute

toString

public String toString()
Description copied from class: Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into 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()).

Overrides:
toString in class Object
Returns:
the String representing this Object, which may be null
See Also:
Object.getClass(), Object.hashCode(), Class.getName(), Integer.toHexString(int)