/* * Geotoolkit - An Open Source Java GIS Toolkit * http://www.geotoolkit.org * * (C) 2008 - 2009, Geomatys * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotoolkit.gml.xml.v311; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.xml.bind.JAXBElement; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.bind.annotation.XmlType; /** * A mathematical operation on coordinates that transforms or converts coordinates to another coordinate reference system. Many but not all coordinate operations (from CRS A to CRS B) also uniquely define the inverse operation (from CRS B to CRS A). In some cases, the operation method algorithm for the inverse operation is the same as for the forward algorithm, but the signs of some operation parameter values must be reversed. In other cases, different algorithms are required for the forward and inverse operations, but the same operation parameter values are used. If (some) entirely different parameter values are needed, a different coordinate operation shall be defined. * * <p>Java class for AbstractCoordinateOperationType complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="AbstractCoordinateOperationType"> * <complexContent> * <extension base="{http://www.opengis.net/gml}AbstractCoordinateOperationBaseType"> * <sequence> * <element ref="{http://www.opengis.net/gml}coordinateOperationID" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{http://www.opengis.net/gml}remarks" minOccurs="0"/> * <element ref="{http://www.opengis.net/gml}operationVersion" minOccurs="0"/> * <element ref="{http://www.opengis.net/gml}validArea" minOccurs="0"/> * <element ref="{http://www.opengis.net/gml}scope" minOccurs="0"/> * <element ref="{http://www.opengis.net/gml}_positionalAccuracy" maxOccurs="unbounded" minOccurs="0"/> * <element ref="{http://www.opengis.net/gml}sourceCRS" minOccurs="0"/> * <element ref="{http://www.opengis.net/gml}targetCRS" minOccurs="0"/> * </sequence> * </extension> * </complexContent> * </complexType> * </pre> * * * @module */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "AbstractCoordinateOperationType", propOrder = { "coordinateOperationID", "operationVersion", "validArea", "scope", "positionalAccuracy", "sourceCRS", "targetCRS" }) /*@XmlSeeAlso({ PassThroughOperationType.class, AbstractGeneralTransformationType.class, AbstractGeneralConversionType.class, ConcatenatedOperationType.class })*/ public abstract class AbstractCoordinateOperationType extends AbstractCoordinateOperationBaseType { private List<IdentifierType> coordinateOperationID; private String operationVersion; private ExtentType validArea; private String scope; @XmlElementRef(name = "AbstractpositionalAccuracy", namespace = "http://www.opengis.net/gml", type = JAXBElement.class) private List<JAXBElement<? extends AbstractPositionalAccuracyType>> positionalAccuracy; private CRSRefType sourceCRS; private CRSRefType targetCRS; /** * Set of alternative identifications of this coordinate operation. The first coordinateOperationID, if any, is normally the primary identification code, and any others are aliases. Gets the value of the coordinateOperationID property. * (unmodifiable) */ public List<IdentifierType> getCoordinateOperationID() { if (coordinateOperationID == null) { coordinateOperationID = new ArrayList<IdentifierType>(); } return Collections.unmodifiableList(coordinateOperationID); } /** * Gets the value of the operationVersion property. */ public String getOperationVersion() { return operationVersion; } /** * Gets the value of the validArea property. */ public ExtentType getValidArea() { return validArea; } /** * Gets the value of the scope property. */ public String getScope() { return scope; } /** * Unordered set of estimates of the impact of this coordinate operation on point position accuracy. * Gives position error estimates for target coordinates of this coordinate operation, * assuming no errors in source coordinates. Gets the value of the positionalAccuracy property. * (unmodifiable) */ public List<JAXBElement<? extends AbstractPositionalAccuracyType>> getPositionalAccuracy() { if (positionalAccuracy == null) { positionalAccuracy = new ArrayList<JAXBElement<? extends AbstractPositionalAccuracyType>>(); } return Collections.unmodifiableList(positionalAccuracy); } /** * Gets the value of the sourceCRS property. */ public CRSRefType getSourceCRS() { return sourceCRS; } /** * Gets the value of the targetCRS property. */ public CRSRefType getTargetCRS() { return targetCRS; } }