< prev index next >
src/java.desktop/share/classes/javax/print/attribute/HashAttributeSet.java
Print this page
*** 30,40 ****
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;
/**
! * Class HashAttributeSet provides an <code>AttributeSet</code>
* implementation with characteristics of a hash map.
*
* @author Alan Kaminsky
*/
public class HashAttributeSet implements AttributeSet, Serializable {
--- 30,40 ----
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;
/**
! * Class HashAttributeSet provides an {@code AttributeSet}
* implementation with characteristics of a hash map.
*
* @author Alan Kaminsky
*/
public class HashAttributeSet implements AttributeSet, Serializable {
*** 102,132 ****
* initially populated with the given attribute.
*
* @param attribute Attribute value to add to the set.
*
* @exception NullPointerException
! * (unchecked exception) Thrown if <CODE>attribute</CODE> is null.
*/
public HashAttributeSet(Attribute attribute) {
this (attribute, Attribute.class);
}
/**
* Construct a new attribute set,
* initially populated with the values from the
* given array. The new attribute set is populated by
! * adding the elements of <CODE>attributes</CODE> array to the set in
* sequence, starting at index 0. Thus, later array elements may replace
* earlier array elements if the array contains duplicate attribute
* values or attribute categories.
*
* @param attributes Array of attribute values to add to the set.
* If null, an empty attribute set is constructed.
*
* @exception NullPointerException
* (unchecked exception) Thrown if any element of
! * <CODE>attributes</CODE> is null.
*/
public HashAttributeSet(Attribute[] attributes) {
this (attributes, Attribute.class);
}
--- 102,132 ----
* initially populated with the given attribute.
*
* @param attribute Attribute value to add to the set.
*
* @exception NullPointerException
! * (unchecked exception) Thrown if {@code attribute} is null.
*/
public HashAttributeSet(Attribute attribute) {
this (attribute, Attribute.class);
}
/**
* Construct a new attribute set,
* initially populated with the values from the
* given array. The new attribute set is populated by
! * adding the elements of {@code attributes} array to the set in
* sequence, starting at index 0. Thus, later array elements may replace
* earlier array elements if the array contains duplicate attribute
* values or attribute categories.
*
* @param attributes Array of attribute values to add to the set.
* If null, an empty attribute set is constructed.
*
* @exception NullPointerException
* (unchecked exception) Thrown if any element of
! * {@code attributes} is null.
*/
public HashAttributeSet(Attribute[] attributes) {
this (attributes, Attribute.class);
}
*** 169,183 ****
* attribute set must be an instance. It is assumed to
* be interface {@link Attribute Attribute} or a
* subinterface thereof.
*
* @exception NullPointerException
! * (unchecked exception) Thrown if <CODE>attribute</CODE> is null.
* @exception NullPointerException if interfaceName is null.
* @exception ClassCastException
! * (unchecked exception) Thrown if <CODE>attribute</CODE> is not an
! * instance of <CODE>interfaceName</CODE>.
*/
protected HashAttributeSet(Attribute attribute, Class<?> interfaceName) {
if (interfaceName == null) {
throw new NullPointerException("null interface");
}
--- 169,183 ----
* attribute set must be an instance. It is assumed to
* be interface {@link Attribute Attribute} or a
* subinterface thereof.
*
* @exception NullPointerException
! * (unchecked exception) Thrown if {@code attribute} is null.
* @exception NullPointerException if interfaceName is null.
* @exception ClassCastException
! * (unchecked exception) Thrown if {@code attribute} is not an
! * instance of {@code interfaceName}.
*/
protected HashAttributeSet(Attribute attribute, Class<?> interfaceName) {
if (interfaceName == null) {
throw new NullPointerException("null interface");
}
*** 187,197 ****
/**
* Construct a new attribute set, where the members of the attribute
* set are restricted to the given interface.
* The new attribute set is populated
! * by adding the elements of <CODE>attributes</CODE> array to the set in
* sequence, starting at index 0. Thus, later array elements may replace
* earlier array elements if the array contains duplicate attribute
* values or attribute categories.
*
* @param attributes Array of attribute values to add to the set. If
--- 187,197 ----
/**
* Construct a new attribute set, where the members of the attribute
* set are restricted to the given interface.
* The new attribute set is populated
! * by adding the elements of {@code attributes} array to the set in
* sequence, starting at index 0. Thus, later array elements may replace
* earlier array elements if the array contains duplicate attribute
* values or attribute categories.
*
* @param attributes Array of attribute values to add to the set. If
*** 201,216 ****
* be interface {@link Attribute Attribute} or a
* subinterface thereof.
*
* @exception NullPointerException
* (unchecked exception) Thrown if any element of
! * <CODE>attributes</CODE> is null.
* @exception NullPointerException if interfaceName is null.
* @exception ClassCastException
* (unchecked exception) Thrown if any element of
! * <CODE>attributes</CODE> is not an instance of
! * <CODE>interfaceName</CODE>.
*/
protected HashAttributeSet(Attribute[] attributes, Class<?> interfaceName) {
if (interfaceName == null) {
throw new NullPointerException("null interface");
}
--- 201,216 ----
* be interface {@link Attribute Attribute} or a
* subinterface thereof.
*
* @exception NullPointerException
* (unchecked exception) Thrown if any element of
! * {@code attributes} is null.
* @exception NullPointerException if interfaceName is null.
* @exception ClassCastException
* (unchecked exception) Thrown if any element of
! * {@code attributes} is not an instance of
! * {@code interfaceName}.
*/
protected HashAttributeSet(Attribute[] attributes, Class<?> interfaceName) {
if (interfaceName == null) {
throw new NullPointerException("null interface");
}
*** 233,244 ****
* be interface {@link Attribute Attribute} or a
* subinterface thereof.
*
* @exception ClassCastException
* (unchecked exception) Thrown if any element of
! * <CODE>attributes</CODE> is not an instance of
! * <CODE>interfaceName</CODE>.
*/
protected HashAttributeSet(AttributeSet attributes, Class<?> interfaceName) {
myInterface = interfaceName;
if (attributes != null) {
Attribute[] attribArray = attributes.toArray();
--- 233,244 ----
* be interface {@link Attribute Attribute} or a
* subinterface thereof.
*
* @exception ClassCastException
* (unchecked exception) Thrown if any element of
! * {@code attributes} is not an instance of
! * {@code interfaceName}.
*/
protected HashAttributeSet(AttributeSet attributes, Class<?> interfaceName) {
myInterface = interfaceName;
if (attributes != null) {
Attribute[] attribArray = attributes.toArray();
*** 249,276 ****
}
}
/**
* Returns the attribute value which this attribute set contains in the
! * given attribute category. Returns <tt>null</tt> if this attribute set
* does not contain any attribute value in the given attribute category.
*
* @param category Attribute category whose associated attribute value
* is to be returned. It must be a
* {@link java.lang.Class Class}
* that implements interface {@link Attribute
* Attribute}.
*
* @return The attribute value in the given attribute category contained
! * in this attribute set, or <tt>null</tt> if this attribute set
* does not contain any attribute value in the given attribute
* category.
*
* @throws NullPointerException
! * (unchecked exception) Thrown if the <CODE>category</CODE> is null.
* @throws ClassCastException
! * (unchecked exception) Thrown if the <CODE>category</CODE> is not a
* {@link java.lang.Class Class} that implements interface {@link
* Attribute Attribute}.
*/
public Attribute get(Class<?> category) {
return attrMap.get(AttributeSetUtilities.
--- 249,276 ----
}
}
/**
* Returns the attribute value which this attribute set contains in the
! * given attribute category. Returns {@code null} if this attribute set
* does not contain any attribute value in the given attribute category.
*
* @param category Attribute category whose associated attribute value
* is to be returned. It must be a
* {@link java.lang.Class Class}
* that implements interface {@link Attribute
* Attribute}.
*
* @return The attribute value in the given attribute category contained
! * in this attribute set, or {@code null} if this attribute set
* does not contain any attribute value in the given attribute
* category.
*
* @throws NullPointerException
! * (unchecked exception) Thrown if the {@code category} is null.
* @throws ClassCastException
! * (unchecked exception) Thrown if the {@code category} is not a
* {@link java.lang.Class Class} that implements interface {@link
* Attribute Attribute}.
*/
public Attribute get(Class<?> category) {
return attrMap.get(AttributeSetUtilities.
*** 283,301 ****
* already present, first removing any existing in the same
* attribute category as the specified attribute value.
*
* @param attribute Attribute value to be added to this attribute set.
*
! * @return <tt>true</tt> if this attribute set changed as a result of the
* call, i.e., the given attribute value was not already a
* member of this attribute set.
*
* @throws NullPointerException
! * (unchecked exception) Thrown if the <CODE>attribute</CODE> is null.
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not support
! * the <CODE>add()</CODE> operation.
*/
public boolean add(Attribute attribute) {
Object oldAttribute =
attrMap.put(attribute.getCategory(),
AttributeSetUtilities.
--- 283,301 ----
* already present, first removing any existing in the same
* attribute category as the specified attribute value.
*
* @param attribute Attribute value to be added to this attribute set.
*
! * @return {@code true} if this attribute set changed as a result of the
* call, i.e., the given attribute value was not already a
* member of this attribute set.
*
* @throws NullPointerException
! * (unchecked exception) Thrown if the {@code attribute} is null.
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not support
! * the {@code add()} operation.
*/
public boolean add(Attribute attribute) {
Object oldAttribute =
attrMap.put(attribute.getCategory(),
AttributeSetUtilities.
*** 303,325 ****
return (!attribute.equals(oldAttribute));
}
/**
* Removes any attribute for this category from this attribute set if
! * present. If <CODE>category</CODE> is null, then
! * <CODE>remove()</CODE> does nothing and returns <tt>false</tt>.
*
* @param category Attribute category to be removed from this
* attribute set.
*
! * @return <tt>true</tt> if this attribute set changed as a result of the
* call, i.e., the given attribute category had been a member of
* this attribute set.
*
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not
! * support the <CODE>remove()</CODE> operation.
*/
public boolean remove(Class<?> category) {
return
category != null &&
AttributeSetUtilities.
--- 303,325 ----
return (!attribute.equals(oldAttribute));
}
/**
* Removes any attribute for this category from this attribute set if
! * present. If {@code category} is null, then
! * {@code remove()} does nothing and returns {@code false}.
*
* @param category Attribute category to be removed from this
* attribute set.
*
! * @return {@code true} if this attribute set changed as a result of the
* call, i.e., the given attribute category had been a member of
* this attribute set.
*
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not
! * support the {@code remove()} operation.
*/
public boolean remove(Class<?> category) {
return
category != null &&
AttributeSetUtilities.
*** 327,363 ****
attrMap.remove(category) != null;
}
/**
* Removes the specified attribute from this attribute set if
! * present. If <CODE>attribute</CODE> is null, then
! * <CODE>remove()</CODE> does nothing and returns <tt>false</tt>.
*
* @param attribute Attribute value to be removed from this attribute set.
*
! * @return <tt>true</tt> if this attribute set changed as a result of the
* call, i.e., the given attribute value had been a member of
* this attribute set.
*
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not
! * support the <CODE>remove()</CODE> operation.
*/
public boolean remove(Attribute attribute) {
return
attribute != null &&
attrMap.remove(attribute.getCategory()) != null;
}
/**
! * Returns <tt>true</tt> if this attribute set contains an
* attribute for the specified category.
*
* @param category whose presence in this attribute set is
* to be tested.
*
! * @return <tt>true</tt> if this attribute set contains an attribute
* value for the specified category.
*/
public boolean containsKey(Class<?> category) {
return
category != null &&
--- 327,363 ----
attrMap.remove(category) != null;
}
/**
* Removes the specified attribute from this attribute set if
! * present. If {@code attribute} is null, then
! * {@code remove()} does nothing and returns {@code false}.
*
* @param attribute Attribute value to be removed from this attribute set.
*
! * @return {@code true} if this attribute set changed as a result of the
* call, i.e., the given attribute value had been a member of
* this attribute set.
*
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not
! * support the {@code remove()} operation.
*/
public boolean remove(Attribute attribute) {
return
attribute != null &&
attrMap.remove(attribute.getCategory()) != null;
}
/**
! * Returns {@code true} if this attribute set contains an
* attribute for the specified category.
*
* @param category whose presence in this attribute set is
* to be tested.
*
! * @return {@code true} if this attribute set contains an attribute
* value for the specified category.
*/
public boolean containsKey(Class<?> category) {
return
category != null &&
*** 365,381 ****
verifyAttributeCategory(category, Attribute.class) != null &&
attrMap.get(category) != null;
}
/**
! * Returns <tt>true</tt> if this attribute set contains the given
* attribute.
*
* @param attribute value whose presence in this attribute set is
* to be tested.
*
! * @return <tt>true</tt> if this attribute set contains the given
* attribute value.
*/
public boolean containsValue(Attribute attribute) {
return
attribute != null &&
--- 365,381 ----
verifyAttributeCategory(category, Attribute.class) != null &&
attrMap.get(category) != null;
}
/**
! * Returns {@code true} if this attribute set contains the given
* attribute.
*
* @param attribute value whose presence in this attribute set is
* to be tested.
*
! * @return {@code true} if this attribute set contains the given
* attribute value.
*/
public boolean containsValue(Attribute attribute) {
return
attribute != null &&
*** 387,414 ****
* Adds all of the elements in the specified set to this attribute.
* The outcome is the same as if the
* {@link #add(Attribute) add(Attribute)}
* operation had been applied to this attribute set successively with
* each element from the specified set.
! * The behavior of the <CODE>addAll(AttributeSet)</CODE>
* operation is unspecified if the specified set is modified while
* the operation is in progress.
* <P>
! * If the <CODE>addAll(AttributeSet)</CODE> operation throws an exception,
* the effect on this attribute set's state is implementation dependent;
* elements from the specified set before the point of the exception may
* or may not have been added to this attribute set.
*
* @param attributes whose elements are to be added to this attribute
* set.
*
! * @return <tt>true</tt> if this attribute set changed as a result of the
* call.
*
* @throws UnmodifiableSetException
* (Unchecked exception) Thrown if this attribute set does not
! * support the <tt>addAll(AttributeSet)</tt> method.
* @throws NullPointerException
* (Unchecked exception) Thrown if some element in the specified
* set is null, or the set is null.
*
* @see #add(Attribute)
--- 387,414 ----
* Adds all of the elements in the specified set to this attribute.
* The outcome is the same as if the
* {@link #add(Attribute) add(Attribute)}
* operation had been applied to this attribute set successively with
* each element from the specified set.
! * The behavior of the {@code addAll(AttributeSet)}
* operation is unspecified if the specified set is modified while
* the operation is in progress.
* <P>
! * If the {@code addAll(AttributeSet)} operation throws an exception,
* the effect on this attribute set's state is implementation dependent;
* elements from the specified set before the point of the exception may
* or may not have been added to this attribute set.
*
* @param attributes whose elements are to be added to this attribute
* set.
*
! * @return {@code true} if this attribute set changed as a result of the
* call.
*
* @throws UnmodifiableSetException
* (Unchecked exception) Thrown if this attribute set does not
! * support the {@code addAll(AttributeSet)} method.
* @throws NullPointerException
* (Unchecked exception) Thrown if some element in the specified
* set is null, or the set is null.
*
* @see #add(Attribute)
*** 427,438 ****
return result;
}
/**
* Returns the number of attributes in this attribute set. If this
! * attribute set contains more than <tt>Integer.MAX_VALUE</tt> elements,
! * returns <tt>Integer.MAX_VALUE</tt>.
*
* @return The number of attributes in this attribute set.
*/
public int size() {
return attrMap.size();
--- 427,438 ----
return result;
}
/**
* Returns the number of attributes in this attribute set. If this
! * attribute set contains more than {@code Integer.MAX_VALUE} elements,
! * returns {@code Integer.MAX_VALUE}.
*
* @return The number of attributes in this attribute set.
*/
public int size() {
return attrMap.size();
*** 453,463 ****
/**
* Removes all attributes from this attribute set.
*
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not support
! * the <CODE>clear()</CODE> operation.
*/
public void clear() {
attrMap.clear();
}
--- 453,463 ----
/**
* Removes all attributes from this attribute set.
*
* @throws UnmodifiableSetException
* (unchecked exception) Thrown if this attribute set does not support
! * the {@code clear()} operation.
*/
public void clear() {
attrMap.clear();
}
*** 470,488 ****
return attrMap.isEmpty();
}
/**
* Compares the specified object with this attribute set for equality.
! * Returns <tt>true</tt> if the given object is also an attribute set and
* the two attribute sets contain the same attribute category-attribute
* value mappings. This ensures that the
! * <tt>equals()</tt> method works properly across different
* implementations of the AttributeSet interface.
*
* @param object to be compared for equality with this attribute set.
*
! * @return <tt>true</tt> if the specified object is equal to this
* attribute set.
*/
public boolean equals(Object object) {
if (object == null || !(object instanceof AttributeSet)) {
--- 470,488 ----
return attrMap.isEmpty();
}
/**
* Compares the specified object with this attribute set for equality.
! * Returns {@code true} if the given object is also an attribute set and
* the two attribute sets contain the same attribute category-attribute
* value mappings. This ensures that the
! * {@code equals()} method works properly across different
* implementations of the AttributeSet interface.
*
* @param object to be compared for equality with this attribute set.
*
! * @return {@code true} if the specified object is equal to this
* attribute set.
*/
public boolean equals(Object object) {
if (object == null || !(object instanceof AttributeSet)) {
*** 505,517 ****
/**
* Returns the hash code value for this attribute set.
* The hash code of an attribute set is defined to be the sum
* of the hash codes of each entry in the AttributeSet.
! * This ensures that <tt>t1.equals(t2)</tt> implies that
! * <tt>t1.hashCode()==t2.hashCode()</tt> for any two attribute sets
! * <tt>t1</tt> and <tt>t2</tt>, as required by the general contract of
* {@link java.lang.Object#hashCode() Object.hashCode()}.
*
* @return The hash code value for this attribute set.
*/
public int hashCode() {
--- 505,517 ----
/**
* Returns the hash code value for this attribute set.
* The hash code of an attribute set is defined to be the sum
* of the hash codes of each entry in the AttributeSet.
! * This ensures that {@code t1.equals(t2)} implies that
! * {@code t1.hashCode()==t2.hashCode()} for any two attribute sets
! * {@code t1} and {@code t2}, as required by the general contract of
* {@link java.lang.Object#hashCode() Object.hashCode()}.
*
* @return The hash code value for this attribute set.
*/
public int hashCode() {
< prev index next >