org.geotools.referencing.wkt
Class AbstractConsole

java.lang.Object
  extended byorg.geotools.referencing.wkt.AbstractConsole
All Implemented Interfaces:
java.lang.Runnable
Direct Known Subclasses:
Console

public abstract class AbstractConsole
extends java.lang.Object
implements java.lang.Runnable

Base class for application performing operations on WKT objects from the command line. Instructions are usually read from the standard input stream and results sent to the standard output stream, but those streams can be redirected. The set of allowed instructions depends on the subclass used.

Since:
2.1
Version:
$Id: AbstractConsole.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux

Field Summary
protected  java.io.PrintWriter err
          The error stream, usually the standard one.
protected  java.io.LineNumberReader in
          The input stream, usually the standard one.
protected  java.lang.String lineSeparator
          The line separator, usually the system default.
protected  java.io.Writer out
          The output stream, usually the standard one.
protected  java.text.Format parser
          The WKT parser, usually a Preprocessor object.
 
Constructor Summary
AbstractConsole(java.text.Format parser)
          Creates a new console instance using standard input stream, standard output stream, error output stream and the system default line separator.
AbstractConsole(java.text.Format parser, java.io.LineNumberReader in)
          Creates a new console instance using the specified input stream.
AbstractConsole(java.text.Format parser, java.io.LineNumberReader in, java.io.Writer out, java.io.PrintWriter err, java.lang.String lineSeparator)
          Creates a new console instance using the specified streams and line separator.
 
Method Summary
 void addDefinition(java.lang.String name, java.lang.String value)
          Adds a predefined Well Know Text (WKT).
protected abstract  void execute(java.lang.String instruction)
          Execute the specified instruction.
 void executeAll()
          Executes all instructions (like run()), but stop at the first error.
 java.lang.String getPrompt()
          Returns the command-line prompt, or if there is none.
 void loadDefinitions(java.io.LineNumberReader in)
          Load all definitions from the specified stream.
 java.lang.Object parseObject(java.lang.String text, java.lang.Class type)
          Parses the specified text.
 void printDefinitions()
          Prints to the output stream a table of all definitions.
protected  void reportError(java.lang.Exception exception)
          Print an exception message to the standard error stream.
 void run()
          Process instructions from the input stream specified at construction time.
 void setPrompt(java.lang.String prompt)
          Set the command-line prompt, or for none.
 void stop()
          Stops the run() method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

in

protected final java.io.LineNumberReader in
The input stream, usually the standard one.


out

protected final java.io.Writer out
The output stream, usually the standard one.


err

protected final java.io.PrintWriter err
The error stream, usually the standard one.


lineSeparator

protected final java.lang.String lineSeparator
The line separator, usually the system default.


parser

protected final java.text.Format parser
The WKT parser, usually a Preprocessor object.

Constructor Detail

AbstractConsole

public AbstractConsole(java.text.Format parser)
Creates a new console instance using standard input stream, standard output stream, error output stream and the system default line separator.

Parameters:
parser - The WKT parser, usually a Preprocessor object.

AbstractConsole

public AbstractConsole(java.text.Format parser,
                       java.io.LineNumberReader in)
Creates a new console instance using the specified input stream.

Parameters:
parser - The WKT parser, usually a Preprocessor object.
in - The input stream.

AbstractConsole

public AbstractConsole(java.text.Format parser,
                       java.io.LineNumberReader in,
                       java.io.Writer out,
                       java.io.PrintWriter err,
                       java.lang.String lineSeparator)
Creates a new console instance using the specified streams and line separator.

Parameters:
parser - The WKT parser, usually a Preprocessor object.
in - The input stream.
out - The output stream.
err - The error stream.
lineSeparator - The line separator.
Method Detail

parseObject

public java.lang.Object parseObject(java.lang.String text,
                                    java.lang.Class type)
                             throws java.text.ParseException,
                                    org.opengis.referencing.FactoryException
Parses the specified text. The default implementation delegates the work to the parser.

Parameters:
text - The text, as a name, a WKT to parse, or an authority code.
type - The expected type for the object to be parsed (usually a CoordinateReferenceSystem.class or MathTransform.class).
Returns:
The object.
Throws:
java.text.ParseException - if parsing the specified WKT failed.
org.opengis.referencing.FactoryException - if the object is not of the expected type.

addDefinition

public void addDefinition(java.lang.String name,
                          java.lang.String value)
                   throws java.text.ParseException
Adds a predefined Well Know Text (WKT). The argument given to this method can contains itself other definitions specified in some previous calls to this method. This method do nothing if the parser is not an instance of Preprocessor.

Parameters:
name - The name for the definition to be added.
value - The Well Know Text (WKT) represented by the name.
Throws:
java.lang.IllegalArgumentException - if the name is invalid.
java.text.ParseException - if the WKT can't be parsed.

loadDefinitions

public void loadDefinitions(java.io.LineNumberReader in)
                     throws java.io.IOException,
                            java.text.ParseException
Load all definitions from the specified stream. Definitions are key-value pairs in the form (without the keyword). The result is the same than invoking the instruction for each line in the specified stream. This method is used for loading predefined objects like the database used by PropertyAuthorityFactory.

Parameters:
in - The input stream.
Throws:
java.io.IOException - if an input operation failed.
java.text.ParseException - if a well know text (WKT) can't be parsed.

printDefinitions

public void printDefinitions()
                      throws java.io.IOException
Prints to the output stream a table of all definitions. The content of this table is inferred from the values given to the addDefinition(java.lang.String, java.lang.String) method. This method print nothing if the parser is not an instance of Preprocessor.

Throws:
java.io.IOException - if an error occured while writting to the output stream.

getPrompt

public java.lang.String getPrompt()
Returns the command-line prompt, or if there is none.


setPrompt

public void setPrompt(java.lang.String prompt)
Set the command-line prompt, or for none.


run

public void run()
Process instructions from the input stream specified at construction time. All lines are read until the end of stream ( for input from the keyboard), or until stop() is invoked. Non-empty and non-comment lines are given to the execute(java.lang.String) method. Errors are catched and printed to the error stream.

Specified by:
run in interface java.lang.Runnable

executeAll

public void executeAll()
                throws java.lang.Exception
Executes all instructions (like run()), but stop at the first error.

Throws:
java.lang.Exception - if an instruction failed.

execute

protected abstract void execute(java.lang.String instruction)
                         throws java.lang.Exception
Execute the specified instruction.

Parameters:
instruction - The instruction to execute.
Throws:
java.lang.Exception - if the instruction failed.

stop

public void stop()
Stops the run() method. This method can been invoked from any thread. If a line is in process, it will be finished before the run() method stops.


reportError

protected void reportError(java.lang.Exception exception)
Print an exception message to the standard error stream. The error message includes the line number, and the column where the failure occured in the exception is an instance of ParseException.

Parameters:
exception - The exception to report.
To Do:
Localize


Copyright © GeoTools. All Rights Reserved.