APIdia Launch Partner
Top Description Fields Constructors Methods
javax.print.attribute

public abstract Class ResolutionSyntax

extends Object
implements Serializable, Cloneable
Class Inheritance
All Implemented Interfaces
java.lang.Cloneable, java.io.Serializable
Known Direct Subclasses
javax.print.attribute.standard.PrinterResolution
Imports
java.io.Serial, .Serializable

Class ResolutionSyntax is an abstract base class providing the common implementation of all attributes denoting a printer resolution.

A resolution attribute's value consists of two items, the cross feed direction resolution and the feed direction resolution. A resolution attribute may be constructed by supplying the two values and indicating the units in which the values are measured. Methods are provided to return a resolution attribute's values, indicating the units in which the values are to be returned. The two most common resolution units are dots per inch (dpi) and dots per centimeter (dpcm), and exported constants DPI and DPCM are provided for indicating those units.

Once constructed, a resolution attribute's value is immutable.

Design

A resolution attribute's cross feed direction resolution and feed direction resolution values are stored internally using units of dots per 100 inches (dphi). Storing the values in dphi rather than, say, metric units allows precise integer arithmetic conversions between dpi and dphi and between dpcm and dphi: 1 dpi = 100 dphi, 1 dpcm = 254 dphi. Thus, the values can be stored into and retrieved back from a resolution attribute in either units with no loss of precision. This would not be guaranteed if a floating point representation were used. However, roundoff error will in general occur if a resolution attribute's values are created in one units and retrieved in different units; for example, 600 dpi will be rounded to 236 dpcm, whereas the true value (to five figures) is 236.22 dpcm.

Storing the values internally in common units of dphi lets two resolution attributes be compared without regard to the units in which they were created; for example, 300 dpcm will compare equal to 762 dpi, as they both are stored as 76200 dphi. In particular, a lookup service can match resolution attributes based on equality of their serialized representations regardless of the units in which they were created. Again, using integers for internal storage allows precise equality comparisons to be done, which would not be guaranteed if a floating point representation were used.

The exported constant DPI is actually the conversion factor by which to multiply a value in dpi to get the value in dphi. Likewise, the exported constant DPCM is the conversion factor by which to multiply a value in dpcm to get the value in dphi. A client can specify a resolution value in units other than dpi or dpcm by supplying its own conversion factor. However, since the internal units of dphi was chosen with supporting only the external units of dpi and dpcm in mind, there is no guarantee that the conversion factor for the client's units will be an exact integer. If the conversion factor isn't an exact integer, resolution values in the client's units won't be stored precisely.

Authors
David Mendenhall, Alan Kaminsky

Field Summary

Modifier and TypeField and Description
private int
crossFeedResolution

Cross feed direction resolution in units of dots per 100 inches (dphi).

public static final int
DPCM

Value to indicate units of dots per centimeter (dpcm).

public static final int
DPI

Value to indicate units of dots per inch (dpi).

private int
feedResolution

Feed direction resolution in units of dots per 100 inches (dphi).

private static final long
serialVersionUID

Use serialVersionUID from JDK 1.4 for interoperability.

Constructor Summary

AccessConstructor and Description
public
ResolutionSyntax(int
cross feed direction resolution
crossFeedResolution
,
int
feed direction resolution
feedResolution
,
int
unit conversion factor, e.g. DPI or DPCM
units
)

Construct a new resolution attribute from the given items.

Method Summary

Modifier and TypeMethod and Description
private static int

Returns:

the value of dphi converted to the desired units
convertFromDphi
(int
value (dphi) to convert
dphi
,
int
unit conversion factor, e.g. DPI or DPCM
units
)

Convert a value from dphi to some other units.

public boolean

Returns:

true if object is equivalent to this resolution attribute, false otherwise
equals
(Object
Object to compare to
object
)

Overrides java.lang.Object.equals.

Returns whether this resolution attribute is equivalent to the passed in object.

public int

Returns:

cross feed direction resolution
getCrossFeedResolution
(int
unit conversion factor, e.g. DPI or DPCM
units
)

Returns this resolution attribute's cross feed direction resolution in the given units.

protected int

Returns:

cross feed direction resolution
getCrossFeedResolutionDphi
()

Returns this resolution attribute's cross feed direction resolution in units of dphi.

public int

Returns:

feed direction resolution
getFeedResolution
(int
unit conversion factor, e.g. DPI or DPCM
units
)

Returns this resolution attribute's feed direction resolution in the given units.

protected int

Returns:

feed direction resolution
getFeedResolutionDphi
()

Returns this resolution attribute's feed direction resolution in units of dphi.

public int[]

Returns:

a two-element array with the cross feed direction resolution at index 0 and the feed direction resolution at index 1
getResolution
(int
unit conversion factor, e.g. DPI or DPCM
units
)

Get this resolution attribute's resolution values in the given units.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this resolution attribute.

public boolean

Returns:

true if this resolution attribute is less than or equal to the other resolution attribute, false otherwise
lessThanOrEquals
(ResolutionSyntax
resolution attribute to compare with
other
)

Determine whether this resolution attribute's value is less than or equal to the given resolution attribute's value.

public String

Returns:

string version of this resolution attribute
toString
(int
unit conversion factor, e.g. CODE>DPI or DPCM
units
,
String
units name string, e.g. "dpi" or "dpcm". If null, no units name is appended to the result.
unitsName
)

Returns a string version of this resolution attribute in the given units.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string version of this resolution attribute.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

crossFeedResolutionback to summary
private int crossFeedResolution

Cross feed direction resolution in units of dots per 100 inches (dphi).

DPCMback to summary
public static final int DPCM

Value to indicate units of dots per centimeter (dpcm). It is actually the conversion factor by which to multiply dpcm to yield dphi (254).

DPIback to summary
public static final int DPI

Value to indicate units of dots per inch (dpi). It is actually the conversion factor by which to multiply dpi to yield dphi (100).

feedResolutionback to summary
private int feedResolution

Feed direction resolution in units of dots per 100 inches (dphi).

serialVersionUIDback to summary
private static final long serialVersionUID

Use serialVersionUID from JDK 1.4 for interoperability.

Annotations
@Serial

Constructor Detail

ResolutionSyntaxback to summary
public ResolutionSyntax(int crossFeedResolution, int feedResolution, int units)

Construct a new resolution attribute from the given items.

Parameters
crossFeedResolution:int

cross feed direction resolution

feedResolution:int

feed direction resolution

units:int

unit conversion factor, e.g. DPI or DPCM

Exceptions
IllegalArgumentException:
if crossFeedResolution < 1 or feedResolution < 1 or units < 1

Method Detail

convertFromDphiback to summary
private static int convertFromDphi(int dphi, int units)

Convert a value from dphi to some other units. The result is rounded to the nearest integer.

Parameters
dphi:int

value (dphi) to convert

units:int

unit conversion factor, e.g. DPI or DPCM

Returns:int

the value of dphi converted to the desired units

Exceptions
IllegalArgumentException:
if units < 1
equalsback to summary
public boolean equals(Object object)

Overrides java.lang.Object.equals.

Returns whether this resolution attribute is equivalent to the passed in object. To be equivalent, all of the following conditions must be true:

  1. object is not null.
  2. object is an instance of class ResolutionSyntax.
  3. This attribute's cross feed direction resolution is equal to object's cross feed direction resolution.
  4. This attribute's feed direction resolution is equal to object's feed direction resolution.
Parameters
object:Object

Object to compare to

Returns:boolean

true if object is equivalent to this resolution attribute, false otherwise

Annotations
@Override
getCrossFeedResolutionback to summary
public int getCrossFeedResolution(int units)

Returns this resolution attribute's cross feed direction resolution in the given units. The value is rounded to the nearest integer.

Parameters
units:int

unit conversion factor, e.g. DPI or DPCM

Returns:int

cross feed direction resolution

Exceptions
IllegalArgumentException:
if units < 1
getCrossFeedResolutionDphiback to summary
protected int getCrossFeedResolutionDphi()

Returns this resolution attribute's cross feed direction resolution in units of dphi. (For use in a subclass.)

Returns:int

cross feed direction resolution

getFeedResolutionback to summary
public int getFeedResolution(int units)

Returns this resolution attribute's feed direction resolution in the given units. The value is rounded to the nearest integer.

Parameters
units:int

unit conversion factor, e.g. DPI or DPCM

Returns:int

feed direction resolution

Exceptions
IllegalArgumentException:
if units < 1
getFeedResolutionDphiback to summary
protected int getFeedResolutionDphi()

Returns this resolution attribute's feed direction resolution in units of dphi. (For use in a subclass.)

Returns:int

feed direction resolution

getResolutionback to summary
public int[] getResolution(int units)

Get this resolution attribute's resolution values in the given units. The values are rounded to the nearest integer.

Parameters
units:int

unit conversion factor, e.g. DPI or DPCM

Returns:int[]

a two-element array with the cross feed direction resolution at index 0 and the feed direction resolution at index 1

Exceptions
IllegalArgumentException:
if units < 1
hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this resolution attribute.

Annotations
@Override
lessThanOrEqualsback to summary
public boolean lessThanOrEquals(ResolutionSyntax other)

Determine whether this resolution attribute's value is less than or equal to the given resolution attribute's value. This is true if all of the following conditions are true:

  • This attribute's cross feed direction resolution is less than or equal to the other attribute's cross feed direction resolution.
  • This attribute's feed direction resolution is less than or equal to the other attribute's feed direction resolution.
Parameters
other:ResolutionSyntax

resolution attribute to compare with

Returns:boolean

true if this resolution attribute is less than or equal to the other resolution attribute, false otherwise

Exceptions
NullPointerException:
if other is null
toStringback to summary
public String toString(int units, String unitsName)

Returns a string version of this resolution attribute in the given units. The string takes the form "CxF U", where C is the cross feed direction resolution, F is the feed direction resolution, and U is the units name. The values are rounded to the nearest integer.

Parameters
units:int

unit conversion factor, e.g. CODE>DPI or DPCM

unitsName:String

units name string, e.g. "dpi" or "dpcm". If null, no units name is appended to the result.

Returns:String

string version of this resolution attribute

Exceptions
IllegalArgumentException:
if units < 1
toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Returns a string version of this resolution attribute. The string takes the form "CxF dphi", where C is the cross feed direction resolution and F is the feed direction resolution. The values are reported in the internal units of dphi.

Annotations
@Override