javax.print.attribute
Class ResolutionSyntax

java.lang.Object
  extended by javax.print.attribute.ResolutionSyntax
All Implemented Interfaces:
Serializable, Cloneable
Direct Known Subclasses:
PrinterResolution

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, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

DPCM

public static final int DPCM
Constant for units of dots per centimeter.

See Also:
Constant Field Values

DPI

public static final int DPI
Constant for units of dots per inch

See Also:
Constant Field Values
Constructor Detail

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 Detail

equals

public boolean equals(Object obj)
Tests if the given object is equal to this object.

Overrides:
equals in class Object
Parameters:
obj - the object to test
Returns:
true if both objects are equal, false otherwise.
See Also:
Object.hashCode()

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 class Object
Returns:
The hashcode.
See Also:
Object.equals(Object), System.identityHashCode(Object)

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 class Object
Returns:
The string representation.
See Also:
Object.getClass(), Object.hashCode(), Class.getName(), Integer.toHexString(int)

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.