|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.deegree.cs.persistence.AbstractCRSStore org.deegree.cs.persistence.gml.GMLCRSStore
public class GMLCRSStore
The GMLCRSProvider
is a provider for a GML 3.2 backend, this may be a dictionary or a database.
Note: not all of the GML3.2. features are implemented yet, but the basics (transformations, crs's, axis, units,
projections) should work quite well.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.deegree.cs.persistence.AbstractCRSStore |
---|
AbstractCRSStore.RESOURCETYPE |
Constructor Summary | |
---|---|
GMLCRSStore(TransformationFactory.DSTransform prefTransformType)
|
Method Summary | |
---|---|
protected Helmert |
createHelmert(CRSResource id,
List<Pair<CRSIdentifiable,Object>> parameterValues,
ICRS source,
ICRS target)
Creates a Helmert transformation from the given parameter list. |
protected NTv2Transformation |
createNTv2(CRSResource id,
List<Pair<CRSIdentifiable,Object>> parameterValues,
ICRS source,
ICRS target)
Create an NTv2Transformation from the given parameter list. |
List<CRSCodeType[]> |
getAvailableCRSCodes()
This method should be called if one is only interested in the available identifiers and not in the coordinatesystems themselves. |
List<ICRS> |
getAvailableCRSs()
This method should be called to see if the provider is able to create all defined crs's, thus verifying the correctness of the configuration. |
ICRS |
getCoordinateSystem(String id)
|
CRSResource |
getCRSResource(CRSCodeType id)
This method is more general than the CRSStore.getCRSByCode(CRSCodeType) , because it represents a possibility to
return an arbitrary CRSResource Object from the providers backend. |
Transformation |
getDirectTransformation(ICRS sourceCRS,
ICRS targetCRS)
This method is should retrieve a transformation which transforms coordinates from the given source into the given target crs. |
Transformation |
getDirectTransformation(String uri)
This method should retrieve a transformation with the given id. |
protected org.apache.axiom.om.OMElement |
getRequiredXlinkedElement(org.apache.axiom.om.OMElement propertyElement,
String alternativeXPath)
convenience method to retrieve a given required element either by resolving a optional xlink or by evaluating the required element denoted by the xpath. |
protected GMLResource |
getResolver()
|
void |
init()
Called by the manager to indicate that this CRSStore instance is being registered. |
protected IAxis |
parseAxis(org.apache.axiom.om.OMElement rootElement)
|
protected IAxis[] |
parseAxisFromCSType(org.apache.axiom.om.OMElement rootElement)
For the ellipsoidal and cartesian cs Types, this method also checks the consistency of axis (radian, radian, [metre] ) or (metre, metre, [metre] ). |
protected ICompoundCRS |
parseCompoundCRS(org.apache.axiom.om.OMElement rootElement)
This methods parses the given element and maps it onto a CompoundCRS . |
protected ICRS |
parseCoordinateSystem(org.apache.axiom.om.OMElement rootElement)
|
protected IGeodeticDatum |
parseDatum(org.apache.axiom.om.OMElement rootElement)
|
protected IEllipsoid |
parseEllipsoid(org.apache.axiom.om.OMElement rootElement)
|
protected ICRS |
parseGeodeticCRS(org.apache.axiom.om.OMElement rootElement)
|
Transformation |
parseGMLTransformation(org.apache.axiom.om.OMElement rootElement,
ICRS sourceCRS,
ICRS targetCRS)
Parses some of the gml 3.2 transformation constructs. |
CRSIdentifiable |
parseIdentifiedObject(org.apache.axiom.om.OMElement rootElement)
|
protected Pair<CRSIdentifiable,Object> |
parseParameterValue(org.apache.axiom.om.OMElement rootElement)
|
protected List<Pair<CRSIdentifiable,Object>> |
parseParameterValues(org.apache.axiom.om.OMElement rootElement)
|
protected IPrimeMeridian |
parsePrimeMeridian(org.apache.axiom.om.OMElement rootElement)
|
protected ICRS |
parseProjectedCRS(org.apache.axiom.om.OMElement rootElement)
|
protected IProjection |
parseProjection(org.apache.axiom.om.OMElement rootElement)
For now this method actually wraps all information in a gml:AbstractGeneralConversionType (or a derived subtype) into an CRSIdentifiable Object (used for the Projections). |
Transformation |
parseTransformation(org.apache.axiom.om.OMElement rootElement)
Calls parseGMLTransformation for the catching of XMLParsingException . |
protected IUnit |
parseUnitOfMeasure(org.apache.axiom.om.OMElement elementContainingUOMAttribute)
Returns the unit defined by the uomAttribute given of the given element. |
protected IVerticalCRS |
parseVerticalCRS(org.apache.axiom.om.OMElement rootElement)
|
protected IVerticalDatum |
parseVerticalDatum(org.apache.axiom.om.OMElement rootElement)
|
protected org.apache.axiom.om.OMElement |
retrieveAndResolveXLink(org.apache.axiom.om.OMElement rootElement)
Retrieves the xlink:href of the given rootElement and use the XLinkResolver to resolve the xlink if it was given. |
protected String |
retrieveXLink(org.apache.axiom.om.OMElement rootElement)
Find an xlink:href attribute and return it's value, if not found, the empty String will be returned. |
void |
setResolver(GMLResource newResolver)
Set the resolver to the given resolver. |
Methods inherited from class org.deegree.cs.persistence.AbstractCRSStore |
---|
addIdToCache, clearCache, getCachedIdentifiable, getCachedIdentifiable, getCachedIdentifiable, getCachedIdentifiable, getCachedIdentifiable, getCachedIdentifiable, getCRSByCode, getCRSByCode, getPreferedTransformationType, resolve |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public GMLCRSStore(TransformationFactory.DSTransform prefTransformType)
Method Detail |
---|
public List<CRSCodeType[]> getAvailableCRSCodes() throws CRSConfigurationException
CRSStore
CRSConfigurationException
- if the implementation was confronted by an exception and could not deliver the requested crs. This
exception should not be thrown if no CoordinateSystems were found, in the latter case an empty List (
a list with size == 0 ) should be returned.public List<ICRS> getAvailableCRSs() throws CRSConfigurationException
CRSStore
CRSConfigurationException
- if the implementation was confronted by an exception and could not deliver the requested crs. This
exception should not be thrown if no CoordinateSystems were found, in the latter case an empty List (
a list with size == 0 ) should be returned.protected ICRS parseCoordinateSystem(org.apache.axiom.om.OMElement rootElement) throws CRSConfigurationException
rootElement
- containing a gml:CRS dom representation.
CRS
instance initialized with values from the given XML-OM gml:CRS fragment or
null
if the given root element is null
CRSConfigurationException
- if something went wrong.public Transformation parseTransformation(org.apache.axiom.om.OMElement rootElement) throws CRSConfigurationException
XMLParsingException
.
CRSConfigurationException
public Transformation parseGMLTransformation(org.apache.axiom.om.OMElement rootElement, ICRS sourceCRS, ICRS targetCRS) throws XMLParsingException, IOException
rootElement
- sourceCRS
- to be used as the source crs, if null
the values from the given transformation will be
parsed.targetCRS
- to be used as the target crs, if null
the values from the given transformation will be
parsed.
XMLParsingException
IOException
protected Helmert createHelmert(CRSResource id, List<Pair<CRSIdentifiable,Object>> parameterValues, ICRS source, ICRS target)
Helmert
transformation from the given parameter list.
id
- of the transformation.parameterValues
- the list of values, the Object must be a Double
(denoting a the rotation/translation/ppm of
the helmert.)source
- to go fromtarget
- to go to
protected NTv2Transformation createNTv2(CRSResource id, List<Pair<CRSIdentifiable,Object>> parameterValues, ICRS source, ICRS target)
NTv2Transformation
from the given parameter list.
id
- of the transformation.parameterValues
- the list of values, the Object must be a String (denoting a gridshift file url.)source
- to go fromtarget
- to go to
NTv2Transformation
if a file was given, null
otherwise.public CRSIdentifiable parseIdentifiedObject(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException
rootElement
- which is a subtype of gml:IdentifiedObject and gml:DefinitionType or gml:AbstractCRSType
CRSIdentifiable
instance, its values are filled with the values of the given gml instance.
XMLParsingException
- if the given rootElement could not be parsed.protected ICompoundCRS parseCompoundCRS(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
CompoundCRS
. Currently only gml:CompoundCRS 's
consisting of following combination is supported:
CompoundCRS
by calling the
parseGeodeticCRS(OMElement)
rootElement
- containing a gml:CompoundCRS dom representation.
CompoundCRS
instance initialized with values from the given XML-OM gml:CompoundCRS fragment.
XMLParsingException
IOException
protected ICRS parseProjectedCRS(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
rootElement
- containing a gml:ProjectedCRS dom representation.
ProjectedCRS
instance initialized with values from the given XML-OM gml:ProjectedCRS fragment
or null
if the given root element is null
XMLParsingException
- if the dom tree is not consistent or a required element is missing.
IOException
- if a retrieval of an xlink of one of the subelements failed.protected ICRS parseGeodeticCRS(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
rootElement
- containing a gml:GeodeticCRS dom representation.
CRS
instance initialized with values from the given XML-OM gml:GeodeticCRS fragment or
null
if the given root element is null
. Note the result may be a
CompoundCRS
, a GeographicCRS
or a GeocentricCRS
, depending of the definition of
the CS type.
XMLParsingException
IOException
protected IGeodeticDatum parseDatum(org.apache.axiom.om.OMElement rootElement) throws IOException, XMLParsingException
rootElement
- containing a gml:GeodeticDatum dom representation.
GeodeticDatum
instance initialized with values from the given XML-OM fragment or
null
if the given root element is null
XMLParsingException
- if the dom tree is not consistent or a required element is missing.
IOException
- if a retrieval of an xlink of one of the subelements failed.protected IAxis[] parseAxisFromCSType(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
rootElement
- containing a (Ellipsoidal, Spherical, Cartesian) CS type dom representation.
Axis
array instance initialized with values from the given XML-OM fragment or null
if the given root element is null
XMLParsingException
- if the dom tree is not consistent or a required element is missing.
IOException
- if a retrieval of an xlink of one of the subelements failed.protected IAxis parseAxis(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException
rootElement
- containing an gml:CoordinateSystemAxis type dom representation.
Axis
instance initialized with values from the given XML-OM fragment or null
if
the given root element is null
if the axis could not be mapped it's orientation will be
Axis.AO_OTHER
XMLParsingException
- if the dom tree is not consistent or a required element is missing.protected IEllipsoid parseEllipsoid(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException
rootElement
- containing a gml:Ellipsoid dom representation.
Ellipsoid
instance initialized with values from the given XML-OM fragment or null
if the given root element is null
XMLParsingException
- if the dom tree is not consistent or a required element is missing.protected IPrimeMeridian parsePrimeMeridian(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException
rootElement
- to create the pm from.
PrimeMeridian.GREENWICH
or the appropriate pm if a longitude is defined.
XMLParsingException
protected IVerticalCRS parseVerticalCRS(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
rootElement
- containing a gml:VerticalCRS dom representation.
VerticalCRS
instance initialized with values from the given XML-OM fragment or
null
if the given root element is null
IOException
XMLParsingException
- if the dom tree is not consistent or a required element is missing.protected IVerticalDatum parseVerticalDatum(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException
rootElement
- containing a gml:VerticalDatum dom representation.
VerticalDatum
instance initialized with values from the given XML-OM fragment or
null
if the given root element is null
XMLParsingException
- if the dom tree is not consistent or a required element is missing.protected IProjection parseProjection(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
rootElement
- a gml:GeneralConversion element
XMLParsingException
- if the dom tree is not consistent or a required element is missing.
IOException
protected List<Pair<CRSIdentifiable,Object>> parseParameterValues(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
rootElement
- which should contain a list of parameter Value properties.
null
or no
parameterValues were found.
XMLParsingException
- if the dom tree is not consistent or a required element is missing.
IOException
protected Pair<CRSIdentifiable,Object> parseParameterValue(org.apache.axiom.om.OMElement rootElement) throws XMLParsingException, IOException
rootElement
- containing a parameter Value property.
null
XMLParsingException
- if the dom tree is not consistent or a required element is missing.
IOException
protected IUnit parseUnitOfMeasure(org.apache.axiom.om.OMElement elementContainingUOMAttribute) throws XMLParsingException
elementContainingUOMAttribute
- an element containing the 'uom' attribute which will be mapped onto a known unit.
Unit
or null
if the given uomAttribute is empty or null
, or
no appropriate mapping could be found.
XMLParsingException
protected org.apache.axiom.om.OMElement getRequiredXlinkedElement(org.apache.axiom.om.OMElement propertyElement, String alternativeXPath) throws XMLParsingException, IOException
propertyElement
- to resolve an xlink from.alternativeXPath
- denoting a path to the required node starting from the given propertyElement.
XMLParsingException
- if the given propertyElement is null
or the resulting xml dom-tree could not be parsed
or the alternative xpath does not result in an Element.
IOException
- if the xlink could not be properly resolvedprotected org.apache.axiom.om.OMElement retrieveAndResolveXLink(org.apache.axiom.om.OMElement rootElement) throws IOException
rootElement
- to retrieve and resolve
null
if the xlink could not be
resolved (or was not given) or the rootElement is null.
IOException
protected String retrieveXLink(org.apache.axiom.om.OMElement rootElement)
rootElement
- to get the attribute from.
public Transformation getDirectTransformation(ICRS sourceCRS, ICRS targetCRS) throws CRSConfigurationException
CRSStore
null should be returned.
- Parameters:
sourceCRS
- start of the transformation (chain)targetCRS
- end point of the transformation (chain).
- Returns:
- the
Transformation
Object or null
if no such Object was found.
- Throws:
CRSConfigurationException
- if the implementation was confronted by an exception and could not deliver the requested Object. This
exception should not be thrown no Transformation was found, in this case null
should be
returned.
public CRSResource getCRSResource(CRSCodeType id) throws CRSConfigurationException
CRSStore
CRSStore.getCRSByCode(CRSCodeType)
, because it represents a possibility to
return an arbitrary CRSResource
Object from the providers backend.
id
- string representation of the resource to retrieve
CRSResource
Object or null
if no such Object was found.
CRSConfigurationException
- if the implementation was confronted by an exception and could not deliver the requested Object. This
exception should not be thrown if the given id wasn't found, in this case null
should be
returned.public void init()
CRSStore
CRSStore
instance is being registered.
public void setResolver(GMLResource newResolver)
newResolver
- protected GMLResource getResolver()
public ICRS getCoordinateSystem(String id)
getCoordinateSystem
in class AbstractCRSStore
public Transformation getDirectTransformation(String uri) throws CRSConfigurationException
CRSStore
null should be returned.
- Parameters:
uri
- the id of the transformation
- Returns:
- the
Transformation
Object or null
if no such Object was found.
- Throws:
CRSConfigurationException
- if the implementation was confronted by an exception and could not deliver the requested Object. This
exception should not be thrown no Transformation was found, in this case null
should be
returned.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |