javax.print.attribute
Class Size2DSyntax

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

public abstract class Size2DSyntax
extends Object
implements Cloneable, Serializable

Size2DSyntax is the abstract base class of all attribute classes which provide a two dimensional size as value (e.g. the size of a media like Letter or A4).

A Size2DSyntax instance consists of two integer values describing the size in the x and y dimension. The units of the given values is determined by two defined constants:

A size 2D attribute is constructed by two values for the size of the x and y dimension and the actual units of the given values as defined by the constants.

There are different methods provided to return the size values for the dimensions in either of the two predefined units or with a given client supplied units conversion factor.

Internal storage:
The size of the x,y dimensions are stored internally in micrometers. The values of the provided constants for inch (value 25400) and millimeters (value 1000) are used as conversion factors to the internal storage units. To get the internal micrometers values a multiplication of a given size value with its units constant value is done. Retrieving the size value for specific units is done by dividing the internal stored value by the units constant value. Clients are therefore able to provide their own size units by supplying other conversion factors. Subclasses of Size2DSyntax have access to the internal size values through the protected methods getXMicrometers() and getYMicrometers().

See Also:
Serialized Form

Field Summary
static int INCH
          Constant for the units of inches.
static int MM
          Constant for the units of millimeters.
 
Constructor Summary
protected Size2DSyntax(float x, float y, int units)
          Creates a Size2DSyntax object with the given arguments.
protected Size2DSyntax(int x, int y, int units)
          Creates a Size2DSyntax object with the given arguments.
 
Method Summary
 boolean equals(Object obj)
          Tests if the given object is equal to this object.
 float[] getSize(int units)
          Returns the size described in this object as a two field array.
 float getX(int units)
          Returns the size in x direction.
protected  int getXMicrometers()
          Returns the size in x direction in mircometers.
 float getY(int units)
          Return the size in y direction.
protected  int getYMicrometers()
          Returns the size in y direction in mircometers.
 int hashCode()
          Returns the hashcode for this 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

INCH

public static final int INCH
Constant for the units of inches. The actual value is the conversion factor to micrometers.

See Also:
Constant Field Values

MM

public static final int MM
Constant for the units of millimeters. The actual value is the conversion factor to micrometers.

See Also:
Constant Field Values
Constructor Detail

Size2DSyntax

protected Size2DSyntax(float x,
                       float y,
                       int units)
Creates a Size2DSyntax object with the given arguments.

Parameters:
x - the size in x direction
y - the size in y direction
units - the units to use for the sizes
Throws:
IllegalArgumentException - if x or y < 0 or units < 1

Size2DSyntax

protected Size2DSyntax(int x,
                       int y,
                       int units)
Creates a Size2DSyntax object with the given arguments.

Parameters:
x - the size in x direction
y - the size in y direction
units - the units to use for the sizes
Throws:
IllegalArgumentException - if x or y < 0 or units < 1
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()

getSize

public float[] getSize(int units)
Returns the size described in this object as a two field array. Index 0 contains the size in x direction, index 1 the size in y direction.

Parameters:
units - the units to use
Returns:
The array with the size dimensions.
Throws:
IllegalArgumentException - if units < 1

getX

public float getX(int units)
Returns the size in x direction.

Parameters:
units - the units to use
Returns:
The size in x direction.
Throws:
IllegalArgumentException - if units < 1

getXMicrometers

protected int getXMicrometers()
Returns the size in x direction in mircometers. To be used by sublcasses that need access to the internal storage value.

Returns:
The size in x direction in micrometers.

getY

public float getY(int units)
Return the size in y direction.

Parameters:
units - the units to use
Returns:
The size in y direction.
Throws:
IllegalArgumentException - if units < 1

getYMicrometers

protected int getYMicrometers()
Returns the size in y direction in mircometers. To be used by sublcasses that need access to the internal storage value.

Returns:
The size in y direction in micrometers.

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)

toString

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

The returned string is in the form "XxY um" with X standing for size in x and Y for the size in y direction. The used micrometers units is indicated by the appended "um" notation.

Overrides:
toString in class Object
Returns:
The string representation in micrometers.
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 "XxY U" with X standing for size in x and Y for the size in y direction. U denotes the units name if one is supplied. The values are given as floating point values.

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.