Save This Page
Home » openjdk-7 » javax » print » attribute » standard » [javadoc | source]
    1   /*
    2    * Copyright 2000-2004 Sun Microsystems, Inc.  All Rights Reserved.
    3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    4    *
    5    * This code is free software; you can redistribute it and/or modify it
    6    * under the terms of the GNU General Public License version 2 only, as
    7    * published by the Free Software Foundation.  Sun designates this
    8    * particular file as subject to the "Classpath" exception as provided
    9    * by Sun in the LICENSE file that accompanied this code.
   10    *
   11    * This code is distributed in the hope that it will be useful, but WITHOUT
   12    * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13    * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14    * version 2 for more details (a copy is included in the LICENSE file that
   15    * accompanied this code).
   16    *
   17    * You should have received a copy of the GNU General Public License version
   18    * 2 along with this work; if not, write to the Free Software Foundation,
   19    * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20    *
   21    * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22    * CA 95054 USA or visit www.sun.com if you need additional information or
   23    * have any questions.
   24    */
   25   package javax.print.attribute.standard;
   26   
   27   import javax.print.attribute.Attribute;
   28   import javax.print.attribute.SetOfIntegerSyntax;
   29   import javax.print.attribute.SupportedValuesAttribute;
   30   
   31   /**
   32    * Class NumberUpSupported is a printing attribute class, a set of integers,
   33    * that gives the supported values for a {@link NumberUp NumberUp} attribute.
   34    * <P>
   35    * <B>IPP Compatibility:</B> The NumberUpSupported attribute's canonical array
   36    * form gives the lower and upper bound for each range of number-up to be
   37    * included in an IPP "number-up-supported" attribute. See class {@link
   38    * javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax} for an
   39    * explanation of canonical array form. The category name returned by
   40    * <CODE>getName()</CODE> gives the IPP attribute name.
   41    * <P>
   42    *
   43    * @author  Alan Kaminsky
   44    */
   45   public final class NumberUpSupported    extends SetOfIntegerSyntax
   46           implements SupportedValuesAttribute {
   47   
   48        private static final long serialVersionUID = -1041573395759141805L;
   49   
   50   
   51       /**
   52        * Construct a new number up supported attribute with the given members.
   53        * The supported values for NumberUp are specified in "array form;" see
   54        * class
   55        * {@link javax.print.attribute.SetOfIntegerSyntax SetOfIntegerSyntax}
   56        * for an explanation of array form.
   57        *
   58        * @param  members  Set members in array form.
   59        *
   60        * @exception  NullPointerException
   61        *     (unchecked exception) Thrown if <CODE>members</CODE> is null or
   62        *     any element of <CODE>members</CODE> is null.
   63        * @exception  IllegalArgumentException
   64        *     (unchecked exception) Thrown if any element of
   65        *   <CODE>members</CODE> is not a length-one or length-two array. Also
   66        *    thrown if <CODE>members</CODE> is a zero-length array or if any
   67        *    member of the set is less than 1.
   68        */
   69       public NumberUpSupported(int[][] members) {
   70           super (members);
   71           if (members == null) {
   72               throw new NullPointerException("members is null");
   73           }
   74           int[][] myMembers = getMembers();
   75           int n = myMembers.length;
   76           if (n == 0) {
   77               throw new IllegalArgumentException("members is zero-length");
   78           }
   79           int i;
   80           for (i = 0; i < n; ++ i) {
   81               if (myMembers[i][0] < 1) {
   82                   throw new IllegalArgumentException
   83                       ("Number up value must be > 0");
   84               }
   85           }
   86       }
   87   
   88       /**
   89        * Construct a new number up supported attribute containing a single
   90        * integer. That is, only the one value of NumberUp is supported.
   91        *
   92        * @param  member  Set member.
   93        *
   94        * @exception  IllegalArgumentException
   95        *     (Unchecked exception) Thrown if <CODE>member</CODE> is less than
   96        *     1.
   97        */
   98       public NumberUpSupported(int member) {
   99           super (member);
  100           if (member < 1) {
  101               throw new IllegalArgumentException("Number up value must be > 0");
  102           }
  103       }
  104   
  105       /**
  106        * Construct a new number up supported attribute containing a single range
  107        * of integers. That is, only those values of NumberUp in the one range are
  108        * supported.
  109        *
  110        * @param  lowerBound  Lower bound of the range.
  111        * @param  upperBound  Upper bound of the range.
  112        *
  113        * @exception  IllegalArgumentException
  114        *     (Unchecked exception) Thrown if a null range is specified or if a
  115        *     non-null range is specified with <CODE>lowerBound</CODE> less than
  116        *     1.
  117        */
  118       public NumberUpSupported(int lowerBound, int upperBound) {
  119           super (lowerBound, upperBound);
  120           if (lowerBound > upperBound) {
  121               throw new IllegalArgumentException("Null range specified");
  122           } else if (lowerBound < 1) {
  123               throw new IllegalArgumentException
  124                   ("Number up value must be > 0");
  125           }
  126       }
  127   
  128       /**
  129        * Returns whether this number up supported attribute is equivalent to the
  130        * passed in object. To be equivalent, all of the following conditions
  131        * must be true:
  132        * <OL TYPE=1>
  133        * <LI>
  134        * <CODE>object</CODE> is not null.
  135        * <LI>
  136        * <CODE>object</CODE> is an instance of class NumberUpSupported.
  137        * <LI>
  138        * This number up supported attribute's members and <CODE>object</CODE>'s
  139        * members are the same.
  140        * </OL>
  141        *
  142        * @param  object  Object to compare to.
  143        *
  144        * @return  True if <CODE>object</CODE> is equivalent to this number up
  145        *          supported attribute, false otherwise.
  146        */
  147       public boolean equals(Object object) {
  148           return (super.equals (object) &&
  149                   object instanceof NumberUpSupported);
  150       }
  151   
  152       /**
  153        * Get the printing attribute class which is to be used as the "category"
  154        * for this printing attribute value.
  155        * <P>
  156        * For class NumberUpSupported, the
  157        * category is class NumberUpSupported itself.
  158        *
  159        * @return  Printing attribute class (category), an instance of class
  160        *          {@link java.lang.Class java.lang.Class}.
  161        */
  162       public final Class<? extends Attribute> getCategory() {
  163           return NumberUpSupported.class;
  164       }
  165   
  166       /**
  167        * Get the name of the category of which this attribute value is an
  168        * instance.
  169        * <P>
  170        * For class NumberUpSupported, the
  171        * category name is <CODE>"number-up-supported"</CODE>.
  172        *
  173        * @return  Attribute category name.
  174        */
  175       public final String getName() {
  176           return "number-up-supported";
  177       }
  178   
  179   }

Save This Page
Home » openjdk-7 » javax » print » attribute » standard » [javadoc | source]