org.deegree.gml.feature
Class GMLFeatureReader

java.lang.Object
  extended by org.deegree.commons.xml.XMLAdapter
      extended by org.deegree.gml.feature.GMLFeatureReader

public class GMLFeatureReader
extends XMLAdapter

Stream-based reader for GML-encoded features and feature collections.

Version:
$Revision:$, $Date:$
Author:
Markus Schneider , last edited by: $Author:$

Field Summary
 
Fields inherited from class org.deegree.commons.xml.XMLAdapter
DEFAULT_URL, nsContext, rootElement, XLN_NS
 
Constructor Summary
GMLFeatureReader(GMLVersion version, AppSchema schema, GMLDocumentIdContext idContext, int defaultCoordDim, GMLReferenceResolver resolver)
          Creates a new GMLFeatureReader instance that is configured for building features with the specified feature types.
 
Method Summary
 AppSchema getAppSchema()
          Returns the associated AppSchema that describes the structure of the feature types.
 GMLDocumentIdContext getDocumentIdContext()
          Returns the GMLDocumentIdContext that keeps track of objects, identifiers and references.
 StreamFeatureCollection getFeatureStream(XMLStreamReaderWrapper xmlStream, ICRS crs)
          Returns a StreamFeatureCollection that allows stream-based access to the members of the feature collection that the cursor of the given XMLStreamReader points at.
 Feature parseFeature(XMLStreamReaderWrapper xmlStream, ICRS crs)
          Returns the object representation for the feature (or feature collection) element event that the cursor of the given XMLStreamReader points at.
protected  String parseFeatureId(XMLStreamReaderWrapper xmlReader)
          Parses the feature id attribute from the feature START_ELEMENT event that the given XMLStreamReader points to.
 Property parseProperty(XMLStreamReaderWrapper xmlStream, PropertyType propDecl, ICRS crs, int occurence)
          Returns the object representation for the given property element.
 void setGeometryReader(GMLGeometryReader geomReader)
           
 
Methods inherited from class org.deegree.commons.xml.XMLAdapter
evaluateXPath, getElement, getElements, getNamespaceContext, getNode, getNodeAsBigInt, getNodeAsBoolean, getNodeAsDouble, getNodeAsFloat, getNodeAsInt, getNodeAsQName, getNodeAsString, getNodeAsURL, getNodeAsVersion, getNodes, getNodesAsQNames, getNodesAsStrings, getRequiredElement, getRequiredElements, getRequiredNode, getRequiredNodeAsBoolean, getRequiredNodeAsDouble, getRequiredNodeAsFloat, getRequiredNodeAsInteger, getRequiredNodeAsQName, getRequiredNodeAsString, getRequiredNodeAsURL, getRequiredNodeAsVersion, getRequiredNodes, getRootElement, getSchemas, getSystemId, hasSchemas, load, load, load, load, load, load, load, maybeWriteElement, maybeWriteElementNS, parseBoolean, parseDouble, parseFloat, parseInt, parseQName, parseSimpleLink, parseURL, resolve, setRootElement, setSystemId, toString, writeElement, writeElement, writeElement, writeElement, writeElement, writeOptionalAttribute, writeOptionalElement, writeOptionalNSAttribute
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GMLFeatureReader

public GMLFeatureReader(GMLVersion version,
                        AppSchema schema,
                        GMLDocumentIdContext idContext,
                        int defaultCoordDim,
                        GMLReferenceResolver resolver)
Creates a new GMLFeatureReader instance that is configured for building features with the specified feature types.

Parameters:
version - GML version, must not be null
schema - application schema that defines the feature types, can be null. If null, the xsi:schemaLocation attribute is used to construct the schema. If this doesn't exist either, the parser falls back to dynamic feature type generation from the input GML.
idContext - id context to be used for registering gml:ids (features and geometries) and resolving local xlinks, can be null
defaultCoordDim - defaultValue for coordinate dimension, only used when a gml:posList is parsed and no dimension information from CRS is available (unknown CRS)
resolver - used for resolving xlink-references, can be null
Method Detail

setGeometryReader

public void setGeometryReader(GMLGeometryReader geomReader)
Parameters:
geomReader -

getAppSchema

public AppSchema getAppSchema()
Returns the associated AppSchema that describes the structure of the feature types.

Returns:
the associated AppSchema

getDocumentIdContext

public GMLDocumentIdContext getDocumentIdContext()
Returns the GMLDocumentIdContext that keeps track of objects, identifiers and references.

Returns:
the GMLDocumentIdContext, never null

parseFeature

public Feature parseFeature(XMLStreamReaderWrapper xmlStream,
                            ICRS crs)
                     throws XMLStreamException,
                            XMLParsingException,
                            UnknownCRSException
Returns the object representation for the feature (or feature collection) element event that the cursor of the given XMLStreamReader points at.

Parameters:
xmlStream - cursor must point at the START_ELEMENT event of the feature element, afterwards points at the next event after the END_ELEMENT event of the feature element
crs - default CRS for all descendant geometry properties
Returns:
object representation for the given feature element
Throws:
XMLStreamException
UnknownCRSException
XMLParsingException

getFeatureStream

public StreamFeatureCollection getFeatureStream(XMLStreamReaderWrapper xmlStream,
                                                ICRS crs)
                                         throws XMLStreamException
Returns a StreamFeatureCollection that allows stream-based access to the members of the feature collection that the cursor of the given XMLStreamReader points at.

Parameters:
xmlStream - cursor must point at the START_ELEMENT event of a feature collection element
crs -
Returns:
Throws:
XMLStreamException

parseProperty

public Property parseProperty(XMLStreamReaderWrapper xmlStream,
                              PropertyType propDecl,
                              ICRS crs,
                              int occurence)
                       throws XMLParsingException,
                              XMLStreamException,
                              UnknownCRSException
Returns the object representation for the given property element.

Parameters:
xmlStream - cursor must point at the START_ELEMENT event of the property, afterwards points at the next event after the END_ELEMENT of the property
propDecl - property declaration
crs - default SRS for all a descendant geometry properties
occurence -
Returns:
object representation for the given property element.
Throws:
XMLParsingException
XMLStreamException
UnknownCRSException

parseFeatureId

protected String parseFeatureId(XMLStreamReaderWrapper xmlReader)
Parses the feature id attribute from the feature START_ELEMENT event that the given XMLStreamReader points to.

Looks after 'gml:id' (GML 3) first, if no such attribute is present, the 'fid' (GML 2) attribute is used.

Parameters:
xmlReader - must point to the START_ELEMENT event of the feature
Returns:
the feature id, or "" (empty string) if neither a 'gml:id' nor a 'fid' attribute is present


Copyright © 2011. All Rights Reserved.