Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -18,7 +18,13 @@ package org.apache.sis.referencing.opera import java.util.Map; import java.util.HashMap; +import java.util.List; import java.util.Collections; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSchemaType; +import org.opengis.util.InternationalString; import org.opengis.metadata.citation.Citation; import org.opengis.referencing.IdentifiedObject; import org.opengis.referencing.operation.Formula; @@ -26,14 +32,21 @@ import org.opengis.referencing.operation import org.opengis.referencing.operation.MathTransform; import org.opengis.referencing.operation.OperationMethod; import org.opengis.referencing.operation.SingleOperation; +import org.opengis.parameter.GeneralParameterDescriptor; import org.opengis.parameter.ParameterDescriptorGroup; +import org.opengis.parameter.ParameterDescriptor; import org.apache.sis.util.Utilities; import org.apache.sis.util.Workaround; import org.apache.sis.util.ComparisonMode; import org.apache.sis.util.resources.Errors; +import org.apache.sis.util.iso.SimpleInternationalString; import org.apache.sis.internal.util.Citations; import org.apache.sis.internal.metadata.WKTKeywords; +import org.apache.sis.internal.jaxb.gco.StringAdapter; +import org.apache.sis.internal.jaxb.referencing.CC_OperationMethod; import org.apache.sis.internal.referencing.NilReferencingObject; +import org.apache.sis.internal.referencing.ReferencingUtilities; +import org.apache.sis.parameter.DefaultParameterDescriptorGroup; import org.apache.sis.parameter.Parameterized; import org.apache.sis.referencing.NamedIdentifier; import org.apache.sis.referencing.IdentifiedObjects; @@ -108,6 +121,14 @@ import org.apache.sis.internal.jdk7.Obje * @see DefaultTransformation * @see org.apache.sis.referencing.operation.transform.MathTransformProvider */ +@XmlType(name="OperationMethodType", propOrder = { + "formulaCitation", + "formulaDescription", + "sourceDimensions", + "targetDimensions", + "descriptors" +}) +@XmlRootElement(name = "OperationMethod") public class DefaultOperationMethod extends AbstractIdentifiedObject implements OperationMethod { /* * NOTE FOR JAVADOC WRITER: @@ -124,14 +145,19 @@ public class DefaultOperationMethod exte * Formula(s) or procedure used by this operation method. This may be a reference to a publication. * Note that the operation method may not be analytic, in which case this attribute references or * contains the procedure, not an analytic formula. + * + * <p><b>Consider this field as final!</b> + * This field is modified only at unmarshalling time by {@link #setFormula(Object)}</p> */ - private final Formula formula; + private Formula formula; /** * Number of dimensions in the source CRS of this operation method. * May be {@code null} if this method can work with any number of * source dimensions (e.g. <cite>Affine Transform</cite>). */ + @XmlElement + @XmlSchemaType(name = "positiveInteger") private final Integer sourceDimensions; /** @@ -139,12 +165,17 @@ public class DefaultOperationMethod exte * May be {@code null} if this method can work with any number of * target dimensions (e.g. <cite>Affine Transform</cite>). */ + @XmlElement + @XmlSchemaType(name = "positiveInteger") private final Integer targetDimensions; /** * The set of parameters, or {@code null} if none. + * + * <p><b>Consider this field as final!</b> + * This field is modified only at unmarshalling time by {@link #setDescriptors(GeneralParameterDescriptor[])}</p> */ - private final ParameterDescriptorGroup parameters; + private ParameterDescriptorGroup parameters; /** * Constructs an operation method from a set of properties and a descriptor group. The properties map is given @@ -549,7 +580,8 @@ public class DefaultOperationMethod exte * * <div class="note"><b>Departure from the ISO 19111 standard:</b> * this property is mandatory according ISO 19111, but may be null in Apache SIS if the - * {@link #DefaultOperationMethod(MathTransform)} constructor has been unable to infer it.</div> + * {@link #DefaultOperationMethod(MathTransform)} constructor has been unable to infer it + * or if this {@code OperationMethod} has been read from an incomplete GML document.</div> * * @return The parameters, or {@code null} if unknown. * @@ -673,4 +705,149 @@ public class DefaultOperationMethod exte } return WKTKeywords.Method; } + + + + + ////////////////////////////////////////////////////////////////////////////////////////////////// + //////// //////// + //////// XML support with JAXB //////// + //////// //////// + //////// The following methods are invoked by JAXB using reflection (even if //////// + //////// they are private) or are helpers for other methods invoked by JAXB. //////// + //////// Those methods can be safely removed if Geographic Markup Language //////// + //////// (GML) support is not needed. //////// + //////// //////// + ////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Creates a new object in which every attributes are set to a null value. + * <strong>This is not a valid object.</strong> This constructor is strictly + * reserved to JAXB, which will assign values to the fields using reflexion. + */ + private DefaultOperationMethod() { + super(org.apache.sis.internal.referencing.NilReferencingObject.INSTANCE); + sourceDimensions = null; + targetDimensions = null; + } + + /** + * Invoked by JAXB for marshalling a citation to the formula. In principle at most one of + * {@code getFormulaCitation()} and {@link #getFormulaDescription()} methods can return a + * non-null value. However SIS accepts both coexist (but this is invalid GML). + */ + @XmlElement(name = "formulaCitation") + private Citation getFormulaCitation() { + final Formula formula = getFormula(); // Give to users a chance to override. + return (formula != null) ? formula.getCitation() : null; + } + + /** + * Invoked by JAXB for marshalling the formula literally. In principle at most one of + * {@code getFormulaDescription()} and {@link #getFormulaCitation()} methods can return + * a non-null value. However SIS accepts both to coexist (but this is invalid GML). + */ + @XmlElement(name = "formula") + private String getFormulaDescription() { + final Formula formula = getFormula(); // Give to users a chance to override. + return (formula != null) ? StringAdapter.toString(formula.getFormula()) : null; + } + + /** + * Invoked by JAXB for setting the citation to the formula. + */ + private void setFormulaCitation(final Citation citation) { + if (formula == null || formula.getCitation() == null) { + formula = (formula == null) ? new DefaultFormula(citation) + : new DefaultFormula(formula.getFormula(), citation); + } else { + ReferencingUtilities.propertyAlreadySet(DefaultOperationMethod.class, "setFormulaCitation", "formulaCitation"); + } + } + + /** + * Invoked by JAXB for setting the formula description. + */ + private void setFormulaDescription(final String description) { + if (formula == null || formula.getFormula() == null) { + formula = (formula == null) ? new DefaultFormula(description) + : new DefaultFormula(new SimpleInternationalString(description), formula.getCitation()); + } else { + ReferencingUtilities.propertyAlreadySet(DefaultOperationMethod.class, "setFormulaDescription", "formula"); + } + } + + /** + * Invoked by JAXB for getting the parameters to marshal. This method usually marshals the sequence of + * descriptors without their {@link ParameterDescriptorGroup} wrapper, because GML is defined that way. + * The {@code ParameterDescriptorGroup} wrapper is a GeoAPI addition done for allowing usage of its + * methods as a convenience (e.g. {@link ParameterDescriptorGroup#descriptor(String)}). + * + * <p>However it could happen that the user really wanted to specify a {@code ParameterDescriptorGroup} as + * the sole {@code <gml:parameter>} element. We currently have no easy way to distinguish those cases.</p> + * + * <div class="note"><b>Tip:</b> + * One possible way to distinguish the two cases would be to check that the parameter group does not contain + * any property that this method does not have: + * + * {@preformat java + * if (IdentifiedObjects.getProperties(this).entrySet().containsAll( + * IdentifiedObjects.getProperties(parameters).entrySet())) ... + * } + * + * But we would need to make sure that {@link AbstractSingleOperation#getParameters()} is consistent + * with the decision taken by this method.</div> + * + * <p><b>Historical note:</b> older, deprecated, names for the parameters were: + * <ul> + * <li>{@code includesParameter}</li> + * <li>{@code generalOperationParameter} - note that this name was used by the EPSG registry</li> + * <li>{@code usesParameter}</li> + * </ul> + * + * @see #getParameters() + * @see AbstractSingleOperation#getParameters() + */ + @XmlElement(name = "parameter") + private GeneralParameterDescriptor[] getDescriptors() { + if (parameters != null) { + final List<GeneralParameterDescriptor> descriptors = parameters.descriptors(); + if (descriptors != null) { // Paranoiac check (should not be allowed). + return CC_OperationMethod.filterImplicit(descriptors.toArray( + new GeneralParameterDescriptor[descriptors.size()])); + } + } + return null; + } + + /** + * Invoked by JAXB for setting the unmarshalled parameters. + * This method wraps the given descriptors in a {@link DefaultParameterDescriptorGroup}. + * + * <p>The parameter descriptors created by this method are incomplete since we can not + * provide a non-null value for {@link ParameterDescriptor#getValueClass()}. The value + * class will be provided either by replacing this {@code OperationMethod} by one of the + * pre-defined methods, or by unmarshalling the enclosing {@link AbstractSingleOperation}.</p> + * + * <p><b>Maintenance note:</b> the {@code "setDescriptors"} method name is also hard-coded in + * {@link org.apache.sis.internal.jaxb.referencing.CC_GeneralOperationParameter} for logging purpose.</p> + * + * @see AbstractSingleOperation#setParameters + */ + private void setDescriptors(final GeneralParameterDescriptor[] descriptors) { + if (parameters == null) { + parameters = CC_OperationMethod.group(super.getName(), descriptors); + } else { + ReferencingUtilities.propertyAlreadySet(DefaultOperationMethod.class, "setDescriptors", "parameter"); + } + } + + /** + * Invoked by {@link AbstractSingleOperation} for completing the parameter descriptor. + */ + final void updateDescriptors(final GeneralParameterDescriptor[] descriptors) { + final ParameterDescriptorGroup previous = parameters; + parameters = new DefaultParameterDescriptorGroup(IdentifiedObjects.getProperties(previous), + previous.getMinimumOccurs(), previous.getMaximumOccurs(), descriptors); + } }
Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -40,6 +40,7 @@ import org.apache.sis.internal.jdk7.Obje * @version 0.6 * @module */ +// Missing JAXB annotation. See http://issues.apache.org/jira/browse/SIS-293 public class DefaultPassThroughOperation extends AbstractCoordinateOperation implements PassThroughOperation { /** * Serial number for inter-operability with different versions. Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultTransformation.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -17,6 +17,8 @@ package org.apache.sis.referencing.operation; import java.util.Map; +import javax.xml.bind.annotation.XmlType; +import javax.xml.bind.annotation.XmlRootElement; import org.opengis.referencing.operation.Transformation; import org.opengis.referencing.operation.OperationMethod; import org.opengis.referencing.operation.MathTransform; @@ -51,6 +53,8 @@ import org.apache.sis.util.ArgumentCheck * * @see DefaultConversion */ +@XmlType(name = "TransformationType") +@XmlRootElement(name = "Transformation") public class DefaultTransformation extends AbstractSingleOperation implements Transformation { /** * Serial number for inter-operability with different versions. @@ -159,4 +163,26 @@ public class DefaultTransformation exten public Class<? extends Transformation> getInterface() { return Transformation.class; } + + + + + ////////////////////////////////////////////////////////////////////////////////////////////////// + //////// //////// + //////// XML support with JAXB //////// + //////// //////// + //////// The following methods are invoked by JAXB using reflection (even if //////// + //////// they are private) or are helpers for other methods invoked by JAXB. //////// + //////// Those methods can be safely removed if Geographic Markup Language //////// + //////// (GML) support is not needed. //////// + //////// //////// + ////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Constructs a new object in which every attributes are set to a null value. + * <strong>This is not a valid object.</strong> This constructor is strictly + * reserved to JAXB, which will assign values to the fields using reflexion. + */ + private DefaultTransformation() { + } } Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/package-info.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/package-info.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/package-info.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/package-info.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -65,8 +65,12 @@ @XmlAccessorType(XmlAccessType.NONE) @XmlJavaTypeAdapters({ @XmlJavaTypeAdapter(EX_Extent.class), + @XmlJavaTypeAdapter(CI_Citation.class), @XmlJavaTypeAdapter(DQ_PositionalAccuracy.class), - @XmlJavaTypeAdapter(StringAdapter.class), + @XmlJavaTypeAdapter(CC_OperationMethod.class), + @XmlJavaTypeAdapter(CC_GeneralParameterValue.class), + @XmlJavaTypeAdapter(CC_GeneralOperationParameter.class), + @XmlJavaTypeAdapter(SC_CRS.class), @XmlJavaTypeAdapter(InternationalStringConverter.class) }) package org.apache.sis.referencing.operation; @@ -80,5 +84,7 @@ import javax.xml.bind.annotation.adapter import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters; import org.apache.sis.xml.Namespaces; import org.apache.sis.internal.jaxb.gco.*; +import org.apache.sis.internal.jaxb.referencing.*; import org.apache.sis.internal.jaxb.metadata.EX_Extent; +import org.apache.sis.internal.jaxb.metadata.CI_Citation; import org.apache.sis.internal.jaxb.metadata.DQ_PositionalAccuracy; Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -493,6 +493,9 @@ public class DefaultMathTransformFactory final ParameterValueGroup parameters, final CoordinateSystem derivedCS) throws NoSuchIdentifierException, FactoryException { + ArgumentChecks.ensureNonNull("baseCRS", baseCRS); + ArgumentChecks.ensureNonNull("parameters", parameters); + ArgumentChecks.ensureNonNull("derivedCS", derivedCS); /* * If the user's parameters do not contain semi-major and semi-minor axis lengths, infer * them from the ellipsoid. We have to do that because those parameters are often omitted, @@ -617,6 +620,9 @@ public class DefaultMathTransformFactory final MathTransform parameterized, final CoordinateSystem derivedCS) throws FactoryException { + ArgumentChecks.ensureNonNull("baseCS", baseCS); + ArgumentChecks.ensureNonNull("parameterized", parameterized); + ArgumentChecks.ensureNonNull("derivedCS", derivedCS); /* * Computes matrix for swapping axis and performing units conversion. * There is one matrix to apply before projection on (longitude,latitude) @@ -705,6 +711,7 @@ public class DefaultMathTransformFactory public MathTransform createParameterizedTransform(final ParameterValueGroup parameters) throws NoSuchIdentifierException, FactoryException { + ArgumentChecks.ensureNonNull("parameters", parameters); final String methodName = parameters.getDescriptor().getName().getCode(); OperationMethod method = null; try { @@ -762,22 +769,22 @@ public class DefaultMathTransformFactory * <p>The dimension of the output space of the first transform must match the dimension of the input space * in the second transform. In order to concatenate more than two transforms, use this constructor repeatedly.</p> * - * @param transform1 The first transform to apply to points. - * @param transform2 The second transform to apply to points. + * @param tr1 The first transform to apply to points. + * @param tr2 The second transform to apply to points. * @return The concatenated transform. * @throws FactoryException if the object creation failed. * * @see MathTransforms#concatenate(MathTransform, MathTransform) */ @Override - public MathTransform createConcatenatedTransform(final MathTransform transform1, - final MathTransform transform2) + public MathTransform createConcatenatedTransform(final MathTransform tr1, + final MathTransform tr2) throws FactoryException { lastMethod.remove(); final MathTransform tr; try { - tr = MathTransforms.concatenate(transform1, transform2); + tr = MathTransforms.concatenate(tr1, tr2); } catch (IllegalArgumentException exception) { throw new FactoryException(exception); } Modified: sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -506,7 +506,7 @@ public class PassThroughTransform extend final int numRow = numSubRow + (nSkipped + affine); final int numCol = numSubCol + (nSkipped + affine); final Number[] elements = new Number[numRow * numCol]; // Matrix elements as row major (column index varies faster). - Arrays.fill(elements, Integer.valueOf(0)); + Arrays.fill(elements, 0); /* ┌ ┐ * Set UL part to 1: │ 1 0 │ * │ 0 1 │ Copied: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameterTest.java (from r1701516, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameterTest.java) URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameterTest.java?p2=sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameterTest.java&p1=sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameterTest.java&r1=1701516&r2=1701518&rev=1701518&view=diff ============================================================================== --- sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameterTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_GeneralOperationParameterTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -109,10 +109,10 @@ public final strictfp class CC_GeneralOp private static DefaultParameterDescriptor<Integer> create(final String name, final String remarks, final boolean mandatory, final Integer defaultValue) { - final Map<String,String> properties = new HashMap<>(4); + final Map<String,String> properties = new HashMap<String,String>(4); assertNull(properties.put(DefaultParameterDescriptor.NAME_KEY, name)); assertNull(properties.put(DefaultParameterDescriptor.REMARKS_KEY, remarks)); - return new DefaultParameterDescriptor<>(properties, mandatory ? 1 : 0, 1, Integer.class, null, null, defaultValue); + return new DefaultParameterDescriptor<Integer>(properties, mandatory ? 1 : 0, 1, Integer.class, null, null, defaultValue); } /** @@ -183,7 +183,7 @@ public final strictfp class CC_GeneralOp @Test @DependsOnMethod("testParameterSubstitution") public void testGroupSubstitution() throws JAXBException { - final Map<String,String> properties = new HashMap<>(4); + final Map<String,String> properties = new HashMap<String,String>(4); assertNull(properties.put(DefaultParameterDescriptor.NAME_KEY, "Group")); final ParameterDescriptorGroup provided = new DefaultParameterDescriptorGroup(properties, 1, 2, unmarshal("Parameter A", null), @@ -210,7 +210,7 @@ public final strictfp class CC_GeneralOp @Test @DependsOnMethod({"testGroupSubstitution", "testParameterMerge"}) public void testGroupMergeBecauseDifferentProperties() throws JAXBException { - final Map<String,String> properties = new HashMap<>(4); + final Map<String,String> properties = new HashMap<String,String>(4); assertNull(properties.put(DefaultParameterDescriptor.NAME_KEY, "Group")); final ParameterDescriptorGroup provided = new DefaultParameterDescriptorGroup(properties, 1, 2, unmarshal("Parameter A", "Remarks A."), @@ -251,7 +251,7 @@ public final strictfp class CC_GeneralOp @Test @DependsOnMethod("testGroupMergeBecauseDifferentProperties") public void testGroupMergeBecauseMissingParameter() throws JAXBException { - final Map<String,String> properties = new HashMap<>(4); + final Map<String,String> properties = new HashMap<String,String>(4); assertNull(properties.put(DefaultParameterDescriptor.NAME_KEY, "Group")); final ParameterDescriptorGroup provided = new DefaultParameterDescriptorGroup(properties, 1, 2, unmarshal("Parameter A", null), @@ -293,7 +293,7 @@ public final strictfp class CC_GeneralOp @Test @DependsOnMethod("testGroupMergeBecauseDifferentProperties") public void testGroupMergeBecauseExtraParameter() throws JAXBException { - final Map<String,String> properties = new HashMap<>(4); + final Map<String,String> properties = new HashMap<String,String>(4); assertNull(properties.put(DefaultParameterDescriptor.NAME_KEY, "Group")); final ParameterDescriptorGroup provided = new DefaultParameterDescriptorGroup(properties, 1, 2, unmarshal("Parameter A", "Remarks A."), Copied: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_OperationParameterGroupTest.java (from r1701516, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_OperationParameterGroupTest.java) URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_OperationParameterGroupTest.java?p2=sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_OperationParameterGroupTest.java&p1=sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_OperationParameterGroupTest.java&r1=1701516&r2=1701518&rev=1701518&view=diff ============================================================================== --- sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_OperationParameterGroupTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CC_OperationParameterGroupTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -114,7 +114,8 @@ public final strictfp class CC_Operation final ParameterDescriptor<?>[] expected = create(REMARK); final List<GeneralParameterDescriptor> fromXML = unmarshal().descriptors(); final List<GeneralParameterDescriptor> fromValues = UnmodifiableArrayList.<GeneralParameterDescriptor>wrap(expected); - final Map<GeneralParameterDescriptor,GeneralParameterDescriptor> replacements = new IdentityHashMap<>(4); + final Map<GeneralParameterDescriptor,GeneralParameterDescriptor> replacements = + new IdentityHashMap<GeneralParameterDescriptor,GeneralParameterDescriptor>(4); final GeneralParameterDescriptor[] merged = CC_OperationParameterGroup.merge(fromXML, fromValues.toArray(new GeneralParameterDescriptor[fromValues.size()]), replacements); @@ -138,7 +139,8 @@ public final strictfp class CC_Operation public void testMerge() throws JAXBException { final ParameterDescriptorGroup fromXML = unmarshal(); final ParameterDescriptor<?>[] fromValues = create(null); - final Map<GeneralParameterDescriptor,GeneralParameterDescriptor> replacements = new IdentityHashMap<>(4); + final Map<GeneralParameterDescriptor,GeneralParameterDescriptor> replacements = + new IdentityHashMap<GeneralParameterDescriptor,GeneralParameterDescriptor>(4); final GeneralParameterDescriptor[] merged = CC_OperationParameterGroup.merge(fromXML.descriptors(), fromValues.clone(), replacements); assertNotSame(fromValues, merged); /* Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/ReferencingUtilitiesTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/ReferencingUtilitiesTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/ReferencingUtilitiesTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/ReferencingUtilitiesTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -38,7 +38,7 @@ import static org.apache.sis.internal.re * * @author Martin Desruisseaux (Geomatys) * @since 0.5 (derived from 0.4) - * @version 0.5 + * @version 0.6 * @module */ public final strictfp class ReferencingUtilitiesTest extends TestCase { @@ -84,6 +84,26 @@ public final strictfp class ReferencingU } /** + * Tests {@link ReferencingUtilities#toPropertyName(Class, Class)}. + * + * @since 0.6 + */ + @Test + public void testToPropertyName() { + assertEquals("coordinateSystem", toPropertyName(CoordinateSystem.class, CoordinateSystem.class).toString()); + assertEquals("affineCS", toPropertyName(CoordinateSystem.class, AffineCS .class).toString()); + assertEquals("cartesianCS", toPropertyName(CoordinateSystem.class, CartesianCS .class).toString()); + assertEquals("cylindricalCS", toPropertyName(CoordinateSystem.class, CylindricalCS .class).toString()); + assertEquals("ellipsoidalCS", toPropertyName(CoordinateSystem.class, EllipsoidalCS .class).toString()); + assertEquals("linearCS", toPropertyName(CoordinateSystem.class, LinearCS .class).toString()); +// assertEquals("parametricCS", toPropertyName(CoordinateSystem.class, ParametricCS .class).toString()); + assertEquals("polarCS", toPropertyName(CoordinateSystem.class, PolarCS .class).toString()); + assertEquals("sphericalCS", toPropertyName(CoordinateSystem.class, SphericalCS .class).toString()); + assertEquals("timeCS", toPropertyName(CoordinateSystem.class, TimeCS .class).toString()); + assertEquals("verticalCS", toPropertyName(CoordinateSystem.class, VerticalCS .class).toString()); + } + + /** * Tests {@link ReferencingUtilities#toWKTType(Class, Class)}. */ @Test Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/MapProjectionTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/MapProjectionTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/MapProjectionTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/MapProjectionTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -141,8 +141,7 @@ public final strictfp class MapProjectio * This test is mostly for {@link Equirectangular#LATITUDE_OF_ORIGIN}. */ private static void assertIsForcedToZero(final ParameterDescriptor<?> parameter) { - final Double zero = 0.0; - assertEquals("minimumValue", zero, parameter.getMinimumValue()); - assertEquals("maximumValue", zero, parameter.getMaximumValue()); + assertEquals("minimumValue", -0.0, parameter.getMinimumValue()); + assertEquals("maximumValue", +0.0, parameter.getMaximumValue()); } } Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/GeodeticObjectParserTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/GeodeticObjectParserTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/GeodeticObjectParserTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/GeodeticObjectParserTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -44,6 +44,7 @@ import org.apache.sis.test.TestCase; import org.junit.Test; import static org.apache.sis.test.ReferencingAssert.*; +import static org.apache.sis.test.TestUtilities.getSingleton; // Branch-specific imports import org.opengis.util.Factory; @@ -65,6 +66,8 @@ import org.opengis.util.Factory; org.apache.sis.referencing.crs.DefaultVerticalCRSTest.class, org.apache.sis.referencing.crs.DefaultTemporalCRSTest.class, org.apache.sis.referencing.crs.DefaultCompoundCRSTest.class, + org.apache.sis.referencing.crs.DefaultEngineeringCRSTest.class, + org.apache.sis.referencing.crs.DefaultImageCRSTest.class, org.apache.sis.referencing.cs.DirectionAlongMeridianTest.class }) public final strictfp class GeodeticObjectParserTest extends TestCase { @@ -105,8 +108,11 @@ public final strictfp class GeodeticObje } /** - * Asserts that the name and (optionally) the EPSG identifier of the given object - * are equal to the given strings. + * Asserts that the name and (optionally) the EPSG identifier of the given object are equal to the given strings. + * As a special case if the given EPSG code is 0, then this method verifies that the given object has no identifier. + * + * <p>This method is similar to {@link #assertEpsgNameAndIdentifierEqual(String, int, IdentifiedObject)} except + * that the given name is not necessarily in the EPSG namespace and the EPSG code is allowed to be absent.</p> * * @param name The expected name. * @param epsg The expected EPSG identifier, or {@code 0} if the object shall have no identifier. @@ -114,7 +120,11 @@ public final strictfp class GeodeticObje static void assertNameAndIdentifierEqual(final String name, final int epsg, final IdentifiedObject object) { final String message = object.getClass().getSimpleName(); assertEquals(message, name, object.getName().getCode()); - assertEpsgIdentifierEquals(epsg, object.getIdentifiers()); + if (epsg != 0) { + assertEquals(message, String.valueOf(epsg), getSingleton(object.getIdentifiers()).getCode()); + } else { + assertTrue(message, object.getIdentifiers().isEmpty()); + } } /** Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -84,7 +84,7 @@ public final strictfp class DefaultParam final int minimumValue, final int maximumValue, final int defaultValue) { return new DefaultParameterDescriptor<Integer>(properties(name), 1, 1, Integer.class, - NumberRange.create(minimumValue, true, maximumValue, true), null, Integer.valueOf(defaultValue)); + NumberRange.create(minimumValue, true, maximumValue, true), null, defaultValue); } /** @@ -102,7 +102,7 @@ public final strictfp class DefaultParam { return new DefaultParameterDescriptor<Double>(properties(name), 1, 1, Double.class, MeasurementRange.create(minimumValue, true, maximumValue, true, unit), null, - Double.isNaN(defaultValue) ? null : Double.valueOf(defaultValue)); + Double.isNaN(defaultValue) ? null : defaultValue); } /** @@ -173,6 +173,7 @@ public final strictfp class DefaultParam */ @Test @DependsOnMethod("testOptionalInteger") + @SuppressWarnings("UnnecessaryBoxing") public void testRangeValidation() { try { create("Test range", 20, 4, 12); @@ -209,6 +210,7 @@ public final strictfp class DefaultParam * Tests {@code DefaultParameterDescriptor} construction for {@link Double} type. */ @Test + @SuppressWarnings("UnnecessaryBoxing") public void testDoubleType() { final ParameterDescriptor<Double> descriptor = create("Length measure", 4, 20, 12, SI.METRE); assertEquals("name", "Length measure", descriptor.getName().getCode()); @@ -262,7 +264,8 @@ public final strictfp class DefaultParam * Invalid operation: element not in the list of valid elements. */ try { - create("Enumeration param", String.class, enumeration, "Pear"); + DefaultParameterDescriptor<String> p = create("Enumeration param", String.class, enumeration, "Pear"); + fail("Should not be allowed to create " + p); } catch (IllegalArgumentException e) { assertEquals("Parameter “Enumeration param” can not take the “Pear” value.", e.getMessage()); } @@ -273,6 +276,7 @@ public final strictfp class DefaultParam */ @Test @DependsOnMethod("testDoubleType") + @SuppressWarnings("UnnecessaryBoxing") public void testArrayType() { final DefaultParameterDescriptor<double[]> descriptor = createForArray("Array param", 4, 9, SI.METRE); assertEquals("name", "Array param", descriptor.getName().getCode()); @@ -294,8 +298,9 @@ public final strictfp class DefaultParam * Invalid operation: wrong type of range value. */ try { - new DefaultParameterDescriptor<double[]>(properties("Array param"), 0, 1, - double[].class, NumberRange.create(4, true, 9, true), null, null); + DefaultParameterDescriptor<double[]> p = new DefaultParameterDescriptor<double[]>(properties("Array param"), + 0, 1, double[].class, NumberRange.create(4, true, 9, true), null, null); + fail("Should not be allowed to create " + p); } catch (IllegalArgumentException e) { assertEquals("Argument ‘valueDomain’ can not be an instance of ‘Range<Integer>’.", e.getMessage()); } Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterFormatTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -44,7 +44,7 @@ import static org.apache.sis.metadata.is * * @author Martin Desruisseaux (Geomatys) * @since 0.4 - * @version 0.5 + * @version 0.6 * @module */ @DependsOn(ParameterBuilderTest.class) @@ -68,7 +68,7 @@ public final strictfp class ParameterFor } /** - * Creates the test parameter for the Mercator projection, to be shared by {@link ParameterMarshallingTest}. + * Creates the test parameters for the Mercator projection, to be shared by {@link ParameterMarshallingTest}. * * <div class="note"><b>Note:</b> * the default values are not part of EPSG definitions. They are added here only for testing purpose.</div> @@ -77,7 +77,9 @@ public final strictfp class ParameterFor ParameterBuilder builder = new ParameterBuilder(); builder.setCodeSpace(EPSG, "EPSG").setRequired(true); ParameterDescriptor<?>[] parameters = { - builder.addIdentifier("8801").addName("Latitude of natural origin") .addName(OGC, "latitude_of_origin").createBounded( -80, +84, 40, NonSI.DEGREE_ANGLE), + builder.addIdentifier("8801").addName("Latitude of natural origin").addName(OGC, "latitude_of_origin") + .setRemarks("This parameter is shown for completeness, but should never have a value different than 0 for this projection.") + .createBounded( -80, +84, 40, NonSI.DEGREE_ANGLE), builder.addIdentifier("8802").addName("Longitude of natural origin") .addName(OGC, "central_meridian") .createBounded(-180, +180, -60, NonSI.DEGREE_ANGLE), builder.addIdentifier("8805").addName("Scale factor at natural origin") .addName(OGC, "scale_factor") .createStrictlyPositive(1, Unit.ONE), builder.addIdentifier("8806").addName("False easting").setRequired(false).addName(OGC, "false_easting") .create( 5000, SI.METRE), @@ -127,12 +129,13 @@ public final strictfp class ParameterFor "┌────────────────────────────────┬────────┬────────────┬───────────────┬───────────────┐\n" + "│ Name (EPSG) │ Type │ Obligation │ Value domain │ Default value │\n" + "├────────────────────────────────┼────────┼────────────┼───────────────┼───────────────┤\n" + - "│ Latitude of natural origin │ Double │ Mandatory │ [-80 … 84]° │ 40.0° │\n" + + "│ Latitude of natural origin¹ │ Double │ Mandatory │ [-80 … 84]° │ 40.0° │\n" + "│ Longitude of natural origin │ Double │ Mandatory │ [-180 … 180]° │ -60.0° │\n" + "│ Scale factor at natural origin │ Double │ Mandatory │ (0 … ∞) │ 1.0 │\n" + "│ False easting │ Double │ Optional │ (-∞ … ∞) m │ 5000.0 m │\n" + "│ False northing │ Double │ Optional │ (-∞ … ∞) m │ 10000.0 m │\n" + - "└────────────────────────────────┴────────┴────────────┴───────────────┴───────────────┘\n", text); + "└────────────────────────────────┴────────┴────────────┴───────────────┴───────────────┘\n" + + "¹ This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text); } /** @@ -158,11 +161,12 @@ public final strictfp class ParameterFor "┌────────────────────────────────┬────────┬───────────────┬──────────┐\n" + "│ Name (EPSG) │ Type │ Value domain │ Value │\n" + "├────────────────────────────────┼────────┼───────────────┼──────────┤\n" + - "│ Latitude of natural origin │ Double │ [-80 … 84]° │ 20.0° │\n" + + "│ Latitude of natural origin¹ │ Double │ [-80 … 84]° │ 20.0° │\n" + "│ Longitude of natural origin │ Double │ [-180 … 180]° │ -60.0° │\n" + "│ Scale factor at natural origin │ Double │ (0 … ∞) │ 0.997 │\n" + "│ False northing │ Double │ (-∞ … ∞) m │ 20.0 km │\n" + - "└────────────────────────────────┴────────┴───────────────┴──────────┘\n", text); + "└────────────────────────────────┴────────┴───────────────┴──────────┘\n" + + "¹ This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text); } /** @@ -179,11 +183,12 @@ public final strictfp class ParameterFor "┌────────────────────────────────┬────────┬─────────────────────┬──────────┐\n" + "│ Nom (EPSG) │ Type │ Domaine des valeurs │ Valeur │\n" + "├────────────────────────────────┼────────┼─────────────────────┼──────────┤\n" + - "│ Latitude of natural origin │ Double │ [-80 … 84]° │ 20° │\n" + + "│ Latitude of natural origin¹ │ Double │ [-80 … 84]° │ 20° │\n" + "│ Longitude of natural origin │ Double │ [-180 … 180]° │ -60° │\n" + "│ Scale factor at natural origin │ Double │ (0 … ∞) │ 0,997 │\n" + "│ False northing │ Double │ (-∞ … ∞) m │ 20 km │\n" + - "└────────────────────────────────┴────────┴─────────────────────┴──────────┘\n", text); + "└────────────────────────────────┴────────┴─────────────────────┴──────────┘\n" + + "¹ This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text); } /** @@ -205,7 +210,7 @@ public final strictfp class ParameterFor "╔═════════════════════════════════════════════╤════════╤════════════╤═══════════════╤═══════════════╗\n" + "║ Name │ Type │ Obligation │ Value domain │ Default value ║\n" + "╟─────────────────────────────────────────────┼────────┼────────────┼───────────────┼───────────────╢\n" + - "║ EPSG: Latitude of natural origin (8801) │ Double │ Mandatory │ [-80 … 84]° │ 40.0° ║\n" + + "║ EPSG: Latitude of natural origin¹ (8801) │ Double │ Mandatory │ [-80 … 84]° │ 40.0° ║\n" + "║ OGC: latitude_of_origin │ │ │ │ ║\n" + "╟─────────────────────────────────────────────┼────────┼────────────┼───────────────┼───────────────╢\n" + "║ EPSG: Longitude of natural origin (8802) │ Double │ Mandatory │ [-180 … 180]° │ -60.0° ║\n" + @@ -219,7 +224,8 @@ public final strictfp class ParameterFor "╟─────────────────────────────────────────────┼────────┼────────────┼───────────────┼───────────────╢\n" + "║ EPSG: False northing (8807) │ Double │ Optional │ (-∞ … ∞) m │ 10000.0 m ║\n" + "║ OGC: false_northing │ │ │ │ ║\n" + - "╚═════════════════════════════════════════════╧════════╧════════════╧═══════════════╧═══════════════╝\n", text); + "╚═════════════════════════════════════════════╧════════╧════════════╧═══════════════╧═══════════════╝\n" + + "¹ This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text); } /** @@ -239,7 +245,7 @@ public final strictfp class ParameterFor "╔═════════════════════════════════════════════╤════════╤════════════╤═══════════════╤══════════╗\n" + "║ Name │ Type │ Obligation │ Value domain │ Value ║\n" + "╟─────────────────────────────────────────────┼────────┼────────────┼───────────────┼──────────╢\n" + - "║ EPSG: Latitude of natural origin (8801) │ Double │ Mandatory │ [-80 … 84]° │ 20.0° ║\n" + + "║ EPSG: Latitude of natural origin¹ (8801) │ Double │ Mandatory │ [-80 … 84]° │ 20.0° ║\n" + "║ OGC: latitude_of_origin │ │ │ │ ║\n" + "╟─────────────────────────────────────────────┼────────┼────────────┼───────────────┼──────────╢\n" + "║ EPSG: Longitude of natural origin (8802) │ Double │ Mandatory │ [-180 … 180]° │ -60.0° ║\n" + @@ -250,7 +256,8 @@ public final strictfp class ParameterFor "╟─────────────────────────────────────────────┼────────┼────────────┼───────────────┼──────────╢\n" + "║ EPSG: False northing (8807) │ Double │ Optional │ (-∞ … ∞) m │ 20.0 km ║\n" + "║ OGC: false_northing │ │ │ │ ║\n" + - "╚═════════════════════════════════════════════╧════════╧════════════╧═══════════════╧══════════╝\n", text); + "╚═════════════════════════════════════════════╧════════╧════════════╧═══════════════╧══════════╝\n" + + "¹ This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text); } /** @@ -315,14 +322,15 @@ public final strictfp class ParameterFor text = format.format(createParameterValues()); assertMultilinesEquals( "OGC: Mercator_1SP\n" + - "┌────────────────────┬────────┬───────────────┬──────────┐\n" + - "│ Name (OGC) │ Type │ Value domain │ Value │\n" + - "├────────────────────┼────────┼───────────────┼──────────┤\n" + - "│ latitude_of_origin │ Double │ [-80 … 84]° │ 20.0° │\n" + - "│ central_meridian │ Double │ [-180 … 180]° │ -60.0° │\n" + - "│ scale_factor │ Double │ (0 … ∞) │ 0.997 │\n" + - "│ false_northing │ Double │ (-∞ … ∞) m │ 20.0 km │\n" + - "└────────────────────┴────────┴───────────────┴──────────┘\n", text); + "┌─────────────────────┬────────┬───────────────┬──────────┐\n" + + "│ Name (OGC) │ Type │ Value domain │ Value │\n" + + "├─────────────────────┼────────┼───────────────┼──────────┤\n" + + "│ latitude_of_origin¹ │ Double │ [-80 … 84]° │ 20.0° │\n" + + "│ central_meridian │ Double │ [-180 … 180]° │ -60.0° │\n" + + "│ scale_factor │ Double │ (0 … ∞) │ 0.997 │\n" + + "│ false_northing │ Double │ (-∞ … ∞) m │ 20.0 km │\n" + + "└─────────────────────┴────────┴───────────────┴──────────┘\n" + + "¹ This parameter is shown for completeness, but should never have a value different than 0 for this projection.\n", text); } /** Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterMarshallingTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterMarshallingTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterMarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterMarshallingTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -53,7 +53,10 @@ import org.apache.sis.internal.jdk7.Obje * @version 0.6 * @module */ -@DependsOn(DefaultParameterValueTest.class) +@DependsOn({ + DefaultParameterValueTest.class, + DefaultParameterValueGroupTest.class +}) public final strictfp class ParameterMarshallingTest extends XMLTestCase { /** * Creates a parameter value for marshalling test. @@ -182,7 +185,7 @@ public final strictfp class ParameterMar final DefaultParameterValue<Boolean> parameter = create(Boolean.class, null); parameter.setValue(Boolean.TRUE); testMarshallAndUnmarshall(parameter, - "<gml:ParameterValue xmlns:gml=\"" + Namespaces.GML + "\">\n" + "<gml:ParameterValue xmlns:gml=\"" + Namespaces.GML + "\">\n" + " <gml:booleanValue>true</gml:booleanValue>\n" + " <gml:operationParameter>" + " <gml:OperationParameter>" @@ -203,7 +206,7 @@ public final strictfp class ParameterMar final DefaultParameterValue<Integer> parameter = create(Integer.class, null); parameter.setValue(2000); testMarshallAndUnmarshall(parameter, - "<gml:ParameterValue xmlns:gml=\"" + Namespaces.GML + "\">\n" + "<gml:ParameterValue xmlns:gml=\"" + Namespaces.GML + "\">\n" + " <gml:integerValue>2000</gml:integerValue>\n" + " <gml:operationParameter>" + " <gml:OperationParameter>" @@ -246,7 +249,7 @@ public final strictfp class ParameterMar new MeasurementRange<Double>(Double.class, null, false, null, false, SI.METRE)); parameter.setValue(3000, SI.METRE); testMarshallAndUnmarshall(parameter, - "<gml:ParameterValue xmlns:gml=\"" + Namespaces.GML + "\">\n" + "<gml:ParameterValue xmlns:gml=\"" + Namespaces.GML + "\">\n" + " <gml:value uom=\"urn:ogc:def:uom:EPSG::9001\">3000.0</gml:value>\n" + " <gml:operationParameter>" + " <gml:OperationParameter>" @@ -301,8 +304,7 @@ public final strictfp class ParameterMar * @param group The descriptor group to verify. */ private static void verifyDescriptorGroup(final ParameterDescriptorGroup group) { - assertEpsgIdentifierEquals(9804, group.getIdentifiers()); - assertIdentifierEquals("name", "##unrestricted", "EPSG", null, "Mercator (variant A)", group.getName()); + assertEpsgNameAndIdentifierEqual("Mercator (variant A)", 9804, group); // Verify the ParameterDescriptors properties. final Iterator<GeneralParameterDescriptor> it = group.descriptors().iterator(); @@ -326,8 +328,7 @@ public final strictfp class ParameterMar private static void verifyDescriptor(final int code, final String name, final String alias, final boolean required, final GeneralParameterDescriptor descriptor) { - assertEpsgIdentifierEquals(code, descriptor.getIdentifiers()); - assertIdentifierEquals("name", "##unrestricted", "EPSG", null, name, descriptor.getName()); + assertEpsgNameAndIdentifierEqual(name, code, descriptor); assertAliasTipEquals(alias, descriptor); assertEquals("maximumOccurs", 1, descriptor.getMaximumOccurs()); assertEquals("minimumOccurs", required ? 1 : 0, descriptor.getMinimumOccurs()); Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterValueGroupWrapper.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterValueGroupWrapper.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterValueGroupWrapper.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParameterValueGroupWrapper.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -33,6 +33,7 @@ import org.opengis.parameter.ParameterDe * @version 0.4 * @module */ +@SuppressWarnings("CloneInNonCloneableClass") final class ParameterValueGroupWrapper implements ParameterValueGroup { /** * The implementation to hide. @@ -46,10 +47,11 @@ final class ParameterValueGroupWrapper i this.impl = impl; } + @SuppressWarnings("CloneDoesntCallSuperClone") + @Override public ParameterValueGroup clone() {return impl.clone();} @Override public ParameterDescriptorGroup getDescriptor() {return impl.getDescriptor();} @Override public List<GeneralParameterValue> values() {return impl.values();} @Override public ParameterValue<?> parameter(String name) {return impl.parameter(name);} @Override public List<ParameterValueGroup> groups(String name) {return impl.groups(name);} @Override public ParameterValueGroup addGroup(String name) {return impl.addGroup(name);} - @Override public ParameterValueGroup clone() {return impl.clone();} } Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorParametersTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorParametersTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorParametersTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorParametersTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -161,8 +161,15 @@ public strictfp class TensorParametersTe { assertEquals("name", names[row][column], actual.getName().getCode()); assertAliasTipEquals((aliases != null) ? aliases[row][column] : null, actual); - assertEpsgIdentifierEquals((identifiers != null) ? identifiers[row][column] : 0, actual.getIdentifiers()); assertEquals("defaultValue", defaultValue, actual.getDefaultValue()); + if (identifiers != null) { + final short expected = identifiers[row][column]; + if (expected != 0) { + assertEpsgIdentifierEquals(String.valueOf(expected), TestUtilities.getSingleton(actual.getIdentifiers())); + return; + } + } + assertTrue(actual.getIdentifiers().isEmpty()); } /** Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -23,6 +23,9 @@ import javax.xml.bind.JAXBException; import org.opengis.util.FactoryException; import org.opengis.referencing.crs.ProjectedCRS; import org.opengis.referencing.crs.GeographicCRS; +import org.opengis.referencing.cs.AxisDirection; +import org.opengis.referencing.operation.Projection; +import org.opengis.parameter.ParameterValueGroup; import org.opengis.test.Validators; import org.apache.sis.metadata.iso.citation.Citations; import org.apache.sis.referencing.cs.HardCodedCS; @@ -38,7 +41,7 @@ import org.apache.sis.test.XMLTestCase; import org.junit.Test; import org.junit.Rule; -import static org.apache.sis.test.MetadataAssert.*; +import static org.apache.sis.test.ReferencingAssert.*; /** @@ -404,14 +407,25 @@ public final strictfp class DefaultProje * @throws JAXBException If an error occurred during (un)marshalling. */ @Test - @org.junit.Ignore("Still missing some JAXB annotations.") public void testXML() throws FactoryException, JAXBException { final DefaultProjectedCRS crs = unmarshalFile(DefaultProjectedCRS.class, XML_FILE); Validators.validate(crs); + assertEpsgNameAndIdentifierEqual("NTF (Paris) / Lambert zone II", 27572, crs); + assertEpsgNameAndIdentifierEqual("NTF (Paris)", 4807, crs.getBaseCRS()); assertEquals("scope", "Large and medium scale topographic mapping and engineering survey.", crs.getScope().toString()); - /* - * Marshal and compare with the original file. - */ - assertMarshalEqualsFile(XML_FILE, crs, "xmlns:*", "xsi:schemaLocation"); + assertAxisDirectionsEqual("baseCRS", crs.getBaseCRS().getCoordinateSystem(), AxisDirection.NORTH, AxisDirection.EAST); + assertAxisDirectionsEqual("coordinateSystem", crs.getCoordinateSystem(), AxisDirection.EAST, AxisDirection.NORTH); + + final Projection conversion = crs.getConversionFromBase(); + final ParameterValueGroup pg = conversion.getParameterValues(); + assertEpsgNameAndIdentifierEqual("Lambert zone II", 18082, conversion); + assertEpsgNameAndIdentifierEqual("Lambert Conic Conformal (1SP)", 9801, conversion.getMethod()); + assertEquals("Latitude of natural origin", 52, pg.parameter("Latitude of natural origin") .doubleValue(NonSI.GRADE), STRICT); + assertEquals("Longitude of natural origin", 0, pg.parameter("Longitude of natural origin") .doubleValue(NonSI.GRADE), STRICT); + assertEquals("Scale factor at natural origin", 0.99987742, pg.parameter("Scale factor at natural origin").doubleValue(), STRICT); + assertEquals("False easting", 600000, pg.parameter("False easting") .doubleValue(SI.METRE), STRICT); + assertEquals("False northing", 2200000, pg.parameter("False northing") .doubleValue(SI.METRE), STRICT); + + assertNotNull("conversion.mathTransform", conversion.getMathTransform()); } } Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCartesianCSTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCartesianCSTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCartesianCSTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultCartesianCSTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -28,10 +28,10 @@ import org.apache.sis.test.DependsOn; import org.apache.sis.test.DependsOnMethod; import org.junit.Test; -import static org.apache.sis.test.Assert.*; import static java.util.Collections.singletonMap; import static org.opengis.referencing.IdentifiedObject.NAME_KEY; import static org.apache.sis.test.TestUtilities.getSingleton; +import static org.apache.sis.test.ReferencingAssert.*; /** @@ -215,9 +215,11 @@ public final strictfp class DefaultCarte final CoordinateSystemAxis N = cs.getAxis(1); assertEquals("name", "Easting, northing (E,N)", cs.getName().getCode()); assertEquals("remarks", "Used in ProjectedCRS.", cs.getRemarks().toString()); - assertIdentifierEquals( "identifier", "EPSG Geodetic Parameter Dataset", "EPSG", null, "4400", getSingleton(cs.getIdentifiers())); - assertIdentifierEquals("axis[0].identifier", "EPSG Geodetic Parameter Dataset", "EPSG", null, "1", getSingleton(E.getIdentifiers())); - assertIdentifierEquals("axis[1].identifier", "EPSG Geodetic Parameter Dataset", "EPSG", null, "2", getSingleton(N.getIdentifiers())); + assertEpsgIdentifierEquals("4400", getSingleton(cs.getIdentifiers())); + assertEpsgIdentifierEquals("1", getSingleton(E.getIdentifiers())); + assertEpsgIdentifierEquals("2", getSingleton(N.getIdentifiers())); + assertAxisEquals("Easting", "E", AxisDirection.EAST, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METRE, null, E); + assertAxisEquals("Northing", "N", AxisDirection.NORTH, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, SI.METRE, null, N); /* * Marshal and compare with the original file. */ Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCSTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCSTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCSTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/DefaultEllipsoidalCSTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -19,14 +19,16 @@ package org.apache.sis.referencing.cs; import javax.xml.bind.JAXBException; import javax.measure.unit.NonSI; import org.opengis.test.Validators; +import org.opengis.referencing.cs.AxisDirection; import org.opengis.referencing.cs.CoordinateSystemAxis; +import org.opengis.referencing.cs.RangeMeaning; import org.apache.sis.test.XMLTestCase; import org.apache.sis.test.DependsOn; import org.apache.sis.test.DependsOnMethod; import org.apache.sis.referencing.GeodeticObjectVerifier; import org.junit.Test; -import static org.apache.sis.test.Assert.*; +import static org.apache.sis.test.ReferencingAssert.*; import static org.apache.sis.test.TestUtilities.getSingleton; @@ -129,11 +131,11 @@ public final strictfp class DefaultEllip final CoordinateSystemAxis λ = cs.getAxis(1); assertEquals("name", "Latitude (north), Longitude (east)", cs.getName().getCode()); assertEquals("remarks", "Used in two-dimensional GeographicCRS.", cs.getRemarks().toString()); - assertIdentifierEquals( "identifier", "EPSG Geodetic Parameter Dataset", "EPSG", null, "6422", getSingleton(cs.getIdentifiers())); - assertIdentifierEquals("axis[0].identifier", "EPSG Geodetic Parameter Dataset", "EPSG", null, "106", getSingleton(φ.getIdentifiers())); - assertIdentifierEquals("axis[1].identifier", "EPSG Geodetic Parameter Dataset", "EPSG", null, "107", getSingleton(λ.getIdentifiers())); - assertEquals("axis[0].abbreviation", "φ", φ.getAbbreviation()); - assertEquals("axis[1].abbreviation", "λ", λ.getAbbreviation()); + assertAxisEquals("Geodetic latitude", "φ", AxisDirection.NORTH, -90, +90, NonSI.DEGREE_ANGLE, RangeMeaning.EXACT, φ); + assertAxisEquals("Geodetic longitude", "λ", AxisDirection.EAST, -180, +180, NonSI.DEGREE_ANGLE, RangeMeaning.WRAPAROUND, λ); + assertEpsgIdentifierEquals("6422", getSingleton(cs.getIdentifiers())); + assertEpsgIdentifierEquals("106", getSingleton(φ.getIdentifiers())); + assertEpsgIdentifierEquals("107", getSingleton(λ.getIdentifiers())); /* * Marshal and compare with the original file. */ Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultOperationMethodTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -88,9 +88,8 @@ public final strictfp class DefaultOpera @Test public void testConstruction() { final OperationMethod method = create("Mercator (variant A)", "9804", "EPSG guidance note #7-2", 2); - assertEpsgIdentifierEquals("Mercator (variant A)", method.getName()); - assertEpsgIdentifierEquals(9804, method.getIdentifiers()); - assertEquals("formula", "EPSG guidance note #7-2", method.getFormula().getCitation().getTitle().toString()); + assertEpsgNameAndIdentifierEqual("Mercator (variant A)", 9804, method); + assertTitleEquals("formula", "EPSG guidance note #7-2", method.getFormula().getCitation()); assertEquals("sourceDimensions", Integer.valueOf(2), method.getSourceDimensions()); assertEquals("targetDimensions", Integer.valueOf(2), method.getTargetDimensions()); } Copied: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/OperationMarshallingTest.java (from r1701516, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/OperationMarshallingTest.java) URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/OperationMarshallingTest.java?p2=sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/OperationMarshallingTest.java&p1=sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/OperationMarshallingTest.java&r1=1701516&r2=1701518&rev=1701518&view=diff ============================================================================== --- sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/OperationMarshallingTest.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/OperationMarshallingTest.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -77,7 +77,7 @@ public final strictfp class OperationMar }; builder.addName(null, "Mercator (1SP)"); final ParameterDescriptorGroup descriptor = builder.createGroup(parameters); - final Map<String,Object> properties = new HashMap<>(4); + final Map<String,Object> properties = new HashMap<String,Object>(4); properties.put(DefaultOperationMethod.NAME_KEY, descriptor.getName()); properties.put(DefaultOperationMethod.FORMULA_KEY, new DefaultFormula("See EPSG guide.")); return new DefaultOperationMethod(properties, 2, 2, descriptor); Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -99,20 +99,20 @@ public strictfp class ReferencingAssert } /** - * Asserts that the string representation of the unique identifier in the given collection is equals to the given - * EPSG code. As a special case if the given code is 0, then this method verifies that the given object has no - * identifier. + * Asserts that the given object has the expected name and singleton identifier in the {@code "EPSG"} code space. + * No other identifier than the given one is expected. The authority is expected to have the {@code "EPSG"} title, + * alternate title or identifier. * - * @param expected The expected EPSG code, or {@code 0} if we expect no EPSG code. - * @param actual The set of identifiers in which to verify the EPSG code. + * @param name The expected EPSG name. + * @param identifier The expected EPSG identifier. + * @param object The object to verify. + * + * @since 0.6 */ - public static void assertEpsgIdentifierEquals(final int expected, final Collection<? extends Identifier> actual) { - assertNotNull(actual); - if (expected == 0) { - assertTrue("identifiers.isEmpty()", actual.isEmpty()); - } else { - assertEpsgIdentifierEquals(String.valueOf(expected), TestUtilities.getSingleton(actual)); - } + public static void assertEpsgNameAndIdentifierEqual(final String name, final int identifier, final IdentifiedObject object) { + assertNotNull(object); + assertEpsgIdentifierEquals(name, object.getName()); + assertEpsgIdentifierEquals(String.valueOf(identifier), TestUtilities.getSingleton(object.getIdentifiers())); } /** Modified: sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java [UTF-8] Sun Sep 6 19:28:14 2015 @@ -71,6 +71,8 @@ import org.junit.BeforeClass; org.apache.sis.parameter.TensorValuesTest.class, org.apache.sis.parameter.MapProjectionParametersTest.class, org.apache.sis.parameter.ParameterMarshallingTest.class, + org.apache.sis.internal.jaxb.referencing.CC_GeneralOperationParameterTest.class, + org.apache.sis.internal.jaxb.referencing.CC_OperationParameterGroupTest.class, // Test transforms other than map projections. org.apache.sis.referencing.operation.transform.CoordinateDomainTest.class, @@ -132,8 +134,11 @@ import org.junit.BeforeClass; org.apache.sis.referencing.crs.DefaultGeographicCRSTest.class, org.apache.sis.referencing.crs.DefaultVerticalCRSTest.class, org.apache.sis.referencing.crs.DefaultTemporalCRSTest.class, + org.apache.sis.referencing.crs.DefaultEngineeringCRSTest.class, + org.apache.sis.referencing.crs.DefaultImageCRSTest.class, org.apache.sis.referencing.operation.DefaultTransformationTest.class, org.apache.sis.referencing.operation.DefaultConversionTest.class, + org.apache.sis.referencing.operation.OperationMarshallingTest.class, org.apache.sis.referencing.crs.DefaultProjectedCRSTest.class, org.apache.sis.referencing.crs.DefaultDerivedCRSTest.class, org.apache.sis.referencing.crs.SubTypesTest.class, Modified: sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterDescriptorGroup.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterDescriptorGroup.xml?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterDescriptorGroup.xml (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterDescriptorGroup.xml Sun Sep 6 19:28:14 2015 @@ -32,6 +32,7 @@ <gml:identifier codeSpace="IOGP">urn:ogc:def:parameter:EPSG::8801</gml:identifier> <gml:name codeSpace="EPSG">Latitude of natural origin</gml:name> <gml:name codeSpace="OGC">latitude_of_origin</gml:name> + <gml:remarks>This parameter is shown for completeness, but should never have a value different than 0 for this projection.</gml:remarks> </gml:OperationParameter> </gml:parameter> <gml:parameter> Modified: sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterValueGroup.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterValueGroup.xml?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterValueGroup.xml (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/parameter/ParameterValueGroup.xml Sun Sep 6 19:28:14 2015 @@ -30,6 +30,7 @@ <gml:identifier codeSpace="IOGP">urn:ogc:def:parameter:EPSG::8801</gml:identifier> <gml:name codeSpace="EPSG">Latitude of natural origin</gml:name> <gml:name codeSpace="OGC">latitude_of_origin</gml:name> + <gml:remarks>This parameter is shown for completeness, but should never have a value different than 0 for this projection.</gml:remarks> </gml:OperationParameter> </gml:operationParameter> </gml:ParameterValue> @@ -75,6 +76,7 @@ <gml:identifier codeSpace="IOGP">urn:ogc:def:parameter:EPSG::8801</gml:identifier> <gml:name codeSpace="EPSG">Latitude of natural origin</gml:name> <gml:name codeSpace="OGC">latitude_of_origin</gml:name> + <gml:remarks>This parameter is shown for completeness, but should never have a value different than 0 for this projection.</gml:remarks> </gml:OperationParameter> </gml:parameter> <gml:parameter> Modified: sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/GeographicCRS.xml URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/GeographicCRS.xml?rev=1701518&r1=1701517&r2=1701518&view=diff ============================================================================== --- sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/GeographicCRS.xml (original) +++ sis/branches/JDK6/core/sis-referencing/src/test/resources/org/apache/sis/referencing/crs/GeographicCRS.xml Sun Sep 6 19:28:14 2015 @@ -17,6 +17,7 @@ specific language governing permissions and limitations under the License. --> + <gml:GeodeticCRS xsi:schemaLocation = "http://www.opengis.net/gml/3.2 http://schemas.opengis.net/gml/3.2.1/coordinateReferenceSystems.xsd" xmlns:gml = "http://www.opengis.net/gml/3.2" xmlns:gmd = "http://www.isotc211.org/2005/gmd"
