javax.print.attribute

Class ResolutionSyntax

Implemented Interfaces:
Cloneable, Serializable
Known Direct Subclasses:
PrinterResolution, PrinterResolutionDefault, PrinterResolutionSupported

public abstract class ResolutionSyntax
extends Object
implements Cloneable, Serializable

ResolutionSyntax is the abstract base class of all attribute classes which provide a resolution as value (e.g. printer resolution).

A ResolutionSyntax instance consists of two integer values describing the resolution in feed and cross feed direction. The units of the given values is determined by two defined constants:

A resolutions attribute is constructed by two values for the resolution and one of the two constants defining the actual units of the given values.

There are different methods provided to return the resolution values in either of the both units and to compare if a resolution is less than or equal to a given other resolution attribute.

Internal storage:
The resolutions are stored internally as dots per 100 inches (dphi). The values of the provided constants for dots per inch (value 100) and dots per centimeter (value 254) are used as conversion factors to the internal storage units. To get the internal dphi values a multiplication of a given resolution value with its units constant value is needed. Retrieving the resolution for specific units is done by dividing the internal stored value through the units constant value. Clients are therefore able to provide their own resolution units by supplying other conversion factors. Subclasses of ResolutionSyntax have access to the internal resolution values through the protected methods getCrossFeedResolutionDphi() and getFeedResolutionDphi().

See Also:
Serialized Form

Field Summary

static int
DPCM
Constant for units of dots per centimeter.
static int
DPI
Constant for units of dots per inch

Constructor Summary

ResolutionSyntax(int crossFeedResolution, int feedResolution, int units)
Creates a ResolutionSyntax object with the given arguments.

Method Summary

boolean
equals(Object obj)
Tests if the given object is equal to this object.
int
getCrossFeedResolution(int units)
Returns the cross feed resolution for the given units.
protected int
getCrossFeedResolutionDphi()
Returns the raw cross feed resolution in dots per 100 inches.
int
getFeedResolution(int units)
Returns the feed resolution for the given units.
protected int
getFeedResolutionDphi()
Returns the raw feed resolution in dots per 100 inches.
int[]
getResolution(int units)
Returns the resolution as two field array.
int
hashCode()
Returns the hashcode for this object.
boolean
lessThanOrEquals(ResolutionSyntax other)
Checks if the given resolution attribute is a lower or equal to this resolution object.
String
toString()
Returns the string representation for this object.
String
toString(int units, String unitsName)
Returns the string representation for this object.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

DPCM

public static final int DPCM
Constant for units of dots per centimeter.
Field Value:
254

DPI

public static final int DPI
Constant for units of dots per inch
Field Value:
100

Constructor Details

ResolutionSyntax

public ResolutionSyntax(int crossFeedResolution,
                        int feedResolution,
                        int units)
Creates a ResolutionSyntax object with the given arguments.
Parameters:
crossFeedResolution - the cross feed resolution
feedResolution - the feed resolution
units - the unit to use (e.g. DPCM or DPI)
Throws:
IllegalArgumentException - if preconditions fail

Method Details

equals

public boolean equals(Object obj)
Tests if the given object is equal to this object.
Overrides:
equals in interface Object
Parameters:
obj - the object to test
Returns:
true if both objects are equal, false otherwise.

getCrossFeedResolution

public int getCrossFeedResolution(int units)
Returns the cross feed resolution for the given units.
Parameters:
units - the unit to use (e.g. DPCM or DPI)
Returns:
The resolution for the given units.
Throws:
IllegalArgumentException - if units < 1

getCrossFeedResolutionDphi

protected int getCrossFeedResolutionDphi()
Returns the raw cross feed resolution in dots per 100 inches.
Returns:
The raw resolution.

getFeedResolution

public int getFeedResolution(int units)
Returns the feed resolution for the given units.
Parameters:
units - the unit to use (e.g. DPCM or DPI)
Returns:
The resolution for the given units.
Throws:
IllegalArgumentException - if units < 1

getFeedResolutionDphi

protected int getFeedResolutionDphi()
Returns the raw feed resolution in dots per 100 inches.
Returns:
The raw resolution.

getResolution

public int[] getResolution(int units)
Returns the resolution as two field array. Index 0 is the cross feed resolution, index 1 the feed resolution.
Parameters:
units - the units to use
Returns:
The array with the resolutions.

hashCode

public int hashCode()
Returns the hashcode for this object.
Overrides:
hashCode in interface Object
Returns:
The hashcode.

lessThanOrEquals

public boolean lessThanOrEquals(ResolutionSyntax other)
Checks if the given resolution attribute is a lower or equal to this resolution object.
Parameters:
other - the resolution to check against
Returns:
true if other resolution attribute describes a lower or equal resolution, false otherwise.

toString

public String toString()
Returns the string representation for this object.

The returned string is in the form "CxF dphi" with C standing for the cross feed and F for the feed direction resolution. Units used are dots per 100 inches (dphi).

Overrides:
toString in interface Object
Returns:
The string representation.

toString

public String toString(int units,
                       String unitsName)
Returns the string representation for this object.

The returned string is in the form "CxF U" with C standing for the cross feed and F for the feed direction resolution. U denotes the units name if one is supplied.

Parameters:
units - the units to use
unitsName - the name of the units. If null it is ommitted from the string representation.
Returns:
The string representation.

ResolutionSyntax.java -- Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath 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 for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.