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 2023/12/16 17:01:47 UTC
(sis) 02/05: Documentation update about how to define custum operation method.
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git
commit 62a5f70d5aa8aca567490523cabb666e88e0969a
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Fri Dec 15 10:57:01 2023 +0100
Documentation update about how to define custum operation method.
---
.../operation/transform/MathTransformProvider.java | 35 +++++++++++++---------
1 file changed, 21 insertions(+), 14 deletions(-)
diff --git a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/MathTransformProvider.java b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/MathTransformProvider.java
index 42aabda339..ba96f22c94 100644
--- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/MathTransformProvider.java
+++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/transform/MathTransformProvider.java
@@ -50,23 +50,30 @@ import org.opengis.referencing.operation.MathTransformFactory;
* Example:
*
* {@snippet lang="java" :
- * public class MyProjectionProvider extends DefaultOperationMethod implements MathTransformProvider {
- * public MyProjectionProvider() {
- * super(Map.of(NAME_KEY, "My projection"),
- * 2, // Number of source dimensions
- * 2, // Number of target dimensions
- * parameters);
- * }
+ * public class MyOperationProvider extends DefaultOperationMethod implements MathTransformProvider {
+ * private static final ParameterDescriptor<Foo> FOO;
+ * private static final ParameterDescriptor<Bar> BAR;
+ * private static final ParameterDescriptorGroup PARAMETERS;
+ * static {
+ * final var builder = new ParameterBuilder();
+ * FOO = builder.addName("Foo").create(Foo.class, null);
+ * BAR = builder.addName("Bar").create(Bar.class, null);
+ * PARAMETERS = builder.addName("My operation").createGroup(FOO, BAR);
+ * }
+ *
+ * public MyOperationProvider() {
+ * super(Map.of(NAME_KEY, PARAMETERS.getName()), PARAMETERS);
+ * }
*
- * @Override
- * public MathTransform createMathTransform(MathTransformFactory factory, ParameterValueGroup parameters) {
- * double semiMajor = values.parameter("semi_major").doubleValue(Units.METRE);
- * double semiMinor = values.parameter("semi_minor").doubleValue(Units.METRE);
- * // etc...
- * return new MyProjection(semiMajor, semiMinor, ...);
- * }
+ * @Override
+ * public MathTransform createMathTransform(MathTransformFactory factory, ParameterValueGroup parameters) {
+ * var pg = Parameters.castOrWrap(values);
+ * Foo foo = pg.getMandatoryValue(FOO);
+ * Bar bar = pg.getMandatoryValue(BAR);
+ * return new MyOperation(foo, bar);
* }
* }
+ * }
*
* Then the class name of that implementation shall be declared in {@code module-info.java}
* as a provider of the {@code org.opengis.referencing.operation.OperationMethod} service.