Package org.geotools.referencing.wkt
Class AbstractConsole
- Object
-
- AbstractConsole
-
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
Console
public abstract class AbstractConsole extends Object implements 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
- Author:
- Martin Desruisseaux (IRD)
-
-
Field Summary
Fields Modifier and Type Field Description protected PrintWritererrThe error stream, usually the standard one.protected LineNumberReaderinThe input stream, usually the standard one.protected StringlineSeparatorThe line separator, usually the system default.protected WriteroutThe output stream, usually the standard one.protected FormatparserThe WKT parser, usually aPreprocessorobject.
-
Constructor Summary
Constructors Constructor Description AbstractConsole(Format parser)Creates a new console instance using standard input stream, standard output stream, error output stream and the system default line separator.AbstractConsole(Format parser, LineNumberReader in)Creates a new console instance using the specified input stream.AbstractConsole(Format parser, LineNumberReader in, Writer out, PrintWriter err, String lineSeparator)Creates a new console instance using the specified streams and line separator.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddDefinition(String name, String value)Adds a predefined Well Know Text (WKT).protected abstract voidexecute(String instruction)Execute the specified instruction.voidexecuteAll()Executes all instructions (likerun()), but stop at the first error.StringgetPrompt()Returns the command-line prompt, ornullif there is none.voidloadDefinitions(LineNumberReader in)Load all definitions from the specified stream.ObjectparseObject(String text, Class type)Parses the specified text.voidprintDefinitions()Prints to the output stream a table of all definitions.protected voidreportError(Exception exception)Print an exception message to the standard error stream.voidrun()Process instructions from the input stream specified at construction time.voidsetPrompt(String prompt)Set the command-line prompt, ornullfor none.voidstop()Stops therun()method.
-
-
-
Field Detail
-
in
protected final LineNumberReader in
The input stream, usually the standard one.
-
out
protected final Writer out
The output stream, usually the standard one.
-
err
protected final PrintWriter err
The error stream, usually the standard one.
-
lineSeparator
protected final String lineSeparator
The line separator, usually the system default.
-
parser
protected final Format parser
The WKT parser, usually aPreprocessorobject.
-
-
Constructor Detail
-
AbstractConsole
public AbstractConsole(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 aPreprocessorobject.
-
AbstractConsole
public AbstractConsole(Format parser, LineNumberReader in)
Creates a new console instance using the specified input stream.- Parameters:
parser- The WKT parser, usually aPreprocessorobject.in- The input stream.
-
AbstractConsole
public AbstractConsole(Format parser, LineNumberReader in, Writer out, PrintWriter err, String lineSeparator)
Creates a new console instance using the specified streams and line separator.- Parameters:
parser- The WKT parser, usually aPreprocessorobject.in- The input stream.out- The output stream.err- The error stream.lineSeparator- The line separator.
-
-
Method Detail
-
parseObject
public Object parseObject(String text, Class type) throws ParseException, 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 aCoordinateReferenceSystem.classorMathTransform.class).- Returns:
- The object.
- Throws:
ParseException- if parsing the specified WKT failed.FactoryException- if the object is not of the expected type.
-
addDefinition
public void addDefinition(String name, String value) throws ParseException
Adds a predefined Well Know Text (WKT). Thevalueargument 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 ofPreprocessor.- Parameters:
name- The name for the definition to be added.value- The Well Know Text (WKT) represented by the name.- Throws:
IllegalArgumentException- if the name is invalid.ParseException- if the WKT can't be parsed.
-
loadDefinitions
public void loadDefinitions(LineNumberReader in) throws IOException, ParseException
Load all definitions from the specified stream. Definitions are key-value pairs in the formname = wkt(without theSETkeyword). The result is the same than invoking theSETinstruction for each line in the specified stream. This method is used for loading predefined objects like the database used byPropertyAuthorityFactory.- Parameters:
in- The input stream.- Throws:
IOException- if an input operation failed.ParseException- if a well know text (WKT) can't be parsed.
-
printDefinitions
public void printDefinitions() throws IOExceptionPrints to the output stream a table of all definitions. The content of this table is inferred from the values given to theaddDefinition(java.lang.String, java.lang.String)method. This method print nothing if the parser is not an instance ofPreprocessor.- Throws:
IOException- if an error occured while writting to the output stream.
-
getPrompt
public String getPrompt()
Returns the command-line prompt, ornullif there is none.
-
setPrompt
public void setPrompt(String prompt)
Set the command-line prompt, ornullfor none.
-
run
public void run()
Process instructions from the input stream specified at construction time. All lines are read until the end of stream ([Ctrl-Z]for input from the keyboard), or untilstop()is invoked. Non-empty and non-comment lines are given to theexecute(java.lang.String)method. Errors are catched and printed to the error stream.
-
executeAll
public void executeAll() throws ExceptionExecutes all instructions (likerun()), but stop at the first error.- Throws:
Exception- if an instruction failed.
-
execute
protected abstract void execute(String instruction) throws Exception
Execute the specified instruction.- Parameters:
instruction- The instruction to execute.- Throws:
Exception- if the instruction failed.
-
stop
public void stop()
-
reportError
protected void reportError(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 ofParseException.- Parameters:
exception- The exception to report.
-
-