Package org.locationtech.jts.jump.io
Class GMLInputTemplate
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.locationtech.jts.jump.io.GMLInputTemplate
-
- All Implemented Interfaces:
ContentHandler
,DTDHandler
,EntityResolver
,ErrorHandler
public class GMLInputTemplate extends DefaultHandler
Reads an XML file that starts with a 'JCSGMLInputTemplate'.
Will abort read at the end of the 'JCSGMLInputTemplate' tag.
Constructs a description of the Columns and geometry tag so the
actual GML parser (GMLReader
) will know what to do with different tags.
This is a SAX Handler.
-
-
Field Summary
Fields Modifier and Type Field Description boolean
loaded
-
Constructor Summary
Constructors Constructor Description GMLInputTemplate()
constructor - makes a new org.apache.xerces.parser and makes this class be the SAX content and error handler.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
characters(char[] ch, int start, int length)
SAX handler for characters - just store and accumulate for later useString
columnName(int index)
Returns the column name for the 'index'th column.void
endDocument()
SAX endDocument handler - nullvoid
endElement(String uri, String name, String qName)
SAX endElement handler - the main working function
handles the following tags in the appropriate manner:
GeometryElement : sets the name of the document's geometry tag
CollectionElement : sets the name of the document's collection tag
FeatureElement : sets the name of the document's feature tag
type : sets a column type (to be used when a column ends)
valueelement : sets information about what element a column is associated with
valuelocation : set information about where a column's value is stored in the document
column : takes the accumlated information about a column and constructs a ColumnDescription objectvoid
error(SAXParseException exception)
void
fatalError(SAXParseException exception)
Object
getColumnValue(int index, String tagBody, Attributes xmlAtts)
Given a ColumnDescription index, the XML tagBody, and the tag's attributes, return the actual value (it could be an attribute or the tag's body).String
getFeatureCollectionElementName()
Get the name of the FeatureCollectionElement tagString
getFeatureElementName()
Get the name of the FeatureElement tagboolean
isGeometryElement(String tag)
Function to help the GMLParser - is this tag name the Geometry Element tag name?void
load(Reader r)
Helper function - load a GMLInputTemplate file with the stream name "Unknown Stream"void
load(Reader r, String readerName)
Main function - load in an XML file.int
match(String XMLtagName, Attributes xmlAtts)
Given a tag name and its XML attributes, find the index of the column it belongs to.
Returns -1 if it doesnt match any of the columns.void
startDocument()
SAX startDocument handler - nullvoid
startElement(String uri, String name, String qName, Attributes atts)
SAX startElement handler
Basically just records the tag name and its attributes since all the smarts are in the endElement handler.FeatureSchema
toFeatureSchema()
Converts this GMLInputTemplate to a feature schema.void
warning(SAXParseException exception)
-
Methods inherited from class org.xml.sax.helpers.DefaultHandler
endPrefixMapping, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDecl
-
-
-
-
Method Detail
-
columnName
public String columnName(int index) throws ParseException
Returns the column name for the 'index'th column.- Parameters:
index
- 0=first- Throws:
ParseException
-
toFeatureSchema
public FeatureSchema toFeatureSchema() throws ParseException
Converts this GMLInputTemplate to a feature schema.- Throws:
ParseException
-
isGeometryElement
public boolean isGeometryElement(String tag)
Function to help the GMLParser - is this tag name the Geometry Element tag name?- Parameters:
tag
- an XML tag name
-
load
public void load(Reader r) throws ParseException, IOException
Helper function - load a GMLInputTemplate file with the stream name "Unknown Stream"- Throws:
ParseException
IOException
-
load
public void load(Reader r, String readerName) throws ParseException, IOException
Main function - load in an XML file.
Error handling/reporting also done here.- Parameters:
r
- where to read the XML file fromreaderName
- name of the stream for error reporting- Throws:
ParseException
IOException
-
getFeatureCollectionElementName
public String getFeatureCollectionElementName() throws ParseException
Get the name of the FeatureCollectionElement tag- Throws:
ParseException
-
getFeatureElementName
public String getFeatureElementName() throws ParseException
Get the name of the FeatureElement tag- Throws:
ParseException
-
match
public int match(String XMLtagName, Attributes xmlAtts) throws ParseException
Given a tag name and its XML attributes, find the index of the column it belongs to.
Returns -1 if it doesnt match any of the columns.- Parameters:
XMLtagName
- the tag name found in the xmlthe
- attributes associated with the xml- Throws:
ParseException
-
getColumnValue
public Object getColumnValue(int index, String tagBody, Attributes xmlAtts) throws ParseException
Given a ColumnDescription index, the XML tagBody, and the tag's attributes, return the actual value (it could be an attribute or the tag's body). You probably got the index from the match() function.- Parameters:
index
- index number of the column descriptiontagBody
- value of the XML tag bodyxmlAtts
- key/values of the XML tag's attributes- Throws:
ParseException
-
warning
public void warning(SAXParseException exception) throws SAXException
- Specified by:
warning
in interfaceErrorHandler
- Overrides:
warning
in classDefaultHandler
- Throws:
SAXException
-
error
public void error(SAXParseException exception) throws SAXException
- Specified by:
error
in interfaceErrorHandler
- Overrides:
error
in classDefaultHandler
- Throws:
SAXException
-
fatalError
public void fatalError(SAXParseException exception) throws SAXException
- Specified by:
fatalError
in interfaceErrorHandler
- Overrides:
fatalError
in classDefaultHandler
- Throws:
SAXException
-
startDocument
public void startDocument()
SAX startDocument handler - null- Specified by:
startDocument
in interfaceContentHandler
- Overrides:
startDocument
in classDefaultHandler
-
endDocument
public void endDocument()
SAX endDocument handler - null- Specified by:
endDocument
in interfaceContentHandler
- Overrides:
endDocument
in classDefaultHandler
-
startElement
public void startElement(String uri, String name, String qName, Attributes atts) throws SAXException
SAX startElement handler
Basically just records the tag name and its attributes since all the smarts are in the endElement handler.- Specified by:
startElement
in interfaceContentHandler
- Overrides:
startElement
in classDefaultHandler
- Throws:
SAXException
-
endElement
public void endElement(String uri, String name, String qName) throws SAXException
SAX endElement handler - the main working function
handles the following tags in the appropriate manner:
GeometryElement : sets the name of the document's geometry tag
CollectionElement : sets the name of the document's collection tag
FeatureElement : sets the name of the document's feature tag
type : sets a column type (to be used when a column ends)
valueelement : sets information about what element a column is associated with
valuelocation : set information about where a column's value is stored in the document
column : takes the accumlated information about a column and constructs a ColumnDescription object- Specified by:
endElement
in interfaceContentHandler
- Overrides:
endElement
in classDefaultHandler
- Throws:
SAXException
-
characters
public void characters(char[] ch, int start, int length) throws SAXException
SAX handler for characters - just store and accumulate for later use- Specified by:
characters
in interfaceContentHandler
- Overrides:
characters
in classDefaultHandler
- Throws:
SAXException
-
-