You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2015/12/19 01:22:33 UTC
svn commit: r1720864 [1/3] - in /sis/branches/JDK8/core:
sis-metadata/src/main/java/org/apache/sis/internal/metadata/
sis-metadata/src/main/java/org/apache/sis/io/wkt/
sis-metadata/src/main/java/org/apache/sis/metadata/
sis-metadata/src/main/java/org/a...
Author: desruisseaux
Date: Sat Dec 19 00:22:32 2015
New Revision: 1720864
URL: http://svn.apache.org/viewvc?rev=1720864&view=rev
Log:
Initial port of EPSGFactory.createCoordinateOperation(String) method.
Added:
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/TransformationAccuracy.java (with props)
Modified:
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java
sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticAuthorityFactory.java
sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGFactory.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/measure/Units.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
sis/branches/JDK8/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/util/CharSequencesTest.java
Added: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/TransformationAccuracy.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/TransformationAccuracy.java?rev=1720864&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/TransformationAccuracy.java (added)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/TransformationAccuracy.java [UTF-8] Sat Dec 19 00:22:32 2015
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sis.internal.metadata;
+
+import java.util.Collections;
+import javax.measure.unit.SI;
+import org.opengis.util.RecordType;
+import org.opengis.util.InternationalString;
+import org.opengis.metadata.quality.PositionalAccuracy;
+import org.opengis.metadata.quality.EvaluationMethodType;
+import org.apache.sis.internal.util.Constants;
+import org.apache.sis.metadata.iso.quality.DefaultQuantitativeResult;
+import org.apache.sis.metadata.iso.quality.DefaultAbsoluteExternalPositionalAccuracy;
+import org.apache.sis.util.iso.DefaultRecordSchema;
+import org.apache.sis.util.resources.Vocabulary;
+import org.apache.sis.util.Static;
+import org.apache.sis.util.iso.DefaultRecord;
+
+
+/**
+ * Creates a record reporting coordinate transformation accuracy.
+ *
+ * @author Martin Desruisseaux (Geomatys)
+ * @since 0.7
+ * @version 0.7
+ * @module
+ */
+public final class TransformationAccuracy extends Static {
+ /**
+ * The name for the transformation accuracy metadata.
+ */
+ private static final InternationalString TRANSFORMATION_ACCURACY =
+ Vocabulary.formatInternational(Vocabulary.Keys.TransformationAccuracy);
+
+ /**
+ * The type of record instances which will hold coordinate transformation accuracy values.
+ */
+ private static final RecordType TYPE;
+ static {
+ final DefaultRecordSchema schema = new DefaultRecordSchema(null, null, Constants.SIS);
+ TYPE = schema.createRecordType("Real", Collections.<CharSequence,Class<?>>singletonMap(
+ Vocabulary.formatInternational(Vocabulary.Keys.Value), Double.class));
+ }
+
+ /**
+ * Do not allow instantiation of this class.
+ */
+ private TransformationAccuracy() {
+ }
+
+ /**
+ * Creates a positional accuracy for the given value, in metres.
+ *
+ * @param accuracy The accuracy in metres.
+ * @return A positional accuracy with the given value.
+ */
+ public static PositionalAccuracy create(final Double accuracy) {
+ final DefaultRecord record = new DefaultRecord(TYPE);
+ record.setAll(accuracy);
+
+ final DefaultQuantitativeResult result = new DefaultQuantitativeResult();
+ result.setValues(Collections.singletonList(record));
+ result.setValueUnit(SI.METRE); // In metres by definition in the EPSG database.
+ result.setValueType(TYPE);
+
+ final DefaultAbsoluteExternalPositionalAccuracy element =
+ new DefaultAbsoluteExternalPositionalAccuracy(result);
+ element.setNamesOfMeasure(Collections.singleton(TRANSFORMATION_ACCURACY));
+ element.setEvaluationMethodType(EvaluationMethodType.DIRECT_EXTERNAL);
+ element.freeze();
+ return element;
+ }
+}
Propchange: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/TransformationAccuracy.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/TransformationAccuracy.java
------------------------------------------------------------------------------
svn:mime-type = text/plain;charset=UTF-8
Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java?rev=1720864&r1=1720863&r2=1720864&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java [UTF-8] Sat Dec 19 00:22:32 2015
@@ -67,6 +67,7 @@ import org.apache.sis.internal.metadata.
import org.apache.sis.internal.metadata.WKTKeywords;
import org.apache.sis.internal.metadata.VerticalDatumTypes;
import org.apache.sis.internal.metadata.ReferencingServices;
+import org.apache.sis.internal.metadata.TransformationAccuracy;
import org.apache.sis.internal.util.LocalizedParseException;
import org.apache.sis.internal.system.DefaultFactories;
import org.apache.sis.util.CharSequences;
@@ -86,7 +87,7 @@ import static java.util.Collections.sing
* @author Rémi Eve (IRD)
* @author Martin Desruisseaux (IRD, Geomatys)
* @since 0.6
- * @version 0.6
+ * @version 0.7
* @module
*/
final class GeodeticObjectParser extends MathTransformParser implements Comparator<CoordinateSystemAxis> {
@@ -2103,7 +2104,8 @@ final class GeodeticObjectParser extends
parseParameters(element, parameters, null, null);
properties.put(ReferencingServices.PARAMETERS_KEY, parameters);
if (accuracy != null) {
- accuracy.pullDouble("accuracy"); // TODO: share the code from EPSG factory.
+ properties.put(CoordinateOperation.COORDINATE_OPERATION_ACCURACY_KEY,
+ TransformationAccuracy.create(accuracy.pullDouble("accuracy")));
accuracy.close(ignoredElements);
}
try {
Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java?rev=1720864&r1=1720863&r2=1720864&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeTableView.java [UTF-8] Sat Dec 19 00:22:32 2015
@@ -108,8 +108,9 @@ final class TreeTableView implements Tre
* Returns the columns included in this tree table.
*/
@Override
+ @SuppressWarnings("ReturnOfCollectionOrArrayField")
public List<TableColumn<?>> getColumns() {
- return COLUMNS;
+ return COLUMNS; // Unmodifiable
}
/**
Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java?rev=1720864&r1=1720863&r2=1720864&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java [UTF-8] Sat Dec 19 00:22:32 2015
@@ -143,23 +143,43 @@ public class DefaultQuantitativeResult e
*
* @param newValues The new values.
*/
- public void setValues(final List<Record> newValues) {
+ public void setValues(final List<? extends Record> newValues) {
values = writeList(newValues, values, Record.class);
}
/**
* Return the value type for reporting a data quality result.
*
+ * <div class="section">Default value</div>
+ * If no type has been set but all {@linkplain #getValues() values} are of the same type,
+ * then this method defaults to that type. Otherwise this method returns {@code null}.
+ *
* @return Value type for reporting a data quality result, or {@code null}.
*/
@Override
@XmlElement(name = "valueType")
public RecordType getValueType() {
- return valueType;
+ RecordType type = valueType;
+ if (type == null && values != null) {
+ for (final Record value : values) {
+ if (value != null) {
+ final RecordType t = value.getRecordType();
+ if (t == null) {
+ return null;
+ } else if (type == null) {
+ type = t;
+ } else if (type != t) {
+ return null;
+ }
+ }
+ }
+ }
+ return type;
}
/**
* Sets the value type for reporting a data quality result.
+ * A {@code null} value restores the default value documented in {@link #getValueType()}.
*
* @param newValue The new value type.
*/
Modified: sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticAuthorityFactory.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticAuthorityFactory.java?rev=1720864&r1=1720863&r2=1720864&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticAuthorityFactory.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticAuthorityFactory.java [UTF-8] Sat Dec 19 00:22:32 2015
@@ -162,7 +162,7 @@ public abstract class GeodeticAuthorityF
* {@linkplain org.apache.sis.referencing.crs.DefaultGeographicCRS geographic coordinate reference system}).
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* Two frequently used authorities are "CRS" and "EPSG", which include the following codes:
*
@@ -202,7 +202,7 @@ public abstract class GeodeticAuthorityF
* for a large portion of the earth's surface.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* Two frequently used authorities are "CRS" and "EPSG", which include the following codes:
*
@@ -246,7 +246,7 @@ public abstract class GeodeticAuthorityF
* the need to model the earth's curvature.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -280,7 +280,7 @@ public abstract class GeodeticAuthorityF
* that are a close match to actual field values.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which contains more than 4000 codes for projected CRS.
* Some of them are:
@@ -313,7 +313,7 @@ public abstract class GeodeticAuthorityF
* but the relationship with gravity may not be straightforward.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -362,7 +362,7 @@ public abstract class GeodeticAuthorityF
* Creates a CRS describing the position of points through two or more independent coordinate reference systems.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -410,7 +410,7 @@ public abstract class GeodeticAuthorityF
* Creates a 1-, 2- or 3-dimensional contextually local coordinate reference system.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -460,7 +460,7 @@ public abstract class GeodeticAuthorityF
* If the datum is known at compile time, it is recommended to invoke the most precise method instead of this one.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which contains hundred of datum. Some of them are:
*
@@ -494,7 +494,7 @@ public abstract class GeodeticAuthorityF
* centered in the ellipsoid (or sphere).
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which contains hundred of datum. Some of them are:
*
@@ -528,7 +528,7 @@ public abstract class GeodeticAuthorityF
* it is combined to create a vertical CRS.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -581,7 +581,7 @@ public abstract class GeodeticAuthorityF
* This origin can be fixed with respect to the earth or be a defined point on a moving vehicle.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -631,7 +631,7 @@ public abstract class GeodeticAuthorityF
* In mathematical terms, it is a surface formed by the rotation of an ellipse about its minor axis.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -662,7 +662,7 @@ public abstract class GeodeticAuthorityF
* Creates a prime meridian defining the origin from which longitude values are determined.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -695,7 +695,7 @@ public abstract class GeodeticAuthorityF
* Creates information about spatial, vertical, and temporal extent (usually a domain of validity) from a code.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -727,7 +727,7 @@ public abstract class GeodeticAuthorityF
* method instead of this one.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -760,7 +760,7 @@ public abstract class GeodeticAuthorityF
* sometime with ellipsoidal height.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -791,7 +791,7 @@ public abstract class GeodeticAuthorityF
* Creates a 1-dimensional coordinate system for heights or depths of points.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -840,7 +840,7 @@ public abstract class GeodeticAuthorityF
* All axes shall have the same linear unit of measure.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -872,7 +872,7 @@ public abstract class GeodeticAuthorityF
* Not to be confused with an ellipsoidal coordinate system based on an ellipsoid "degenerated" into a sphere.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -938,7 +938,7 @@ public abstract class GeodeticAuthorityF
* Creates a coordinate system axis with name, direction, unit and range of values.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -971,7 +971,7 @@ public abstract class GeodeticAuthorityF
* Creates an unit of measurement from a code.
*
* <div class="note"><b>Example:</b>
- * the {@linkplain #getAuthorityCodes(java.lang.Class) set of available codes} depends on the defining
+ * the {@linkplain #getAuthorityCodes(Class) set of available codes} depends on the defining
* {@linkplain #getAuthority() authority} and the {@code GeodeticAuthorityFactory} subclass in use.
* A frequently used authority is "EPSG", which includes the following codes:
*
@@ -979,8 +979,12 @@ public abstract class GeodeticAuthorityF
* <tr><th>Code</th> <th>Description</th></tr>
* <tr><td>EPSG::9002</td> <td>decimal degree</td></tr>
* <tr><td>EPSG::9001</td> <td>metre</td></tr>
+ * <tr><td>EPSG::9030</td> <td>kilometre</td></tr>
* <tr><td>EPSG::1040</td> <td>second</td></tr>
- * </table></div>
+ * <tr><td>EPSG::1029</td> <td>year</td></tr>
+ * </table>
+ *
+ * See {@link org.apache.sis.measure.Units#valueOfEPSG(int)} for a more complete list of codes.</div>
*
* <div class="section">Default implementation</div>
* The default implementation delegates to {@link #createObject(String)} and casts the result.
@@ -1018,10 +1022,15 @@ public abstract class GeodeticAuthorityF
}
/**
- * Creates description of the algorithm and parameters used to perform a coordinate operation.
+ * Creates description of the algorithm and parameters used to perform a coordinate operation.
* An {@code OperationMethod} is a kind of metadata: it does not perform any coordinate operation
* (e.g. map projection) by itself, but tells us what is needed in order to perform such operation.
*
+ * <p>Available methods depend both on the {@linkplain #getAuthorityCodes(Class) set declared by the authority} and on the
+ * <a href="http://sis.apache.org/book/tables/CoordinateOperationMethods.html">list of methods implemented in Apache SIS</a>.
+ * In order to be supported, an operation method must have its formulas coded in the Java programming language.
+ * See {@link org.apache.sis.referencing.operation.transform.MathTransformProvider} for more information.</p>
+ *
* <div class="section">Default implementation</div>
* The default implementation delegates to {@link #createObject(String)} and casts the result.
* If the result can not be casted, then a {@link NoSuchAuthorityCodeException} is thrown.
@@ -1032,6 +1041,7 @@ public abstract class GeodeticAuthorityF
* @throws FactoryException if the object creation failed for some other reason.
*
* @see org.apache.sis.referencing.operation.DefaultOperationMethod
+ * @see <a href="http://sis.apache.org/book/tables/CoordinateOperationMethods.html">List of supported methods</a>
*/
public OperationMethod createOperationMethod(final String code) throws NoSuchAuthorityCodeException, FactoryException {
return cast(OperationMethod.class, createObject(code), code);