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.
| Modifier and Type | Field 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. |
| Access | Constructor and Description |
|---|---|
| public | ResolutionSyntax(int
cross feed direction resolution crossFeedResolution, int feed direction resolution feedResolution, int units)Construct a new resolution attribute from the given items. |
| Modifier and Type | Method and Description |
|---|---|
| private static int | Returns: the value ofdphi converted to the desired unitsvalue (dphi) to convert dphi, int units)Convert a value from dphi to some other units. |
| public boolean | Returns: true if object is equivalent to this resolution
attribute, false otherwiseObject to compare toOverrides java. Returns whether this resolution attribute is equivalent to the passed in object. |
| public int | Returns: cross feed direction resolutionReturns this resolution attribute's cross feed direction resolution in the given units. |
| protected int | Returns: cross feed direction resolutionReturns this resolution attribute's cross feed direction resolution in units of dphi. |
| public int | Returns: feed direction resolutionReturns this resolution attribute's feed direction resolution in the given units. |
| protected int | Returns: feed direction resolutionReturns 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 1Get this resolution attribute's resolution values in the given units. |
| public int | hashCode()
Overrides java. 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
otherwiseresolution 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 | |
| public String | toString()
Overrides java. Returns a string version of this resolution attribute. |
| crossFeedResolution | back to summary |
|---|---|
| private int crossFeedResolution Cross feed direction resolution in units of dots per 100 inches (dphi). | |
| DPCM | back 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). | |
| DPI | back 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). | |
| feedResolution | back to summary |
|---|---|
| private int feedResolution Feed direction resolution in units of dots per 100 inches (dphi). | |
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID Use serialVersionUID from JDK 1.4 for interoperability. | |
| ResolutionSyntax | back to summary |
|---|---|
| public ResolutionSyntax(int crossFeedResolution, int feedResolution, int units) Construct a new resolution attribute from the given items.
| |
| convertFromDphi | back 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.
| |
| equals | back to summary |
|---|---|
| public boolean equals(Object object) Overrides java. Returns whether this resolution attribute is equivalent to the passed in object. To be equivalent, all of the following conditions must be true:
| |
| getCrossFeedResolution | back 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.
| |
| getCrossFeedResolutionDphi | back to summary |
|---|---|
| protected int getCrossFeedResolutionDphi() Returns this resolution attribute's cross feed direction resolution in units of dphi. (For use in a subclass.)
| |
| getFeedResolution | back 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.
| |
| getFeedResolutionDphi | back to summary |
|---|---|
| protected int getFeedResolutionDphi() Returns this resolution attribute's feed direction resolution in units of dphi. (For use in a subclass.)
| |
| getResolution | back 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.
| |
| hashCode | back to summary |
|---|---|
| public int hashCode() Overrides java. Returns a hash code value for this resolution attribute.
| |
| lessThanOrEquals | back 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:
| |
| toString | back 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
| |
| toString | back to summary |
|---|---|
| public String toString() Overrides java. Returns a string version of this resolution attribute. The string takes
the form
| |