org.geotools.referencing.wkt
Class Formatter

java.lang.Object
  extended byorg.geotools.referencing.wkt.Formatter

public class Formatter
extends java.lang.Object

Format Formattable objects as Well Known Text (WKT). A formatter is constructed with a specified set of symbols. The locale associated with the symbols is used for querying authority titles.

Since:
2.0
Version:
$Id: Formatter.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux
See Also:
Well Know Text specification, OGC WKT Coordinate System Issues

Constructor Summary
Formatter()
          Creates a new instance of the formatter with the default symbols.
Formatter(Symbols symbols)
          Creates a new instance of the formatter.
Formatter(Symbols symbols, int indentation)
          Creates a new instance of the formatter with the specified indentation width.
 
Method Summary
 void append(org.opengis.util.CodeList code)
          Append a code list to the WKT.
 void append(double number)
          Append a floating point number.
 void append(Formattable formattable)
          Append the specified object.
 void append(org.opengis.parameter.GeneralParameterValue parameter)
          Append a parameter in WKT form.
 void append(org.opengis.referencing.IdentifiedObject info)
          Append the specified OpenGIS's object.
 void append(int number)
          Append an integer number.
 void append(org.opengis.referencing.operation.MathTransform transform)
          Append the specified math transform.
 void append(java.lang.String text)
          Append a character string.
 void append(javax.units.Unit unit)
          Appends a unit in WKT form.
 void clear()
          Clear this formatter.
 javax.units.Unit getAngularUnit()
          The angular unit for formatting measures, or for the "natural" unit of each WKT element.
 javax.units.Unit getLinearUnit()
          The linear unit for formatting measures, or for the "natural" unit of each WKT element.
 java.lang.String getName(org.opengis.referencing.IdentifiedObject info)
          Returns the preferred name for the specified object.
 boolean isInvalidWKT()
          Returns if the WKT in this formatter is not strictly compliant to the WKT specification.
static void main(java.lang.String[] args)
          Set the preferred indentation from the command line.
 void setAngularUnit(javax.units.Unit unit)
          Set the angular unit for formatting measures.
 void setInvalidWKT()
          Set a flag marking the current WKT as not strictly compliant to the WKT specification.
 void setLinearUnit(javax.units.Unit unit)
          Set the unit for formatting linear measures.
 java.lang.String toString()
          Returns the WKT in its current state.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Formatter

public Formatter()
Creates a new instance of the formatter with the default symbols.


Formatter

public Formatter(Symbols symbols)
Creates a new instance of the formatter. The whole WKT will be formatted on a single line.

Parameters:
symbols - The symbols.

Formatter

public Formatter(Symbols symbols,
                 int indentation)
Creates a new instance of the formatter with the specified indentation width. The WKT will be formatted on many lines, and the indentation width will have the value specified to this constructor. If the specified indentation is 0, then the whole WKT will be formatted on a single line.

Parameters:
symbols - The symbols.
indentation - The amount of spaces to use in indentation. Typical values are 2 or 4.
Method Detail

append

public void append(Formattable formattable)
Append the specified object. This method will automatically append the keyword (e.g. "GEOCS"), the name and the authority code, and will invokes formattable.formatWKT(this) for completing the inner part of the WKT.

Parameters:
formattable - The formattable object to append to the WKT.

append

public void append(org.opengis.referencing.IdentifiedObject info)
Append the specified OpenGIS's object.

Parameters:
info - The info object to append to the WKT.

append

public void append(org.opengis.referencing.operation.MathTransform transform)
Append the specified math transform.

Parameters:
transform - The transform object to append to the WKT.

append

public void append(org.opengis.util.CodeList code)
Append a code list to the WKT.


append

public void append(org.opengis.parameter.GeneralParameterValue parameter)
Append a parameter in WKT form. If the supplied parameter is actually a parameter group, all parameters will be inlined.


append

public void append(int number)
Append an integer number. A comma (or any other element separator) will be written before the number if needed.


append

public void append(double number)
Append a floating point number. A comma (or any other element separator) will be written before the number if needed.


append

public void append(javax.units.Unit unit)
Appends a unit in WKT form. For example, can append "UNIT["km", 1000]" to the WKT.


append

public void append(java.lang.String text)
Append a character string. The string will be written between quotes. A comma (or any other element separator) will be written before the string if needed.


getName

public java.lang.String getName(org.opengis.referencing.IdentifiedObject info)
Returns the preferred name for the specified object. If the specified object contains a name from the preferred authority (usually Open Geospatial), then this name is returned. Otherwise, the first name found is returned.

Parameters:
info - The object to looks for a preferred name.
Returns:
The preferred name.

getLinearUnit

public javax.units.Unit getLinearUnit()
The linear unit for formatting measures, or for the "natural" unit of each WKT element.

Returns:
The unit for measure. Default value is .

setLinearUnit

public void setLinearUnit(javax.units.Unit unit)
Set the unit for formatting linear measures.

Parameters:
unit - The new unit, or .

getAngularUnit

public javax.units.Unit getAngularUnit()
The angular unit for formatting measures, or for the "natural" unit of each WKT element. This value is set for example by "GEOGCS", which force its enclosing "PRIMEM" to take the same units than itself.

Returns:
The unit for measure. Default value is .

setAngularUnit

public void setAngularUnit(javax.units.Unit unit)
Set the angular unit for formatting measures.

Parameters:
unit - The new unit, or .

isInvalidWKT

public boolean isInvalidWKT()
Returns if the WKT in this formatter is not strictly compliant to the WKT specification. This method returns if setInvalidWKT() has been invoked at least once. The action to take regarding invalid WKT is caller-dependant. For example Formattable.toString() will accepts loose WKT formatting and ignore this flag, while Formattable.toWKT() requires strict WKT formatting and will thrown an exception if this flag is set.


setInvalidWKT

public void setInvalidWKT()
Set a flag marking the current WKT as not strictly compliant to the WKT specification. This method is invoked by Formattable.formatWKT(org.geotools.referencing.wkt.Formatter) methods when the object to format is more complex than what the WKT specification allows. For example this method is invoked when an engineering CRS uses different unit for each axis, An application can tests isInvalidWKT() later for checking WKT validity.


toString

public java.lang.String toString()
Returns the WKT in its current state.


clear

public void clear()
Clear this formatter. All properties (including unit and WKT validity flag are reset to their default value. After this method call, this object is ready for formatting a new object.


main

public static void main(java.lang.String[] args)
Set the preferred indentation from the command line. This indentation is used by Formattable.toWKT() when no indentation were explicitly requested. This method can be invoked from the command line using the following syntax:
<preferred indentation>



Copyright © GeoTools. All Rights Reserved.