|
Java example source code file (AttributeSetUtilities.java)
The AttributeSetUtilities.java Java example source code
/*
* Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package javax.print.attribute;
import java.io.Serializable;
/**
* Class AttributeSetUtilities provides static methods for manipulating
* AttributeSets.
* <ul>
* <li>Methods for creating unmodifiable and synchronized views of attribute
* sets.
* <li>operations useful for building
* implementations of interface {@link AttributeSet AttributeSet}
* </ul>
* <P>
* An <B>unmodifiable view U of an AttributeSet S provides a
* client with "read-only" access to <I>S. Query operations on U
* "read through" to <I>S; thus, changes in S are reflected in
* <I>U. However, any attempt to modify U,
* results in an UnmodifiableSetException.
* The unmodifiable view object <I>U will be serializable if the
* attribute set object <I>S is serializable.
* <P>
* A <B>synchronized view V of an attribute set S provides a
* client with synchronized (multiple thread safe) access to <I>S. Each
* operation of <I>V is synchronized using V itself as the lock
* object and then merely invokes the corresponding operation of <I>S. In
* order to guarantee mutually exclusive access, it is critical that all
* access to <I>S is accomplished through V. The synchronized view
* object <I>V will be serializable if the attribute set object S
* is serializable.
* <P>
* 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.
*
* @author Alan Kaminsky
*/
public final class AttributeSetUtilities {
/* Suppress default constructor, ensuring non-instantiability.
*/
private AttributeSetUtilities() {
}
/**
* @serial include
*/
private static class UnmodifiableAttributeSet
implements AttributeSet, Serializable {
private AttributeSet attrset;
/* Unmodifiable view of the underlying attribute set.
*/
public UnmodifiableAttributeSet(AttributeSet attributeSet) {
attrset = attributeSet;
}
public Attribute get(Class<?> key) {
return attrset.get(key);
}
public boolean add(Attribute attribute) {
throw new UnmodifiableSetException();
}
public synchronized boolean remove(Class<?> category) {
throw new UnmodifiableSetException();
}
public boolean remove(Attribute attribute) {
throw new UnmodifiableSetException();
}
public boolean containsKey(Class<?> category) {
return attrset.containsKey(category);
}
public boolean containsValue(Attribute attribute) {
return attrset.containsValue(attribute);
}
public boolean addAll(AttributeSet attributes) {
throw new UnmodifiableSetException();
}
public int size() {
return attrset.size();
}
public Attribute[] toArray() {
return attrset.toArray();
}
public void clear() {
throw new UnmodifiableSetException();
}
public boolean isEmpty() {
return attrset.isEmpty();
}
public boolean equals(Object o) {
return attrset.equals (o);
}
public int hashCode() {
return attrset.hashCode();
}
}
/**
* @serial include
*/
private static class UnmodifiableDocAttributeSet
extends UnmodifiableAttributeSet
implements DocAttributeSet, Serializable {
public UnmodifiableDocAttributeSet(DocAttributeSet attributeSet) {
super (attributeSet);
}
}
/**
* @serial include
*/
private static class UnmodifiablePrintRequestAttributeSet
extends UnmodifiableAttributeSet
implements PrintRequestAttributeSet, Serializable
{
public UnmodifiablePrintRequestAttributeSet
(PrintRequestAttributeSet attributeSet) {
super (attributeSet);
}
}
/**
* @serial include
*/
private static class UnmodifiablePrintJobAttributeSet
extends UnmodifiableAttributeSet
implements PrintJobAttributeSet, Serializable
{
public UnmodifiablePrintJobAttributeSet
(PrintJobAttributeSet attributeSet) {
super (attributeSet);
}
}
/**
* @serial include
*/
private static class UnmodifiablePrintServiceAttributeSet
extends UnmodifiableAttributeSet
implements PrintServiceAttributeSet, Serializable
{
public UnmodifiablePrintServiceAttributeSet
(PrintServiceAttributeSet attributeSet) {
super (attributeSet);
}
}
/**
* Creates an unmodifiable view of the given attribute set.
*
* @param attributeSet Underlying attribute set.
*
* @return Unmodifiable view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null. Null is never a
*/
public static AttributeSet unmodifiableView(AttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new UnmodifiableAttributeSet(attributeSet);
}
/**
* Creates an unmodifiable view of the given doc attribute set.
*
* @param attributeSet Underlying doc attribute set.
*
* @return Unmodifiable view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static DocAttributeSet unmodifiableView
(DocAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new UnmodifiableDocAttributeSet(attributeSet);
}
/**
* Creates an unmodifiable view of the given print request attribute set.
*
* @param attributeSet Underlying print request attribute set.
*
* @return Unmodifiable view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static PrintRequestAttributeSet
unmodifiableView(PrintRequestAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new UnmodifiablePrintRequestAttributeSet(attributeSet);
}
/**
* Creates an unmodifiable view of the given print job attribute set.
*
* @param attributeSet Underlying print job attribute set.
*
* @return Unmodifiable view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static PrintJobAttributeSet
unmodifiableView(PrintJobAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new UnmodifiablePrintJobAttributeSet(attributeSet);
}
/**
* Creates an unmodifiable view of the given print service attribute set.
*
* @param attributeSet Underlying print service attribute set.
*
* @return Unmodifiable view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static PrintServiceAttributeSet
unmodifiableView(PrintServiceAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new UnmodifiablePrintServiceAttributeSet (attributeSet);
}
/**
* @serial include
*/
private static class SynchronizedAttributeSet
implements AttributeSet, Serializable {
private AttributeSet attrset;
public SynchronizedAttributeSet(AttributeSet attributeSet) {
attrset = attributeSet;
}
public synchronized Attribute get(Class<?> category) {
return attrset.get(category);
}
public synchronized boolean add(Attribute attribute) {
return attrset.add(attribute);
}
public synchronized boolean remove(Class<?> category) {
return attrset.remove(category);
}
public synchronized boolean remove(Attribute attribute) {
return attrset.remove(attribute);
}
public synchronized boolean containsKey(Class<?> category) {
return attrset.containsKey(category);
}
public synchronized boolean containsValue(Attribute attribute) {
return attrset.containsValue(attribute);
}
public synchronized boolean addAll(AttributeSet attributes) {
return attrset.addAll(attributes);
}
public synchronized int size() {
return attrset.size();
}
public synchronized Attribute[] toArray() {
return attrset.toArray();
}
public synchronized void clear() {
attrset.clear();
}
public synchronized boolean isEmpty() {
return attrset.isEmpty();
}
public synchronized boolean equals(Object o) {
return attrset.equals (o);
}
public synchronized int hashCode() {
return attrset.hashCode();
}
}
/**
* @serial include
*/
private static class SynchronizedDocAttributeSet
extends SynchronizedAttributeSet
implements DocAttributeSet, Serializable {
public SynchronizedDocAttributeSet(DocAttributeSet attributeSet) {
super(attributeSet);
}
}
/**
* @serial include
*/
private static class SynchronizedPrintRequestAttributeSet
extends SynchronizedAttributeSet
implements PrintRequestAttributeSet, Serializable {
public SynchronizedPrintRequestAttributeSet
(PrintRequestAttributeSet attributeSet) {
super(attributeSet);
}
}
/**
* @serial include
*/
private static class SynchronizedPrintJobAttributeSet
extends SynchronizedAttributeSet
implements PrintJobAttributeSet, Serializable {
public SynchronizedPrintJobAttributeSet
(PrintJobAttributeSet attributeSet) {
super(attributeSet);
}
}
/**
* @serial include
*/
private static class SynchronizedPrintServiceAttributeSet
extends SynchronizedAttributeSet
implements PrintServiceAttributeSet, Serializable {
public SynchronizedPrintServiceAttributeSet
(PrintServiceAttributeSet attributeSet) {
super(attributeSet);
}
}
/**
* Creates a synchronized view of the given attribute set.
*
* @param attributeSet Underlying attribute set.
*
* @return Synchronized view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static AttributeSet synchronizedView
(AttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new SynchronizedAttributeSet(attributeSet);
}
/**
* Creates a synchronized view of the given doc attribute set.
*
* @param attributeSet Underlying doc attribute set.
*
* @return Synchronized view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static DocAttributeSet
synchronizedView(DocAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new SynchronizedDocAttributeSet(attributeSet);
}
/**
* Creates a synchronized view of the given print request attribute set.
*
* @param attributeSet Underlying print request attribute set.
*
* @return Synchronized view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static PrintRequestAttributeSet
synchronizedView(PrintRequestAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new SynchronizedPrintRequestAttributeSet(attributeSet);
}
/**
* Creates a synchronized view of the given print job attribute set.
*
* @param attributeSet Underlying print job attribute set.
*
* @return Synchronized view of <CODE>attributeSet.
*
* @exception NullPointerException
* Thrown if <CODE>attributeSet is null.
*/
public static PrintJobAttributeSet
synchronizedView(PrintJobAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new SynchronizedPrintJobAttributeSet(attributeSet);
}
/**
* Creates a synchronized view of the given print service attribute set.
*
* @param attributeSet Underlying print service attribute set.
*
* @return Synchronized view of <CODE>attributeSet.
*/
public static PrintServiceAttributeSet
synchronizedView(PrintServiceAttributeSet attributeSet) {
if (attributeSet == null) {
throw new NullPointerException();
}
return new SynchronizedPrintServiceAttributeSet(attributeSet);
}
/**
* 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 <CODE>object is a {@link java.lang.Class Class}
* that implements <CODE>interfaceName,
* <CODE>object is returned downcast to type {@link
* java.lang.Class Class}; otherwise an exception is thrown.
*
* @exception NullPointerException
* (unchecked exception) Thrown if <CODE>object is null.
* @exception ClassCastException
* (unchecked exception) Thrown if <CODE>object is not a
* {@link java.lang.Class Class} that implements
* <CODE>interfaceName.
*/
public static Class<?>
verifyAttributeCategory(Object object, Class<?> 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 <CODE>object is an instance of
* <CODE>interfaceName,
Other Java examples (source code examples)Here is a short list of links related to this Java AttributeSetUtilities.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.