- /*
- * @(#)IntegerSyntax.java 1.4 03/01/23
- *
- * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package javax.print.attribute;
-
- import java.io.Serializable;
-
- /**
- * Class IntegerSyntax is an abstract base class providing the common
- * implementation of all attributes with integer values.
- * <P>
- * Under the hood, an integer attribute is just an integer. You can get an
- * integer attribute's integer value by calling {@link #getValue()
- * <CODE>getValue()</CODE>}. An integer attribute's integer value is
- * established when it is constructed (see {@link #IntegerSyntax(int)
- * <CODE>IntegerSyntax(int)</CODE>}). Once constructed, an integer attribute's
- * value is immutable.
- * <P>
- *
- * @author David Mendenhall
- * @author Alan Kaminsky
- */
- public abstract class IntegerSyntax implements Serializable, Cloneable {
-
- /**
- * This integer attribute's integer value.
- * @serial
- */
- private int value;
-
- /**
- * Construct a new integer attribute with the given integer value.
- *
- * @param value Integer value.
- */
- protected IntegerSyntax(int value) {
- this.value = value;
- }
-
- /**
- * Construct a new integer attribute with the given integer value, which
- * must lie within the given range.
- *
- * @param value Integer value.
- * @param lowerBound Lower bound.
- * @param upperBound Upper bound.
- *
- * @exception IllegalArgumentException
- * (Unchecked exception) Thrown if <CODE>value</CODE> is less than
- * <CODE>lowerBound</CODE> or greater than
- * <CODE>upperBound</CODE>.
- */
- protected IntegerSyntax(int value, int lowerBound, int upperBound) {
- if (lowerBound > value || value > upperBound) {
- throw new IllegalArgumentException("Value " + value +
- " not in range " + lowerBound +
- ".." + upperBound);
- }
- this.value = value;
- }
-
- /**
- * Returns this integer attribute's integer value.
- * @return the integer value
- */
- public int getValue() {
- return value;
- }
-
- /**
- * Returns whether this integer attribute is equivalent to the passed in
- * object. To be equivalent, all of the following conditions must be true:
- * <OL TYPE=1>
- * <LI>
- * <CODE>object</CODE> is not null.
- * <LI>
- * <CODE>object</CODE> is an instance of class IntegerSyntax.
- * <LI>
- * This integer attribute's value and <CODE>object</CODE>'s value are
- * equal.
- * </OL>
- *
- * @param object Object to compare to.
- *
- * @return True if <CODE>object</CODE> is equivalent to this integer
- * attribute, false otherwise.
- */
- public boolean equals(Object object) {
-
- return (object != null && object instanceof IntegerSyntax &&
- value == ((IntegerSyntax) object).value);
- }
-
- /**
- * Returns a hash code value for this integer attribute. The hash code is
- * just this integer attribute's integer value.
- */
- public int hashCode() {
- return value;
- }
-
- /**
- * Returns a string value corresponding to this integer attribute. The
- * string value is just this integer attribute's integer value converted to
- * a string.
- */
- public String toString() {
- return "" + value;
- }
- }