Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -56,7 +56,7 @@ import static org.opengis.annotation.Spe * * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.5 * @module */
Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlElem import javax.xml.bind.annotation.XmlRootElement; import org.opengis.metadata.citation.Citation; import org.opengis.metadata.PortrayalCatalogueReference; +import org.apache.sis.xml.Namespaces; /** @@ -45,13 +46,13 @@ import org.opengis.metadata.PortrayalCat * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. -@XmlType(name = "MD_PortrayalCatalogueReference_Type") -@XmlRootElement(name = "MD_PortrayalCatalogueReference") +@XmlType(name = "MD_PortrayalCatalogueReference_Type", namespace = Namespaces.MPC) +@XmlRootElement(name = "MD_PortrayalCatalogueReference", namespace = Namespaces.MPC) public class DefaultPortrayalCatalogueReference extends ISOMetadata implements PortrayalCatalogueReference { /** * Serial number for compatibility with different versions. Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -37,6 +37,7 @@ import org.apache.sis.io.wkt.Formattable import org.apache.sis.io.wkt.Formatter; import org.apache.sis.io.wkt.Convention; import org.apache.sis.io.wkt.ElementKind; +import org.apache.sis.xml.Namespaces; import static org.apache.sis.util.ArgumentChecks.ensureNonNull; import static org.apache.sis.util.CharSequences.trimWhitespaces; @@ -129,13 +130,13 @@ import static org.apache.sis.util.collec * @module */ @TitleProperty(name = "code") -@XmlType(name = "RS_Identifier_Type", propOrder = { +@XmlType(name = "RS_Identifier_Type", namespace = Namespaces.GMD, propOrder = { "authority", "code", "codeSpace", "version" }) -@XmlRootElement(name = "RS_Identifier") +@XmlRootElement(name = "RS_Identifier", namespace = Namespaces.GMD) public class ImmutableIdentifier extends FormattableObject implements ReferenceIdentifier, Serializable { /** * For cross-version compatibility. @@ -624,6 +625,7 @@ public class ImmutableIdentifier extends /** * Empty constructor for JAXB. */ + @SuppressWarnings("unused") private ImmutableIdentifier() { code = null; codeSpace = null; Added: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/OnlineResourceAdapter.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/OnlineResourceAdapter.java?rev=1825355&view=auto ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/OnlineResourceAdapter.java (added) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/OnlineResourceAdapter.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -0,0 +1,66 @@ +/* + * 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.metadata.iso; + +import java.net.URI; +import java.net.URISyntaxException; +import javax.xml.bind.annotation.adapters.XmlAdapter; +import org.opengis.metadata.citation.OnlineResource; +import org.apache.sis.internal.jaxb.metadata.CI_OnlineResource; +import org.apache.sis.metadata.iso.citation.DefaultOnlineResource; + + +/** + * Converts an URI to a {@code <cit:OnlineResource>} element for ISO 19115-3:2016 compliance. + * We need this additional adapter because some property type changed from {@code URI} to + * {@code OnlineResource} in the upgrade from ISO 19115:2003 to ISO 19115-1:2014. + * + * @author Martin Desruisseaux (Geomatys) + * @version 1.0 + * @since 1.0 + */ +final class OnlineResourceAdapter extends XmlAdapter<CI_OnlineResource, URI> { + /** + * The adapter performing the actual work. + */ + private static final CI_OnlineResource ADAPTER = new CI_OnlineResource.Since2014(); + + /** + * Wraps the given URI in a {@code <cit:OnlineResource>} element. + */ + @Override + public CI_OnlineResource marshal(final URI value) { + if (value != null) { + return ADAPTER.marshal(new DefaultOnlineResource(value)); + } + return null; + } + + /** + * Returns a URI from the given {@code <cit:OnlineResource>} element. + */ + @Override + public URI unmarshal(final CI_OnlineResource value) throws URISyntaxException { + if (value != null) { + final OnlineResource res = ADAPTER.unmarshal(value); + if (res != null) { + return res.getLinkage(); + } + } + return null; + } +} Propchange: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/OnlineResourceAdapter.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/OnlineResourceAdapter.java ------------------------------------------------------------------------------ svn:mime-type = text/plain;charset=UTF-8 Added: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/URIStringAdapter.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/URIStringAdapter.java?rev=1825355&view=auto ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/URIStringAdapter.java (added) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/URIStringAdapter.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -0,0 +1,67 @@ +/* + * 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.metadata.iso; + +import java.net.URI; +import java.net.URISyntaxException; +import javax.xml.bind.annotation.adapters.XmlAdapter; +import org.apache.sis.internal.jaxb.Context; +import org.apache.sis.internal.jaxb.gco.CharSequenceAdapter; +import org.apache.sis.internal.jaxb.gco.GO_CharacterString; + + +/** + * Converts an URI to a {@code <gco:CharacterSequence>} element for ISO 19115-3:2016 compliance. + * We need this additional adapter because some property type changed from {@code URI} + * to {@code CharacterSequence} in the upgrade from ISO 19115:2003 to ISO 19115-1:2014. + * + * @author Martin Desruisseaux (Geomatys) + * @version 1.0 + * @since 1.0 + */ +final class URIStringAdapter extends XmlAdapter<GO_CharacterString, URI> { + /** + * The adapter performing the actual work. + */ + private static final CharSequenceAdapter ADAPTER = new CharSequenceAdapter.Since2014(); + + /** + * Wraps the given URI in a {@code <cit:OnlineResource>} element. + */ + @Override + public GO_CharacterString marshal(final URI value) { + if (value != null) { + return ADAPTER.marshal(value.toString()); + } + return null; + } + + /** + * Returns a URI from the given {@code <cit:OnlineResource>} element. + */ + @Override + public URI unmarshal(final GO_CharacterString value) throws URISyntaxException { + if (value != null) { + final CharSequence uri = ADAPTER.unmarshal(value); + if (uri != null) { + final Context context = Context.current(); + return Context.converter(context).toURI(context, uri.toString()); + } + } + return null; + } +} Propchange: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/URIStringAdapter.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/URIStringAdapter.java ------------------------------------------------------------------------------ svn:mime-type = text/plain;charset=UTF-8 Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultAcquisitionInformation.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultAcquisitionInformation.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultAcquisitionInformation.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultAcquisitionInformation.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -46,7 +46,7 @@ import org.apache.sis.metadata.iso.ISOMe * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -48,7 +48,7 @@ import static org.apache.sis.internal.me * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.3 * @module */ @@ -216,7 +216,7 @@ public class DefaultEnvironmentalRecord * @return meteorological conditions in the photo flight area, or {@code null}. */ @Override - @XmlElement(name = "meteorologicalConditions", required = true) + @XmlElement(name = "meterologicalConditions", required = true) // Really spelled that way in XSD file. public InternationalString getMeteorologicalConditions() { return meteorologicalConditions; } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -59,7 +59,7 @@ import static org.apache.sis.internal.me * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -49,7 +49,7 @@ import org.apache.sis.internal.jaxb.NonM * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -59,7 +59,7 @@ import org.apache.sis.internal.jaxb.NonM * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.7 + * @version 1.0 * @since 0.3 * @module */ @@ -181,7 +181,7 @@ public class DefaultObjective extends IS * * <div class="note"><b>XML note:</b> * The {@code <gmd:identifier>} element marshalled to XML will exclude all the above cited identifiers, - * for ISO 19139 compliance. Those identifiers will appear in other XML elements or attributes.</div> + * for compliance with ISO 19115 model. Those identifiers will appear in other XML elements or attributes.</div> * * @return identification of the objective. */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -55,7 +55,7 @@ import org.apache.sis.internal.jaxb.NonM * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ @@ -237,7 +237,7 @@ public class DefaultOperation extends IS * @return unique identification of the operation, or {@code null}. */ @Override - @XmlElement(name = "identifier", required = true) + @XmlElement(name = "identifier") public Identifier getIdentifier() { return NonMarshalledAuthority.getMarshallable(identifiers); } @@ -341,7 +341,7 @@ public class DefaultOperation extends IS * @return heritage of the operation, or {@code null}. */ @Override - @XmlElement(name = "parentOperation", required = true) + @XmlElement(name = "parentOperation") public Operation getParentOperation() { return parentOperation; } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -50,7 +50,7 @@ import org.apache.sis.metadata.iso.ISOMe * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -53,7 +53,7 @@ import org.apache.sis.internal.jaxb.NonM * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -47,7 +47,7 @@ import org.apache.sis.internal.jaxb.NonM * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -46,7 +46,7 @@ import static org.apache.sis.internal.me * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -65,7 +65,7 @@ import static org.apache.sis.internal.me * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ @@ -350,7 +350,7 @@ public class DefaultRequirement extends * @return plan that identifies solution to satisfy the requirement. */ @Override - @XmlElement(name = "satisfiedPlan") + @XmlElement(name = "satisifiedPlan") // Really spelled that way in XSD file. public Collection<Plan> getSatisfiedPlans() { return satisfiedPlans = nonNullCollection(satisfiedPlans, Plan.class); } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -86,21 +86,24 @@ * * @author Cédric Briançon (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ -@XmlSchema(location=Schemas.METADATA_XSD, elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.GMI, xmlns = { - @XmlNs(prefix = "gmi", namespaceURI = Namespaces.GMI), - @XmlNs(prefix = "gmd", namespaceURI = Namespaces.GMD), - @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), - @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI) +@XmlSchema(location="http://standards.iso.org/iso/19115/-3/mac/1.0/mac.xsd", + elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.MAC, + xmlns = { + @XmlNs(prefix = "mac", namespaceURI = Namespaces.MAC), // Metadata for Acquisition + @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC) // Metadata Common Classes }) @XmlAccessorType(XmlAccessType.NONE) @XmlJavaTypeAdapters({ @XmlJavaTypeAdapter(CI_Citation.class), @XmlJavaTypeAdapter(CI_ResponsibleParty.class), @XmlJavaTypeAdapter(EX_Extent.class), + @XmlJavaTypeAdapter(GO_DateTime.class), + @XmlJavaTypeAdapter(GO_Real.class), @XmlJavaTypeAdapter(GM_Object.class), @XmlJavaTypeAdapter(MD_Identifier.class), @XmlJavaTypeAdapter(MD_ProgressCode.class), @@ -123,8 +126,6 @@ @XmlJavaTypeAdapter(MI_TriggerCode.class), // Java types, primitive types and basic OGC types handling - @XmlJavaTypeAdapter(GO_DateTime.class), - @XmlJavaTypeAdapter(StringAdapter.class), @XmlJavaTypeAdapter(InternationalStringAdapter.class) }) package org.apache.sis.metadata.iso.acquisition; @@ -137,7 +138,6 @@ import javax.xml.bind.annotation.XmlAcce import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters; import org.apache.sis.xml.Namespaces; -import org.apache.sis.internal.jaxb.Schemas; import org.apache.sis.internal.jaxb.gco.*; import org.apache.sis.internal.jaxb.code.*; import org.apache.sis.internal.jaxb.metadata.*; Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -61,7 +61,7 @@ import static org.opengis.annotation.Spe * * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.5 * @module */ @@ -71,7 +71,7 @@ import static org.opengis.annotation.Spe "name", "contactInfo" }) -@XmlRootElement(name = "CI_Party") +@XmlRootElement(name = "AbstractCI_Party") @XmlSeeAlso({ DefaultIndividual.class, DefaultOrganisation.class Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -40,7 +40,7 @@ import org.apache.sis.metadata.iso.ISOMe * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -21,7 +21,6 @@ import java.util.Collection; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.opengis.annotation.UML; import org.opengis.metadata.Identifier; import org.opengis.metadata.citation.Citation; import org.opengis.metadata.citation.CitationDate; @@ -32,12 +31,16 @@ import org.opengis.metadata.citation.Ser import org.opengis.metadata.identification.BrowseGraphic; import org.opengis.util.InternationalString; import org.apache.sis.util.iso.Types; +import org.apache.sis.internal.jaxb.FilterByVersion; +import org.apache.sis.internal.jaxb.LegacyNamespaces; import org.apache.sis.internal.jaxb.NonMarshalledAuthority; import org.apache.sis.metadata.TitleProperty; import org.apache.sis.metadata.iso.ISOMetadata; import org.apache.sis.xml.IdentifierSpace; import org.apache.sis.xml.IdentifierMap; +// Branch-specific imports +import org.opengis.annotation.UML; import static org.opengis.annotation.Obligation.OPTIONAL; import static org.opengis.annotation.Specification.ISO_19115; import static org.apache.sis.util.collection.Containers.isNullOrEmpty; @@ -57,7 +60,7 @@ import static org.apache.sis.internal.me * The ISO 19115 model provides specific attributes for the {@linkplain #getISBN() ISBN} and * {@linkplain #getISSN() ISSN} codes. However the SIS library handles those codes like any * other identifiers. Consequently the ISBN and ISSN codes are included in the collection - * returned by {@link #getIdentifiers()}, except at XML marshalling time (for ISO 19139 compliance). + * returned by {@link #getIdentifiers()}, except at XML marshalling time (for ISO 19115-3 compliance). * * <div class="section">Limitations</div> * <ul> @@ -71,7 +74,8 @@ import static org.apache.sis.internal.me * @author Martin Desruisseaux (IRD, Geomatys) * @author Cédric Briançon (Geomatys) * @author Rémi Maréchal (Geomatys) - * @version 0.7 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ @@ -90,7 +94,9 @@ import static org.apache.sis.internal.me "otherCitationDetails", "collectiveTitle", "ISBN", - "ISSN" + "ISSN", + "onlineResource", // New in ISO 19115:2014 + "graphic" // Ibid. }) @XmlRootElement(name = "CI_Citation") public class DefaultCitation extends ISOMetadata implements Citation { @@ -297,7 +303,7 @@ public class DefaultCitation extends ISO * @return the reference date. */ @Override - @XmlElement(name = "date", required = true) + @XmlElement(name = "date") public Collection<CitationDate> getDates() { return dates = nonNullCollection(dates, CitationDate.class); } @@ -366,7 +372,7 @@ public class DefaultCitation extends ISO * * <div class="note"><b>XML note:</b> * The {@code <gmd:identifier>} element marshalled to XML will exclude all the above cited identifiers, - * for ISO 19139 compliance. Those identifiers will appear in other XML elements or attributes.</div> + * for ISO 19115-3 compliance. Those identifiers will appear in other XML elements or attributes.</div> * * @return the identifiers, or an empty collection if none. * @@ -511,9 +517,9 @@ public class DefaultCitation extends ISO */ @Override @Deprecated - @XmlElement(name = "collectiveTitle") + @XmlElement(name = "collectiveTitle", namespace = LegacyNamespaces.GMD) public InternationalString getCollectiveTitle() { - return collectiveTitle; + return FilterByVersion.LEGACY_METADATA.accept() ? collectiveTitle : null; } /** @@ -615,7 +621,7 @@ public class DefaultCitation extends ISO * * @since 0.5 */ -/// @XmlElement(name = "onlineResource") + // @XmlElement at the end of this class. @UML(identifier="onlineResource", obligation=OPTIONAL, specification=ISO_19115) public Collection<OnlineResource> getOnlineResources() { return onlineResources = nonNullCollection(onlineResources, OnlineResource.class); @@ -639,7 +645,7 @@ public class DefaultCitation extends ISO * * @since 0.5 */ -/// @XmlElement(name = "graphic") + // @XmlElement at the end of this class. @UML(identifier="graphic", obligation=OPTIONAL, specification=ISO_19115) public Collection<BrowseGraphic> getGraphics() { return graphics = nonNullCollection(graphics, BrowseGraphic.class); @@ -655,4 +661,33 @@ public class DefaultCitation extends ISO public void setGraphics(final Collection<? extends BrowseGraphic> newValues) { graphics = writeCollection(newValues, graphics, BrowseGraphic.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. //////// + //////// //////// + ////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Invoked by JAXB at both marshalling and unmarshalling time. + * This attribute has been added by ISO 19115:2014 standard. + * If (and only if) marshalling an older standard version, we omit this attribute. + */ + @XmlElement(name = "onlineResource") + private Collection<OnlineResource> getOnlineResource() { + return FilterByVersion.CURRENT_METADATA.accept() ? getOnlineResources() : null; + } + + @XmlElement(name = "graphic") + private Collection<BrowseGraphic> getGraphic() { + return FilterByVersion.CURRENT_METADATA.accept() ? getGraphics() : null; + } } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -48,7 +48,7 @@ import static org.apache.sis.internal.me * * @author Martin Desruisseaux (IRD, Geomatys) * @author Cédric Briançon (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -22,8 +22,7 @@ import java.util.Collection; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; -import org.opengis.annotation.UML; -import org.opengis.util.CodeList; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.opengis.util.InternationalString; import org.opengis.metadata.citation.Address; import org.opengis.metadata.citation.Contact; @@ -32,10 +31,16 @@ import org.opengis.metadata.citation.Onl import org.apache.sis.metadata.iso.ISOMetadata; import org.apache.sis.util.resources.Messages; import org.apache.sis.internal.jaxb.Context; +import org.apache.sis.internal.jaxb.FilterByVersion; +import org.apache.sis.internal.jaxb.LegacyNamespaces; +import org.apache.sis.internal.jaxb.gco.InternationalStringAdapter; import org.apache.sis.internal.metadata.Dependencies; import org.apache.sis.internal.metadata.LegacyPropertyAdapter; import org.apache.sis.internal.geoapi.evolution.UnsupportedCodeList; +// Branch-specific imports +import org.opengis.util.CodeList; +import org.opengis.annotation.UML; import static org.opengis.annotation.Obligation.OPTIONAL; import static org.opengis.annotation.Specification.ISO_19115; @@ -56,17 +61,22 @@ import static org.opengis.annotation.Spe * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) * @author Rémi Maréchal (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. @XmlType(name = "CI_Contact_Type", propOrder = { "phone", + "phoneList", "address", + "addressList", "onlineResource", + "onlineResourceList", "hoursOfService", - "contactInstructions" + "contactInstructions", + "contactType" }) @XmlRootElement(name = "CI_Contact") public class DefaultContact extends ISOMetadata implements Contact { @@ -181,6 +191,7 @@ public class DefaultContact extends ISOM * * @since 0.5 */ + // @XmlElement at the end of this class. @UML(identifier="phone", obligation=OPTIONAL, specification=ISO_19115) public Collection<Telephone> getPhones() { return phones = nonNullCollection(phones, Telephone.class); @@ -197,9 +208,9 @@ public class DefaultContact extends ISOM phones = writeCollection(newValues, phones, Telephone.class); /* * Code below this point will be deleted after we removed the deprecated methods in DefaultTelephone. - * This code notifies all DefaultTelephone instances about the the list of phones in order to allow - * the deprecated Telephone.getVoices() and Telephone.getFacsimiles() methods to fetches information - * from the phones list. + * This code notifies all DefaultTelephone instances about the list of phones in order to allow the + * deprecated Telephone.getVoices() and Telephone.getFacsimiles() methods to fetches information from + * the phones list. */ if (phones != null) { boolean modified = false; @@ -229,29 +240,31 @@ public class DefaultContact extends ISOM */ @Override @Deprecated - @XmlElement(name = "phone") @Dependencies("getPhones") + @XmlElement(name = "phone", namespace = LegacyNamespaces.GMD) public Telephone getPhone() { Telephone phone = null; - final Collection<Telephone> phones = getPhones(); - if (phones != null) { // May be null on marshalling. - CodeList<?> ignored = null; - for (final Telephone c : phones) { - if (c instanceof DefaultTelephone) { - String name; - final CodeList<?> type = ((DefaultTelephone) c).numberType; - if (type != null && ("VOICE".equals(name = type.name()) || "FACSIMILE".equals(name))) { - if (phone == null) { - phone = c; + if (FilterByVersion.LEGACY_METADATA.accept()) { + final Collection<Telephone> phones = getPhones(); + if (phones != null) { // May be null on marshalling. + CodeList<?> ignored = null; + for (final Telephone c : phones) { + if (c instanceof DefaultTelephone) { + String name; + final CodeList<?> type = ((DefaultTelephone) c).numberType; + if (type != null && ("VOICE".equals(name = type.name()) || "FACSIMILE".equals(name))) { + if (phone == null) { + phone = c; + } + } else if (ignored == null) { + ignored = type; } - } else if (ignored == null) { - ignored = type; } } - } - if (ignored != null) { - Context.warningOccured(Context.current(), DefaultContact.class, "getPhone", - Messages.class, Messages.Keys.IgnoredPropertyAssociatedTo_1, ignored); + if (ignored != null) { + Context.warningOccured(Context.current(), DefaultContact.class, "getPhone", + Messages.class, Messages.Keys.IgnoredPropertyAssociatedTo_1, ignored); + } } } return phone; @@ -291,6 +304,7 @@ public class DefaultContact extends ISOM * * @since 0.5 */ + // @XmlElement at the end of this class. @UML(identifier="address", obligation=OPTIONAL, specification=ISO_19115) public Collection<Address> getAddresses() { return addresses = nonNullCollection(addresses, Address.class); @@ -317,10 +331,13 @@ public class DefaultContact extends ISOM */ @Override @Deprecated - @XmlElement(name = "address") @Dependencies("getAddresses") + @XmlElement(name = "address", namespace = LegacyNamespaces.GMD) public Address getAddress() { - return LegacyPropertyAdapter.getSingleton(getAddresses(), Address.class, null, DefaultContact.class, "getAddress"); + if (FilterByVersion.LEGACY_METADATA.accept()) { + return LegacyPropertyAdapter.getSingleton(getAddresses(), Address.class, null, DefaultContact.class, "getAddress"); + } + return null; // Marshalling newer ISO 19115-3 } /** @@ -343,6 +360,7 @@ public class DefaultContact extends ISOM * * @since 0.5 */ + // @XmlElement at the end of this class. @UML(identifier="onlineResource", obligation=OPTIONAL, specification=ISO_19115) public Collection<OnlineResource> getOnlineResources() { return onlineResources = nonNullCollection(onlineResources, OnlineResource.class); @@ -369,10 +387,13 @@ public class DefaultContact extends ISOM */ @Override @Deprecated - @XmlElement(name = "onlineResource") @Dependencies("getOnlineResources") + @XmlElement(name = "onlineResource", namespace = LegacyNamespaces.GMD) public OnlineResource getOnlineResource() { - return LegacyPropertyAdapter.getSingleton(getOnlineResources(), OnlineResource.class, null, DefaultContact.class, "getOnlineResource"); + if (FilterByVersion.LEGACY_METADATA.accept()) { + return LegacyPropertyAdapter.getSingleton(getOnlineResources(), OnlineResource.class, null, DefaultContact.class, "getOnlineResource"); + } + return null; // Marshalling newer ISO 19115-3 } /** @@ -448,7 +469,8 @@ public class DefaultContact extends ISOM * * @since 0.5 */ -/// @XmlElement(name = "contactType") + @XmlElement(name = "contactType") + @XmlJavaTypeAdapter(InternationalStringAdapter.Since2014.class) @UML(identifier="contactType", obligation=OPTIONAL, specification=ISO_19115) public InternationalString getContactType() { return contactType; @@ -465,4 +487,38 @@ public class DefaultContact extends ISOM checkWritePermission(); contactType = newValue; } + + + + + ////////////////////////////////////////////////////////////////////////////////////////////////// + //////// //////// + //////// 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. //////// + //////// //////// + ////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Invoked by JAXB at both marshalling and unmarshalling time. + * This attribute has been added by ISO 19115:2014 standard. + * If (and only if) marshalling an older standard version, we omit this attribute. + */ + @XmlElement(name = "phone") + private Collection<Telephone> getPhoneList() { + return FilterByVersion.CURRENT_METADATA.accept() ? getPhones() : null; + } + + @XmlElement(name = "address") + private Collection<Address> getAddressList() { + return FilterByVersion.CURRENT_METADATA.accept() ? getAddresses() : null; + } + + @XmlElement(name = "onlineResource") + private Collection<OnlineResource> getOnlineResourceList() { + return FilterByVersion.CURRENT_METADATA.accept() ? getOnlineResources() : null; + } } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -51,7 +51,7 @@ import static org.opengis.annotation.Spe * * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.5 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -20,12 +20,16 @@ import java.net.URI; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.opengis.annotation.UML; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.opengis.util.InternationalString; import org.opengis.metadata.citation.OnLineFunction; import org.opengis.metadata.citation.OnlineResource; +import org.apache.sis.internal.jaxb.gco.StringAdapter; +import org.apache.sis.internal.jaxb.gco.URIAdapter; import org.apache.sis.metadata.iso.ISOMetadata; +// Branch-specific imports +import org.opengis.annotation.UML; import static org.opengis.annotation.Obligation.OPTIONAL; import static org.opengis.annotation.Specification.ISO_19115; @@ -50,7 +54,8 @@ import static org.opengis.annotation.Spe * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ @@ -61,7 +66,8 @@ import static org.opengis.annotation.Spe "applicationProfile", "name", "description", - "function" + "function", + "protocolRequest" }) @XmlRootElement(name = "CI_OnlineResource") public class DefaultOnlineResource extends ISOMetadata implements OnlineResource { @@ -273,6 +279,7 @@ public class DefaultOnlineResource exten */ @Override @XmlElement(name = "linkage", required = true) + @XmlJavaTypeAdapter(URIAdapter.AsURL.class) public URI getLinkage() { return linkage; } @@ -331,6 +338,8 @@ public class DefaultOnlineResource exten * * @since 0.5 */ + @XmlElement(name = "protocolRequest") + @XmlJavaTypeAdapter(StringAdapter.Since2014.class) @UML(identifier="protocolRequest", obligation=OPTIONAL, specification=ISO_19115) public String getProtocolRequest() { return protocolRequest; Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOrganisation.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOrganisation.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOrganisation.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOrganisation.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -52,7 +52,7 @@ import static org.opengis.annotation.Spe * * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.5 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -21,10 +21,13 @@ import javax.xml.bind.annotation.XmlType import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSeeAlso; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.opengis.metadata.citation.Role; import org.opengis.metadata.extent.Extent; import org.opengis.metadata.citation.ResponsibleParty; import org.apache.sis.metadata.iso.ISOMetadata; +import org.apache.sis.internal.jaxb.FilterByVersion; +import org.apache.sis.internal.jaxb.code.CI_RoleCode; // Branch-specific imports import org.opengis.annotation.UML; @@ -62,15 +65,16 @@ import static org.opengis.annotation.Spe * * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.5 * @module */ -@SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. +@SuppressWarnings({"CloneableClassWithoutClone", "deprecation"}) // ModifiableMetadata needs shallow clones. @XmlType(name = "CI_Responsibility_Type", propOrder = { -/// "role", -/// "extents", -/// "parties" + "role", + "extent", + "party" }) @XmlRootElement(name = "CI_Responsibility") @XmlSeeAlso({ @@ -153,7 +157,8 @@ public class DefaultResponsibility exten * * @return function performed by the responsible party. */ -/// @XmlElement(name = "role", required = true) + @XmlElement(name = "role", required = true) + @XmlJavaTypeAdapter(CI_RoleCode.Since2014.class) @UML(identifier="role", obligation=MANDATORY, specification=ISO_19115) public Role getRole() { return role; @@ -174,7 +179,7 @@ public class DefaultResponsibility exten * * @return the spatial or temporal extents of the role. */ -/// @XmlElement(name = "extent") + // @XmlElement at the end of this class. @UML(identifier="extent", obligation=OPTIONAL, specification=ISO_19115) public Collection<Extent> getExtents() { return extents = nonNullCollection(extents, Extent.class); @@ -199,7 +204,7 @@ public class DefaultResponsibility exten * * @return information about the parties. */ -/// @XmlElement(name = "party", required = true) + // @XmlElement at the end of this class. @UML(identifier="party", obligation=MANDATORY, specification=ISO_19115) public Collection<AbstractParty> getParties() { return parties = nonNullCollection(parties, AbstractParty.class); @@ -218,4 +223,33 @@ public class DefaultResponsibility exten public void setParties(final Collection<? extends AbstractParty> newValues) { parties = writeCollection(newValues, parties, AbstractParty.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. //////// + //////// //////// + ////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Invoked by JAXB at both marshalling and unmarshalling time. + * This attribute has been added by ISO 19115:2014 standard. + * If (and only if) marshalling an older standard version, we omit this attribute. + */ + @XmlElement(name = "extent") + private Collection<Extent> getExtent() { + return FilterByVersion.CURRENT_METADATA.accept() ? getExtents() : null; + } + + @XmlElement(name = "party", required = true) + private Collection<AbstractParty> getParty() { + return FilterByVersion.CURRENT_METADATA.accept() ? getParties() : null; + } } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -27,6 +27,7 @@ import org.opengis.metadata.citation.Res import org.opengis.metadata.citation.Role; import org.opengis.util.InternationalString; import org.apache.sis.util.iso.Types; +import org.apache.sis.internal.jaxb.LegacyNamespaces; import org.apache.sis.internal.metadata.Dependencies; import org.apache.sis.internal.metadata.LegacyPropertyAdapter; @@ -51,19 +52,19 @@ import org.apache.sis.internal.metadata. * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.3 * @module */ @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. -@XmlType(name = "CI_ResponsibleParty_Type", propOrder = { +@XmlType(name = "CI_ResponsibleParty_Type", namespace = LegacyNamespaces.GMD, propOrder = { "individualName", "organisationName", "positionName", "contactInfo", "role" }) -@XmlRootElement(name = "CI_ResponsibleParty") +@XmlRootElement(name = "CI_ResponsibleParty", namespace = LegacyNamespaces.GMD) public class DefaultResponsibleParty extends DefaultResponsibility implements ResponsibleParty { /** * Serial number for inter-operability with different versions. @@ -235,8 +236,8 @@ public class DefaultResponsibleParty ext */ @Override @Deprecated - @XmlElement(name = "individualName") @Dependencies("getParties") + @XmlElement(name = "individualName") public String getIndividualName() { final InternationalString name = getIndividual(false); return (name != null) ? name.toString() : null; @@ -356,12 +357,12 @@ public class DefaultResponsibleParty ext @Dependencies("getParties") public Contact getContactInfo() { final Collection<AbstractParty> parties = getParties(); - if (parties != null) { // May be null on marshalling. + if (parties != null) { // May be null on marshalling. for (final AbstractParty party : parties) { final Collection<? extends Contact> contacts = party.getContactInfo(); - if (contacts != null) { // May be null on marshalling. + if (contacts != null) { // May be null on marshalling. for (final Contact contact : contacts) { - if (contact != null) { // Paranoiac check. + if (contact != null) { // Paranoiac check. return contact; } } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -39,7 +39,7 @@ import org.apache.sis.util.iso.Types; * * @author Martin Desruisseaux (IRD, Geomatys) * @author Cédric Briançon (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -22,11 +22,14 @@ import java.util.Collections; import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.opengis.util.CodeList; -import org.opengis.annotation.UML; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.opengis.metadata.citation.Telephone; -import org.apache.sis.internal.util.CollectionsExt; import org.apache.sis.metadata.iso.ISOMetadata; +import org.apache.sis.internal.util.CollectionsExt; +import org.apache.sis.internal.jaxb.FilterByVersion; +import org.apache.sis.internal.jaxb.LegacyNamespaces; +import org.apache.sis.internal.jaxb.gco.StringAdapter; +import org.apache.sis.internal.jaxb.code.CI_TelephoneTypeCode; import org.apache.sis.internal.metadata.Dependencies; import static org.opengis.annotation.Obligation.OPTIONAL; @@ -34,6 +37,8 @@ import static org.opengis.annotation.Obl import static org.opengis.annotation.Specification.ISO_19115; // Branch-specific imports +import org.opengis.util.CodeList; +import org.opengis.annotation.UML; import org.apache.sis.internal.geoapi.evolution.InterimType; import org.apache.sis.internal.geoapi.evolution.UnsupportedCodeList; @@ -70,7 +75,8 @@ import org.apache.sis.internal.geoapi.ev * @author Martin Desruisseaux (IRD, Geomatys) * @author Cédric Briançon (Geomatys) * @author Rémi Maréchal (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * * @see DefaultContact#getPhones() * @@ -79,8 +85,10 @@ import org.apache.sis.internal.geoapi.ev */ @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. @XmlType(name = "CI_Telephone_Type", propOrder = { - "voices", - "facsimiles" + "number", // New in ISO 19115:2014 + "numberType", // Ibid. + "voices", // Legacy ISO 19115:2003 + "facsimiles" // Ibid. }) @XmlRootElement(name = "CI_Telephone") public class DefaultTelephone extends ISOMetadata implements Telephone { @@ -172,7 +180,8 @@ public class DefaultTelephone extends IS * * @since 0.5 */ -/// @XmlElement(name = "number", required = true) + @XmlElement(name = "number", required = true) + @XmlJavaTypeAdapter(StringAdapter.Since2014.class) @UML(identifier="number", obligation=MANDATORY, specification=ISO_19115) public String getNumber() { return number; @@ -203,9 +212,10 @@ public class DefaultTelephone extends IS * * @since 0.5 */ -/// @XmlElement(name = "numberType") - @UML(identifier="numberType", obligation=OPTIONAL, specification=ISO_19115) @InterimType(UnsupportedCodeList.class) + @XmlElement(name = "numberType") + @XmlJavaTypeAdapter(CI_TelephoneTypeCode.Since2014.class) + @UML(identifier="numberType", obligation=OPTIONAL, specification=ISO_19115) public CodeList<?> getNumberType() { return numberType; } @@ -319,10 +329,13 @@ public class DefaultTelephone extends IS */ @Override @Deprecated - @XmlElement(name = "voice") @Dependencies({"getNumber", "getNumberType"}) + @XmlElement(name = "voice", namespace = LegacyNamespaces.GMD) public final Collection<String> getVoices() { - return new LegacyTelephones(getOwner(), UnsupportedCodeList.VOICE); + if (FilterByVersion.LEGACY_METADATA.accept()) { + return new LegacyTelephones(getOwner(), UnsupportedCodeList.VOICE); + } + return null; } /** @@ -352,10 +365,13 @@ public class DefaultTelephone extends IS */ @Override @Deprecated - @XmlElement(name = "facsimile") @Dependencies({"getNumber", "getNumberType"}) + @XmlElement(name = "facsimile", namespace = LegacyNamespaces.GMD) public final Collection<String> getFacsimiles() { - return new LegacyTelephones(getOwner(), UnsupportedCodeList.FACSIMILE); + if (FilterByVersion.LEGACY_METADATA.accept()) { + return new LegacyTelephones(getOwner(), UnsupportedCodeList.FACSIMILE); + } + return null; // Marshalling newer ISO 19115-3 document. } /** Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -66,7 +66,7 @@ * Apache SIS provides a unified view of all metadata identifiers. This view includes the citation * {@linkplain org.apache.sis.metadata.iso.citation.DefaultCitation#getISBN() ISBN} and * {@linkplain org.apache.sis.metadata.iso.citation.DefaultCitation#getISSN() ISSN} codes, - * except at XML marshalling time (for ISO 19139 compliance). + * except at XML marshalling time (for ISO 19115-3 compliance). * See {@link org.apache.sis.xml.IdentifierMap} for more information. * * <div class="section">Null values, nil objects and collections</div> @@ -86,14 +86,17 @@ * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.7 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ -@XmlSchema(location=Schemas.METADATA_XSD, elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.GMD, xmlns = { - @XmlNs(prefix = "gmd", namespaceURI = Namespaces.GMD), - @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), - @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI) +@XmlSchema(location="http://standards.iso.org/iso/19115/-3/cit/1.0/cit.xsd", + elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.CIT, + xmlns = { + @XmlNs(prefix = "cit", namespaceURI = Namespaces.CIT), // Citation and responsible party information + @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC), // Metadata Common Classes + @XmlNs(prefix = "gmd", namespaceURI = LegacyNamespaces.GMD) }) @XmlAccessorType(XmlAccessType.NONE) @XmlJavaTypeAdapters({ @@ -110,11 +113,11 @@ @XmlJavaTypeAdapter(CI_Series.class), @XmlJavaTypeAdapter(CI_Telephone.class), @XmlJavaTypeAdapter(EX_Extent.class), + @XmlJavaTypeAdapter(GO_DateTime.class), + @XmlJavaTypeAdapter(MD_BrowseGraphic.class), @XmlJavaTypeAdapter(MD_Identifier.class), // Java types, primitive types and basic OGC types handling - @XmlJavaTypeAdapter(GO_URL.class), - @XmlJavaTypeAdapter(GO_DateTime.class), @XmlJavaTypeAdapter(StringAdapter.class), @XmlJavaTypeAdapter(InternationalStringAdapter.class) }) @@ -128,8 +131,7 @@ import javax.xml.bind.annotation.XmlAcce import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters; import org.apache.sis.xml.Namespaces; -import org.apache.sis.internal.jaxb.Schemas; +import org.apache.sis.internal.jaxb.LegacyNamespaces; import org.apache.sis.internal.jaxb.gco.*; -import org.apache.sis.internal.jaxb.gmd.*; import org.apache.sis.internal.jaxb.code.*; import org.apache.sis.internal.jaxb.metadata.*; Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -21,7 +21,7 @@ import javax.xml.bind.annotation.XmlType import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.opengis.annotation.UML; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.opengis.util.InternationalString; import org.opengis.metadata.citation.Citation; import org.opengis.metadata.identification.BrowseGraphic; @@ -30,9 +30,14 @@ import org.opengis.metadata.constraint.L import org.opengis.metadata.constraint.SecurityConstraints; import org.opengis.metadata.quality.Scope; import org.apache.sis.metadata.iso.citation.DefaultResponsibility; +import org.apache.sis.internal.jaxb.FilterByVersion; +import org.apache.sis.internal.jaxb.metadata.MD_Releasability; +import org.apache.sis.internal.jaxb.metadata.MD_Scope; import org.apache.sis.metadata.iso.ISOMetadata; import org.apache.sis.util.iso.Types; +// Branch-specific imports +import org.opengis.annotation.UML; import static org.opengis.annotation.Obligation.OPTIONAL; import static org.opengis.annotation.Specification.ISO_19115; @@ -53,19 +58,20 @@ import static org.opengis.annotation.Spe * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) * @author Rémi Maréchal (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. -@XmlType(name = "MD_Constraints_Type" /*, propOrder = { - "useLimitation", +@XmlType(name = "MD_Constraints_Type", propOrder = { + "useLimitations", "constraintApplicationScope", - "graphic", - "reference", - "releasability", - "responsibleParty" -} */) + "graphic", // New in ISO 19115:2014 + "reference", // Ibid. + "releasability", // Ibid. + "responsibleParty" // Ibid. +}) @XmlRootElement(name = "MD_Constraints") @XmlSeeAlso({ DefaultLegalConstraints.class, @@ -214,7 +220,8 @@ public class DefaultConstraints extends * * @since 0.5 */ -/// @XmlElement(name = "constraintApplicationScope") + @XmlElement(name = "constraintApplicationScope") + @XmlJavaTypeAdapter(MD_Scope.Since2014.class) @UML(identifier="constraintApplicationScope", obligation=OPTIONAL, specification=ISO_19115) public Scope getConstraintApplicationScope() { return constraintApplicationScope; @@ -239,7 +246,7 @@ public class DefaultConstraints extends * * @since 0.5 */ -/// @XmlElement(name = "graphic") + // @XmlElement at the end of this class. @UML(identifier="graphic", obligation=OPTIONAL, specification=ISO_19115) public Collection<BrowseGraphic> getGraphics() { return graphics = nonNullCollection(graphics, BrowseGraphic.class); @@ -264,7 +271,7 @@ public class DefaultConstraints extends * * @since 0.5 */ -/// @XmlElement(name = "reference") + // @XmlElement at the end of this class. @UML(identifier="reference", obligation=OPTIONAL, specification=ISO_19115) public Collection<Citation> getReferences() { return references = nonNullCollection(references, Citation.class); @@ -293,7 +300,8 @@ public class DefaultConstraints extends * * @since 0.5 */ -/// @XmlElement(name = "releasability") + @XmlElement(name = "releasability") + @XmlJavaTypeAdapter(MD_Releasability.Since2014.class) @UML(identifier="releasability", obligation=OPTIONAL, specification=ISO_19115) public DefaultReleasability getReleasability() { return releasability; @@ -328,7 +336,7 @@ public class DefaultConstraints extends * * @since 0.5 */ -/// @XmlElement(name = "responsibleParty") + // @XmlElement at the end of this class. @UML(identifier="responsibleParty", obligation=OPTIONAL, specification=ISO_19115) public Collection<DefaultResponsibility> getResponsibleParties() { return responsibleParties = nonNullCollection(responsibleParties, DefaultResponsibility.class); @@ -349,4 +357,38 @@ public class DefaultConstraints extends public void setResponsibleParties(final Collection<? extends DefaultResponsibility> newValues) { responsibleParties = writeCollection(newValues, responsibleParties, DefaultResponsibility.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. //////// + //////// //////// + ////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Invoked by JAXB at both marshalling and unmarshalling time. + * This attribute has been added by ISO 19115:2014 standard. + * If (and only if) marshalling an older standard version, we omit this attribute. + */ + @XmlElement(name = "graphic") + private Collection<BrowseGraphic> getGraphic() { + return FilterByVersion.CURRENT_METADATA.accept() ? getGraphics() : null; + } + + @XmlElement(name = "reference") + private Collection<Citation> getReference() { + return FilterByVersion.CURRENT_METADATA.accept() ? getReferences() : null; + } + + @XmlElement(name = "responsibleParty") + private Collection<DefaultResponsibility> getResponsibleParty() { + return FilterByVersion.CURRENT_METADATA.accept() ? getResponsibleParties() : null; + } } Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -51,7 +51,7 @@ import org.opengis.metadata.constraint.L * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -52,7 +52,7 @@ import static org.opengis.annotation.Spe * </ul> * * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @version 1.0 * @since 0.5 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -43,7 +43,7 @@ import org.opengis.metadata.constraint.S * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -63,17 +63,22 @@ * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.3 * @module */ -@XmlSchema(location=Schemas.METADATA_XSD, elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.GMD, xmlns = { - @XmlNs(prefix = "gmd", namespaceURI = Namespaces.GMD), - @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO), - @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI) +@XmlSchema(location="http://standards.iso.org/iso/19115/-3/mco/1.0/mco.xsd", + elementFormDefault=XmlNsForm.QUALIFIED, namespace=Namespaces.MCO, + xmlns = { + @XmlNs(prefix = "mco", namespaceURI = Namespaces.MCO), // Metadata for Constraints + @XmlNs(prefix = "mcc", namespaceURI = Namespaces.MCC) // Metadata Common Classes }) @XmlAccessorType(XmlAccessType.NONE) @XmlJavaTypeAdapters({ + @XmlJavaTypeAdapter(CI_Citation.class), + @XmlJavaTypeAdapter(CI_Responsibility.class), + @XmlJavaTypeAdapter(MD_BrowseGraphic.class), @XmlJavaTypeAdapter(MD_ClassificationCode.class), @XmlJavaTypeAdapter(MD_RestrictionCode.class), @XmlJavaTypeAdapter(InternationalStringAdapter.class) @@ -88,6 +93,6 @@ import javax.xml.bind.annotation.XmlAcce import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters; import org.apache.sis.xml.Namespaces; -import org.apache.sis.internal.jaxb.Schemas; import org.apache.sis.internal.jaxb.gco.*; import org.apache.sis.internal.jaxb.code.*; +import org.apache.sis.internal.jaxb.metadata.*; Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/AbstractContentInformation.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/AbstractContentInformation.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/AbstractContentInformation.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/AbstractContentInformation.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -40,13 +40,13 @@ import org.apache.sis.metadata.iso.ISOMe * @author Martin Desruisseaux (IRD, Geomatys) * @author Touraïvane (IRD) * @author Cédric Briançon (Geomatys) - * @version 0.3 + * @version 1.0 * @since 0.3 * @module */ @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. @XmlType(name = "AbstractMD_ContentInformation_Type") -@XmlRootElement(name = "MD_ContentInformation") +@XmlRootElement(name = "AbstractMD_ContentInformation") @XmlSeeAlso({ DefaultCoverageDescription.class, DefaultFeatureCatalogueDescription.class Modified: sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java URL: http://svn.apache.org/viewvc/sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java?rev=1825355&r1=1825354&r2=1825355&view=diff ============================================================================== --- sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java [UTF-8] (original) +++ sis/trunk/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java [UTF-8] Mon Feb 26 11:28:17 2018 @@ -58,14 +58,15 @@ import static org.opengis.annotation.Spe * * @author Rémi Maréchal (Geomatys) * @author Martin Desruisseaux (Geomatys) - * @version 0.5 + * @author Cullen Rombach (Image Matters) + * @version 1.0 * @since 0.5 * @module */ @SuppressWarnings("CloneableClassWithoutClone") // ModifiableMetadata needs shallow clones. @XmlType(name = "MD_AttributeGroup_Type", propOrder = { - "contentType", - "attribute" + "contentTypes", + "attributes" }) @XmlRootElement(name = "MD_AttributeGroup") @UML(identifier="MD_AttributeGroup", specification=ISO_19115)
