public final class AttributeSetUtilities extends Object
Class AttributeSetUtilities provides static methods for manipulating
AttributeSets.
Methods for creating unmodifiable and synchronized views of attribute
sets.
operations useful for building
implementations of interface {@link AttributeSet AttributeSet}
An unmodifiable viewU of an AttributeSet S provides a
client with "read-only" access to S. Query operations on U
"read through" to S; thus, changes in S are reflected in
U. However, any attempt to modify U,
results in an UnmodifiableSetException.
The unmodifiable view object U will be serializable if the
attribute set object S is serializable.
A synchronized viewV of an attribute set S provides a
client with synchronized (multiple thread safe) access to S. Each
operation of V is synchronized using V itself as the lock
object and then merely invokes the corresponding operation of S. In
order to guarantee mutually exclusive access, it is critical that all
access to S is accomplished through V. The synchronized view
object V will be serializable if the attribute set object S
is serializable.
As mentioned in the package description of javax.print, a null reference
parameter to methods is
incorrect unless explicitly documented on the method as having a meaningful
interpretation. Usage to the contrary is incorrect coding and may result in
a run time exception either immediately
or at some later time. IllegalArgumentException and NullPointerException
are examples of typical and acceptable run time exceptions for such cases.
Verify that the given object is a {@link java.lang.Class Class} that
implements the given interface, which is assumed to be interface {@link
Attribute Attribute} or a subinterface thereof.
param
object Object to test.
param
interfaceName Interface the object must implement.
return
If object is a {@link java.lang.Class Class}
that implements interfaceName,
object is returned downcast to type {@link
java.lang.Class Class}; otherwise an exception is thrown.
exception
NullPointerException
(unchecked exception) Thrown if object is null.
exception
ClassCastException
(unchecked exception) Thrown if object is not a
{@link java.lang.Class Class} that implements
interfaceName.
Class result = (Class) object;
if (interfaceName.isAssignableFrom (result)) {
return result;
}
else {
throw new ClassCastException();
}
Verify that the given object is an instance of the given interface, which
is assumed to be interface {@link Attribute Attribute} or a subinterface
thereof.
param
object Object to test.
param
interfaceName Interface of which the object must be an instance.
return
If object is an instance of
interfaceName, object is returned
downcast to type {@link Attribute Attribute}; otherwise an
exception is thrown.
exception
NullPointerException
(unchecked exception) Thrown if object is null.
exception
ClassCastException
(unchecked exception) Thrown if object is not an
instance of interfaceName.
if (object == null) {
throw new NullPointerException();
}
else if (interfaceName.isInstance (object)) {
return (Attribute) object;
} else {
throw new ClassCastException();
}
Verify that the given attribute category object is equal to the
category of the given attribute value object. If so, this method
returns doing nothing. If not, this method throws an exception.
param
category Attribute category to test.
param
attribute Attribute value to test.
exception
NullPointerException
(unchecked exception) Thrown if the category is
null or if the attribute is null.
exception
IllegalArgumentException
(unchecked exception) Thrown if the category is not
equal to the category of the attribute.
if (!category.equals (attribute.getCategory())) {
throw new IllegalArgumentException();
}