- /*
 - * @(#)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;
 - }
 - }