sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1459748 - in /sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso: ./ acquisition/ citation/ distribution/ extent/ identification/ lineage/ maintenance/ quality/ spatial/
Date Fri, 22 Mar 2013 12:46:54 GMT
Author: desruisseaux
Date: Fri Mar 22 12:46:53 2013
New Revision: 1459748

URL: http://svn.apache.org/r1459748
Log:
Completed the citation package.

Added:
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java   (with props)
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java   (with props)
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java   (with props)
Modified:
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java
    sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -18,10 +18,13 @@ package org.apache.sis.metadata.iso;
 
 import java.util.Collection;
 import java.io.Serializable;
-import org.opengis.metadata.Identifier;
 import net.jcip.annotations.ThreadSafe;
+import org.opengis.metadata.Identifier;
+import org.apache.sis.xml.IdentifierMap;
+import org.apache.sis.xml.IdentifiedObject;
 import org.apache.sis.metadata.MetadataStandard;
 import org.apache.sis.metadata.ModifiableMetadata;
+import org.apache.sis.internal.jaxb.IdentifierMapWithSpecialCases;
 
 
 /**
@@ -34,7 +37,7 @@ import org.apache.sis.metadata.Modifiabl
  * @module
  */
 @ThreadSafe
-public class ISOMetadata extends ModifiableMetadata implements Serializable {
+public class ISOMetadata extends ModifiableMetadata implements IdentifiedObject, Serializable {
     /**
      * Serial number for inter-operability with different versions.
      */
@@ -47,6 +50,14 @@ public class ISOMetadata extends Modifia
     protected Collection<Identifier> identifiers;
 
     /**
+     * The {@linkplain #getIdentifierMap() identifier map} as a wrapper around the
+     * {@linkplain #identifiers} collection. This map is created only when first needed.
+     *
+     * @see #getIdentifierMap()
+     */
+    private transient IdentifierMap identifierMap;
+
+    /**
      * Constructs an initially empty metadata.
      */
     protected ISOMetadata() {
@@ -61,4 +72,31 @@ public class ISOMetadata extends Modifia
     public MetadataStandard getStandard() {
         return MetadataStandard.ISO_19115;
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public synchronized Collection<Identifier> getIdentifiers() {
+        return identifiers = nonNullCollection(identifiers, Identifier.class);
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * <p>The default implementation returns a wrapper around the {@linkplain #identifiers} list.
+     * That map is <cite>live</cite>: changes in the identifiers list will be reflected in the map,
+     * and conversely.</p>
+     */
+    @Override
+    public synchronized IdentifierMap getIdentifierMap() {
+        if (identifierMap == null) {
+            final Collection<Identifier> identifiers = getIdentifiers();
+            if (identifiers == null) {
+                return IdentifierMapWithSpecialCases.EMPTY;
+            }
+            identifierMap = new IdentifierMapWithSpecialCases(identifiers);
+        }
+        return identifierMap;
+    }
 }

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.acquisition.DefaultAcquisitionInformation Acquisition} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.constraint OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.acquisition OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * {@section Overview}

Added: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java?rev=1459748&view=auto
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java (added)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -0,0 +1,221 @@
+/*
+ * 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.citation;
+
+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.util.InternationalString;
+import org.opengis.metadata.citation.Address;
+import org.apache.sis.metadata.iso.ISOMetadata;
+
+
+/**
+ * Location of the responsible individual or organization.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "CI_Address_Type", propOrder = {
+    "deliveryPoints",
+    "city",
+    "administrativeArea",
+    "postalCode",
+    "country",
+    "electronicMailAddresses"
+})
+@XmlRootElement(name = "CI_Address")
+public class DefaultAddress extends ISOMetadata implements Address {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = 2278687294173262546L;
+
+    /**
+     * State, province of the location.
+     */
+    private InternationalString administrativeArea;
+
+    /**
+     * The city of the location
+     */
+    private InternationalString city;
+
+   /**
+     * Country of the physical address.
+     */
+    private InternationalString country;
+
+    /**
+     * ZIP or other postal code.
+     */
+    private String postalCode;
+
+    /**
+     * Address line for the location (as described in ISO 11180, Annex A).
+     */
+    private Collection<String> deliveryPoints;
+
+    /**
+     * Address of the electronic mailbox of the responsible organization or individual.
+     */
+    private Collection<String> electronicMailAddresses;
+
+    /**
+     * Constructs an initially empty address.
+     */
+    public DefaultAddress() {
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultAddress castOrCopy(final Address object) {
+        if (object == null || object instanceof DefaultAddress) {
+            return (DefaultAddress) object;
+        }
+        final DefaultAddress copy = new DefaultAddress();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Return the state, province of the location.
+     */
+    @Override
+    @XmlElement(name = "administrativeArea")
+    public synchronized InternationalString getAdministrativeArea() {
+        return administrativeArea;
+    }
+
+    /**
+     * Sets the state, province of the location.
+     *
+     * @param newValue The new administrative area.
+     */
+    public synchronized void setAdministrativeArea(final InternationalString newValue) {
+        checkWritePermission();
+        administrativeArea = newValue;
+    }
+
+    /**
+     * Returns the city of the location.
+     */
+    @Override
+    @XmlElement(name = "city")
+    public synchronized InternationalString getCity() {
+        return city;
+    }
+
+    /**
+     * Sets the city of the location.
+     *
+     * @param newValue The new city, or {@code null} if none.
+     */
+    public synchronized void setCity(final InternationalString newValue) {
+        checkWritePermission();
+        city = newValue;
+    }
+
+    /**
+     * Returns the country of the physical address.
+     */
+    @Override
+    @XmlElement(name = "country")
+    public synchronized InternationalString getCountry() {
+        return country;
+    }
+
+    /**
+     * Sets the country of the physical address.
+     *
+     * @param newValue The new country, or {@code null} if none.
+     */
+    public synchronized void setCountry(final InternationalString newValue) {
+        checkWritePermission();
+        country = newValue;
+    }
+
+    /**
+     * Returns the address line for the location (as described in ISO 11180, Annex A).
+     */
+    @Override
+    @XmlElement(name = "deliveryPoint")
+    public synchronized Collection<String> getDeliveryPoints() {
+        return deliveryPoints = nonNullCollection(deliveryPoints, String.class);
+    }
+
+    /**
+     * Sets the address line for the location (as described in ISO 11180, Annex A).
+     *
+     * @param newValues The new delivery points, or {@code null} if none.
+     */
+    public synchronized void setDeliveryPoints(final Collection<? extends String> newValues) {
+        deliveryPoints = copyCollection(newValues, deliveryPoints, String.class);
+    }
+
+    /**
+     * Returns the address of the electronic mailbox of the responsible organization or individual.
+     */
+    @Override
+    @XmlElement(name = "electronicMailAddress")
+    public synchronized Collection<String> getElectronicMailAddresses() {
+        return electronicMailAddresses = nonNullCollection(electronicMailAddresses, String.class);
+    }
+
+    /**
+     * Sets the address of the electronic mailbox of the responsible organization or individual.
+     *
+     * @param newValues The new electronic mail addresses, or {@code null} if none.
+     */
+    public synchronized void setElectronicMailAddresses(final Collection<? extends String> newValues) {
+        electronicMailAddresses = copyCollection(newValues, electronicMailAddresses, String.class);
+    }
+
+    /**
+     * Returns ZIP or other postal code.
+     */
+    @Override
+    @XmlElement(name = "postalCode")
+    public synchronized String getPostalCode() {
+        return postalCode;
+    }
+
+    /**
+     * Sets ZIP or other postal code.
+     *
+     * @param newValue The new postal code, or {@code null} if none.
+     */
+    public synchronized void setPostalCode(final String newValue) {
+        checkWritePermission();
+        postalCode = newValue;
+    }
+}

Propchange: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultAddress.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -18,6 +18,9 @@ package org.apache.sis.metadata.iso.cita
 
 import java.util.Date;
 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.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.CitationDate;
@@ -25,18 +28,47 @@ import org.opengis.metadata.citation.Pre
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.citation.Series;
 import org.opengis.util.InternationalString;
+import org.apache.sis.util.iso.Types;
+import org.apache.sis.util.iso.SimpleInternationalString;
+import org.apache.sis.util.collection.CollectionsExt;
+import org.apache.sis.internal.jaxb.NonMarshalledAuthority;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.xml.IdentifierSpace;
+
+import static org.apache.sis.internal.jaxb.MarshalContext.filterIdentifiers;
 
 
 /**
  * Standardized resource reference.
  *
+ * {@section Unified identifiers view}
+ * 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).
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Cédric Briançon (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
  * @version 0.3
  * @module
  */
+@XmlType(name = "CI_Citation_Type", propOrder = {
+    "title",
+    "alternateTitles",
+    "dates",
+    "edition",
+    "editionDate",
+    "identifiers",
+    "citedResponsibleParties",
+    "presentationForms",
+    "series",
+    "otherCitationDetails",
+    "collectiveTitle",
+    "ISBN",
+    "ISSN"
+})
+@XmlRootElement(name = "CI_Citation")
 public class DefaultCitation extends ISOMetadata implements Citation {
     /**
      * Serial number for inter-operability with different versions.
@@ -44,6 +76,26 @@ public class DefaultCitation extends ISO
     private static final long serialVersionUID = 2595269795652984755L;
 
     /**
+     * The authority for International Standard Book Number.
+     *
+     * <p><b>Implementation note:</b> This field is read by reflection in
+     * {@link org.apache.sis.internal.jaxb.NonMarshalledAuthority}. IF this
+     * field is renamed or moved, then {@code NonMarshalledAuthority} needs
+     * to be updated.</p>
+     */
+    static final IdentifierSpace<String> ISBN = new NonMarshalledAuthority<>("ISBN", NonMarshalledAuthority.ISBN);
+
+    /**
+     * The authority for International Standard Serial Number.
+     *
+     * <p><b>Implementation note:</b> This field is read by reflection in
+     * {@link org.apache.sis.internal.jaxb.NonMarshalledAuthority}. IF this
+     * field is renamed or moved, then {@code NonMarshalledAuthority} needs
+     * to be updated.</p>
+     */
+    static final IdentifierSpace<String> ISSN = new NonMarshalledAuthority<>("ISSN", NonMarshalledAuthority.ISSN);
+
+    /**
      * Name by which the cited resource is known.
      */
     private InternationalString title;
@@ -72,12 +124,12 @@ public class DefaultCitation extends ISO
 
     /**
      * Name and position information for an individual or organization that is responsible
-     * for the resource. Returns an empty string if there is none.
+     * for the resource. Returns an empty collection if there is none.
      */
     private Collection<ResponsibleParty> citedResponsibleParties;
 
     /**
-     * Mode in which the resource is represented, or an empty string if none.
+     * Mode in which the resource is represented, or an empty collection if none.
      */
     private Collection<PresentationForm> presentationForms;
 
@@ -108,9 +160,70 @@ public class DefaultCitation extends ISO
     }
 
     /**
+     * Constructs a citation with the specified title.
+     *
+     * @param title The title as a {@link String} or an {@link InternationalString} object,
+     *        or {@code null} if none.
+     */
+    public DefaultCitation(final CharSequence title) {
+        this(); // Initialize the date field.
+        this.title = Types.toInternationalString(title);
+    }
+
+    /**
+     * Constructs a citation with the specified responsible party.
+     * This convenience constructor initializes the citation title
+     * to the first non-null of the following properties:
+     * {@linkplain DefaultResponsibleParty#getOrganisationName() organisation name},
+     * {@linkplain DefaultResponsibleParty#getPositionName() position name} or
+     * {@linkplain DefaultResponsibleParty#getIndividualName() individual name}.
+     *
+     * @param party The name and position information for an individual or organization that is
+     *              responsible for the resource, or {@code null} if none.
+     */
+    public DefaultCitation(final ResponsibleParty party) {
+        this(); // Initialize the date field.
+        if (party != null) {
+            citedResponsibleParties = singleton(ResponsibleParty.class, party);
+            title = party.getOrganisationName();
+            if (title == null) {
+                title = party.getPositionName();
+                if (title == null) {
+                    String name = party.getIndividualName();
+                    if (name != null) {
+                        title = new SimpleInternationalString(name);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultCitation castOrCopy(final Citation object) {
+        if (object == null || object instanceof DefaultCitation) {
+            return (DefaultCitation) object;
+        }
+        final DefaultCitation copy = new DefaultCitation();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
      * Returns the name by which the cited resource is known.
      */
     @Override
+    @XmlElement(name = "title", required = true)
     public synchronized InternationalString getTitle() {
         return title;
     }
@@ -118,7 +231,7 @@ public class DefaultCitation extends ISO
     /**
      * Sets the name by which the cited resource is known.
      *
-     * @param newValue The new title.
+     * @param newValue The new title, or {@code null} if none.
      */
     public synchronized void setTitle(final InternationalString newValue) {
         checkWritePermission();
@@ -127,9 +240,10 @@ public class DefaultCitation extends ISO
 
     /**
      * Returns the short name or other language name by which the cited information is known.
-     * Example: "DCW" as an alternative title for "Digital Chart of the World".
+     * Example: "DCW" as an alternative title for "<cite>Digital Chart of the World</cite>".
      */
     @Override
+    @XmlElement(name = "alternateTitle")
     public synchronized Collection<InternationalString> getAlternateTitles() {
         return alternateTitles = nonNullCollection(alternateTitles, InternationalString.class);
     }
@@ -137,7 +251,7 @@ public class DefaultCitation extends ISO
     /**
      * Sets the short name or other language name by which the cited information is known.
      *
-     * @param newValues The new alternate titles.
+     * @param newValues The new alternate titles, or {@code null} if none.
      */
     public synchronized void setAlternateTitles(final Collection<? extends InternationalString> newValues) {
         alternateTitles = copyCollection(newValues, alternateTitles, InternationalString.class);
@@ -147,6 +261,7 @@ public class DefaultCitation extends ISO
      * Returns the reference date for the cited resource.
      */
     @Override
+    @XmlElement(name = "date", required = true)
     public synchronized Collection<CitationDate> getDates() {
         return dates = nonNullCollection(dates, CitationDate.class);
     }
@@ -154,7 +269,7 @@ public class DefaultCitation extends ISO
     /**
      * Sets the reference date for the cited resource.
      *
-     * @param newValues The new dates.
+     * @param newValues The new dates, or {@code null} if none.
      */
     public synchronized void setDates(final Collection<? extends CitationDate> newValues) {
         dates = copyCollection(newValues, dates, CitationDate.class);
@@ -164,6 +279,7 @@ public class DefaultCitation extends ISO
      * Returns the version of the cited resource.
      */
     @Override
+    @XmlElement(name = "edition")
     public synchronized InternationalString getEdition() {
         return edition;
     }
@@ -171,7 +287,7 @@ public class DefaultCitation extends ISO
     /**
      * Sets the version of the cited resource.
      *
-     * @param newValue The new edition.
+     * @param newValue The new edition, or {@code null} if none.
      */
     public synchronized void setEdition(final InternationalString newValue) {
         checkWritePermission();
@@ -179,17 +295,18 @@ public class DefaultCitation extends ISO
     }
 
     /**
-     * Returns the date of the edition, or {@code null} if none.
+     * Returns the date of the edition.
      */
     @Override
+    @XmlElement(name = "editionDate")
     public synchronized Date getEditionDate() {
         return (editionDate != Long.MIN_VALUE) ? new Date(editionDate) : null;
     }
 
     /**
-     * Sets the date of the edition, or {@code null} if none.
+     * Sets the date of the edition.
      *
-     * @param newValue The new edition date.
+     * @param newValue The new edition date, or {@code null} if none.
      */
     public synchronized void setEditionDate(final Date newValue) {
         checkWritePermission();
@@ -197,62 +314,92 @@ public class DefaultCitation extends ISO
     }
 
     /**
-     * Returns the unique identifier for the resource. Example: Universal Product Code (UPC),
-     * National Stock Number (NSN).
+     * Returns the unique identifier for the resource.
+     * Example: Universal Product Code (UPC), National Stock Number (NSN).
+     *
+     * {@section Unified identifiers view}
+     * In this SIS implementation, the collection returned by this method includes the
+     * {@linkplain #getISBN() ISBN} and {@linkplain #getISSN() ISSN} codes
+     * (except at XML marshalling time for ISO 19139 compliance).
      */
     @Override
+    @XmlElement(name = "identifier")
     public Collection<Identifier> getIdentifiers() {
-        return java.util.Collections.emptyList(); // TODO: Not yet implemented on intend.
+        identifiers = nonNullCollection(identifiers, Identifier.class);
+        return filterIdentifiers(identifiers);
+    }
+
+    /**
+     * Sets the unique identifier for the resource.
+     * Example: Universal Product Code (UPC), National Stock Number (NSN).
+     *
+     * <p>The following exceptions apply:</p>
+     * <ul>
+     *   <li>This method does not set the {@linkplain #getISBN() ISBN} and {@linkplain #getISSN() ISSN}
+     *       codes, even if they are included in the given collection. The ISBN/ISSN codes shall be set
+     *       by the {@link #setISBN(String)} or {@link #setISSN(String)} methods, for compliance with
+     *       the ISO 19115 model.</li>
+     *   <li>The {@linkplain IdentifierSpace XML identifiers} ({@linkplain IdentifierSpace#ID ID},
+     *       {@linkplain IdentifierSpace#UUID UUID}, <i>etc.</i>) are ignored because.</li>
+     * </ul>
+     *
+     * @param newValues The new identifiers, or {@code null} if none.
+     */
+    public synchronized void setIdentifiers(final Collection<? extends Identifier> newValues) {
+        final Collection<Identifier> oldIds = NonMarshalledAuthority.getIdentifiers(identifiers);
+        identifiers = copyCollection(newValues, identifiers, Identifier.class);
+        NonMarshalledAuthority.setIdentifiers(identifiers, oldIds);
     }
 
     /**
      * Returns the name and position information for an individual or organization that is
-     * responsible for the resource. Returns an empty string if there is none.
+     * responsible for the resource.
      */
     @Override
+    @XmlElement(name = "citedResponsibleParty")
     public synchronized Collection<ResponsibleParty> getCitedResponsibleParties() {
         return citedResponsibleParties = nonNullCollection(citedResponsibleParties, ResponsibleParty.class);
     }
 
     /**
      * Sets the name and position information for an individual or organization that is responsible
-     * for the resource. Returns an empty string if there is none.
+     * for the resource.
      *
-     * @param newValues The new cited responsible parties.
+     * @param newValues The new cited responsible parties, or {@code null} if none.
      */
     public synchronized void setCitedResponsibleParties(final Collection<? extends ResponsibleParty> newValues) {
         citedResponsibleParties = copyCollection(newValues, citedResponsibleParties, ResponsibleParty.class);
     }
 
     /**
-     * Returns the mode in which the resource is represented, or an empty string if none.
+     * Returns the mode in which the resource is represented.
      */
     @Override
+    @XmlElement(name = "presentationForm")
     public synchronized Collection<PresentationForm> getPresentationForms() {
         return presentationForms = nonNullCollection(presentationForms, PresentationForm.class);
     }
 
     /**
-     * Sets the mode in which the resource is represented, or an empty string if none.
+     * Sets the mode in which the resource is represented.
      *
-     * @param newValues The new presentation form.
+     * @param newValues The new presentation form, or {@code null} if none.
      */
     public synchronized void setPresentationForms(final Collection<? extends PresentationForm> newValues) {
         presentationForms = copyCollection(newValues, presentationForms, PresentationForm.class);
     }
 
     /**
-     * Returns the information about the series, or aggregate dataset, of which the dataset is
-     * a part. Returns {@code null} if none.
+     * Returns the information about the series, or aggregate dataset, of which the dataset is a part.
      */
     @Override
+    @XmlElement(name = "series")
     public synchronized Series getSeries() {
         return series;
     }
 
     /**
-     * Sets the information about the series, or aggregate dataset, of which the dataset is
-     * a part. Set to {@code null} if none.
+     * Sets the information about the series, or aggregate dataset, of which the dataset is a part.
      *
      * @param newValue The new series.
      */
@@ -263,18 +410,17 @@ public class DefaultCitation extends ISO
 
     /**
      * Returns other information required to complete the citation that is not recorded elsewhere.
-     * Returns {@code null} if none.
      */
     @Override
+    @XmlElement(name = "otherCitationDetails")
     public synchronized InternationalString getOtherCitationDetails() {
         return otherCitationDetails;
     }
 
     /**
      * Sets other information required to complete the citation that is not recorded elsewhere.
-     * Sets to {@code null} if none.
      *
-     * @param newValue Other citations details.
+     * @param newValue Other citations details, or {@code null} if none.
      */
     public synchronized void setOtherCitationDetails(final InternationalString newValue) {
         checkWritePermission();
@@ -284,19 +430,19 @@ public class DefaultCitation extends ISO
     /**
      * Returns the common title with holdings note. Note: title identifies elements of a series
      * collectively, combined with information about what volumes are available at the
-     * source cited. Returns {@code null} if there is no title.
+     * source cited.
      */
     @Override
+    @XmlElement(name = "collectiveTitle")
     public synchronized InternationalString getCollectiveTitle() {
         return collectiveTitle;
     }
 
     /**
-     * Sets the common title with holdings note. Note: title identifies elements of a series
-     * collectively, combined with information about what volumes are available at the
-     * source cited. Set to {@code null} if there is no title.
+     * Sets the common title with holdings note. This title identifies elements of a series
+     * collectively, combined with information about what volumes are available at the source cited.
      *
-     * @param newValue The new collective title.
+     * @param newValue The new collective title, or {@code null} if none.
      */
     public synchronized void setCollectiveTitle(final InternationalString newValue) {
         checkWritePermission();
@@ -304,18 +450,68 @@ public class DefaultCitation extends ISO
     }
 
     /**
-     * Returns the International Standard Book Number, or {@code null} if none.
+     * Returns the International Standard Book Number.
+     * In this SIS implementation, invoking this method is equivalent to:
+     *
+     * {@preformat java
+     *   return getIdentifierMap().getSpecialized(Citations.ISBN);
+     * }
+     *
+     * @see Citations#ISBN
      */
     @Override
+    @XmlElement(name = "ISBN")
     public synchronized String getISBN() {
-        return null; // Not yet implemented on intend.
+        return CollectionsExt.isNullOrEmpty(identifiers) ? null : getIdentifierMap().getSpecialized(ISBN);
     }
 
     /**
-     * Returns the International Standard Serial Number, or {@code null} if none.
+     * Sets the International Standard Book Number.
+     * In this SIS implementation, invoking this method is equivalent to:
+     *
+     * {@preformat java
+     *   getIdentifierMap().putSpecialized(Citations.ISBN, newValue);
+     * }
+     *
+     * @param newValue The new ISBN, or {@code null} if none.
+     */
+    public synchronized void setISBN(final String newValue) {
+        checkWritePermission();
+        if (newValue != null || !CollectionsExt.isNullOrEmpty(identifiers)) {
+            getIdentifierMap().putSpecialized(ISBN, newValue);
+        }
+    }
+
+    /**
+     * Returns the International Standard Serial Number.
+     * In this SIS implementation, invoking this method is equivalent to:
+     *
+     * {@preformat java
+     *   return getIdentifierMap().getSpecialized(Citations.ISSN);
+     * }
+     *
+     * @see Citations#ISSN
      */
     @Override
+    @XmlElement(name = "ISSN")
     public synchronized String getISSN() {
-        return null; // Not yet implemented on intend.
+        return CollectionsExt.isNullOrEmpty(identifiers) ? null : getIdentifierMap().getSpecialized(ISSN);
+    }
+
+    /**
+     * Sets the International Standard Serial Number.
+     * In this SIS implementation, invoking this method is equivalent to:
+     *
+     * {@preformat java
+     *   getIdentifierMap().putSpecialized(Citations.ISSN, newValue);
+     * }
+     *
+     * @param newValue The new ISSN.
+     */
+    public synchronized void setISSN(final String newValue) {
+        checkWritePermission();
+        if (newValue != null || !CollectionsExt.isNullOrEmpty(identifiers)) {
+            getIdentifierMap().putSpecialized(ISSN, newValue);
+        }
     }
 }

Added: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java?rev=1459748&view=auto
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java (added)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -0,0 +1,135 @@
+/*
+ * 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.citation;
+
+import java.util.Date;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import org.opengis.metadata.citation.CitationDate;
+import org.opengis.metadata.citation.DateType;
+import org.apache.sis.metadata.iso.ISOMetadata;
+
+
+/**
+ * Reference date and event used to describe it.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "CI_Date_Type", propOrder = {
+    "date",
+    "dateType"
+})
+@XmlRootElement(name = "CI_Date")
+public class DefaultCitationDate extends ISOMetadata implements CitationDate {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = -2884791484254008454L;
+
+    /**
+     * Reference date for the cited resource in milliseconds elapsed sine January 1st, 1970,
+     * or {@link Long#MIN_VALUE} if none.
+     */
+    private long date;
+
+    /**
+     * Event used for reference date.
+     */
+    private DateType dateType;
+
+    /**
+     * Constructs an initially empty citation date.
+     */
+    public DefaultCitationDate() {
+        date = Long.MIN_VALUE;
+    }
+
+    /**
+     * Constructs a citation date initialized to the given date.
+     *
+     * @param date     The reference date for the cited resource.
+     * @param dateType The event used for reference date.
+     */
+    public DefaultCitationDate(final Date date, final DateType dateType) {
+        this.date = (date != null) ? date.getTime() : Long.MIN_VALUE;
+        this.dateType = dateType;
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultCitationDate castOrCopy(final CitationDate object) {
+        if (object == null || object instanceof DefaultCitationDate) {
+            return (DefaultCitationDate) object;
+        }
+        final DefaultCitationDate copy = new DefaultCitationDate();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the reference date for the cited resource.
+     */
+    @Override
+    @XmlElement(name = "date", required = true)
+    public synchronized Date getDate() {
+        return (date != Long.MIN_VALUE) ? new Date(date) : null;
+    }
+
+    /**
+     * Sets the reference date for the cited resource.
+     *
+     * @param newValue The new date.
+     */
+    public synchronized void setDate(final Date newValue) {
+        checkWritePermission();
+        date = (newValue != null) ? newValue.getTime() : Long.MIN_VALUE;
+    }
+
+    /**
+     * Returns the event used for reference date.
+     */
+    @Override
+    @XmlElement(name = "dateType", required = true)
+    public synchronized DateType getDateType() {
+        return dateType;
+    }
+
+    /**
+     * Sets the event used for reference date.
+     *
+     * @param newValue The new event.
+     */
+    public synchronized void setDateType(final DateType newValue) {
+        checkWritePermission();
+        dateType = newValue;
+    }
+}

Propchange: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultContact.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -16,47 +16,197 @@
  */
 package org.apache.sis.metadata.iso.citation;
 
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.Address;
 import org.opengis.metadata.citation.Contact;
-import org.opengis.metadata.citation.OnlineResource;
 import org.opengis.metadata.citation.Telephone;
-import org.opengis.util.InternationalString;
+import org.opengis.metadata.citation.OnlineResource;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
-public class DefaultContact extends ISOMetadata implements Contact {
 
+/**
+ * Information required to enable contact with the responsible person and/or organization.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "CI_Contact_Type", propOrder = {
+    "phone",
+    "address",
+    "onlineResource",
+    "hoursOfService",
+    "contactInstructions"
+})
+@XmlRootElement(name = "CI_Contact")
+public class DefaultContact extends ISOMetadata implements Contact {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = 3283637180253117382L;
+
+    /**
+     * Telephone numbers at which the organization or individual may be contacted.
+     */
     private Telephone phone;
 
+    /**
+     * Physical and email address at which the organization or individual may be contacted.
+     */
     private Address address;
 
+    /**
+     * On-line information that can be used to contact the individual or organization.
+     */
     private OnlineResource onlineResource;
 
+    /**
+     * Time period (including time zone) when individuals can contact the organization or individual.
+     */
     private InternationalString hoursOfService;
 
+    /**
+     * Supplemental instructions on how or when to contact the individual or organization.
+     */
     private InternationalString contactInstructions;
 
+    /**
+     * Constructs an initially empty contact.
+     */
+    public DefaultContact() {
+    }
+
+    /**
+     * Constructs a contact initialized to the specified online resource.
+     *
+     * @param resource The on-line information that can be used to contact the individual or
+     *        organization, or {@code null} if none.
+     */
+    public DefaultContact(final OnlineResource resource) {
+        this.onlineResource = resource;
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultContact castOrCopy(final Contact object) {
+        if (object == null || object instanceof DefaultContact) {
+            return (DefaultContact) object;
+        }
+        final DefaultContact copy = new DefaultContact();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns telephone numbers at which the organization or individual may be contacted.
+     */
     @Override
-    public Telephone getPhone() {
+    @XmlElement(name = "phone")
+    public synchronized Telephone getPhone() {
         return phone;
     }
 
+    /**
+     * Sets telephone numbers at which the organization or individual may be contacted.
+     *
+     * @param newValue The new telephone, or {@code null} if none.
+     */
+    public synchronized void setPhone(final Telephone newValue) {
+        checkWritePermission();
+        phone = newValue;
+    }
+
+    /**
+     * Returns the physical and email address at which the organization or individual may be contacted.
+     */
     @Override
-    public Address getAddress() {
+    @XmlElement(name = "address")
+    public synchronized Address getAddress() {
         return address;
     }
 
+    /**
+     * Sets the physical and email address at which the organization or individual may be contacted.
+     *
+     * @param newValue The new address, or {@code null} if none.
+     */
+    public synchronized void setAddress(final Address newValue) {
+        checkWritePermission();
+        address = newValue;
+    }
+
+    /**
+     * Return on-line information that can be used to contact the individual or organization.
+     */
     @Override
-    public OnlineResource getOnlineResource() {
+    @XmlElement(name = "onlineResource")
+    public synchronized OnlineResource getOnlineResource() {
         return onlineResource;
     }
 
+    /**
+     * Sets on-line information that can be used to contact the individual or organization.
+     *
+     * @param newValue The new online resource, or {@code null} if none.
+     */
+    public synchronized void setOnlineResource(final OnlineResource newValue) {
+        checkWritePermission();
+        onlineResource = newValue;
+    }
+
+    /**
+     * Returns the time period (including time zone) when individuals can contact the organization
+     * or individual.
+     */
     @Override
-    public InternationalString getHoursOfService() {
+    @XmlElement(name = "hoursOfService")
+    public synchronized InternationalString getHoursOfService() {
         return hoursOfService;
     }
 
+    /**
+     * Sets time period (including time zone) when individuals can contact the organization or
+     * individual.
+     *
+     * @param newValue The new hours of service, or {@code null} if none.
+     */
+    public synchronized void setHoursOfService(final InternationalString newValue) {
+        checkWritePermission();
+        hoursOfService = newValue;
+    }
+
+    /**
+     * Returns supplemental instructions on how or when to contact the individual or organization.
+     */
     @Override
-    public InternationalString getContactInstructions() {
+    @XmlElement(name = "contactInstructions")
+    public synchronized InternationalString getContactInstructions() {
         return contactInstructions;
     }
+
+    /**
+     * Sets supplemental instructions on how or when to contact the individual or organization.
+     *
+     * @param newValue The new contact instructions, or {@code null} if none.
+     */
+    public synchronized void setContactInstructions(final InternationalString newValue) {
+        checkWritePermission();
+        contactInstructions = newValue;
+    }
 }

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,52 +17,223 @@
 package org.apache.sis.metadata.iso.citation;
 
 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.util.InternationalString;
 import org.opengis.metadata.citation.OnLineFunction;
 import org.opengis.metadata.citation.OnlineResource;
-import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
-public class DefaultOnlineResource extends ISOMetadata implements OnlineResource {
 
+/**
+ * Information about on-line sources from which the dataset, specification, or
+ * community profile name and extended metadata elements can be obtained.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "CI_OnlineResource_Type", propOrder = {
+    "linkage",
+    "protocol",
+    "applicationProfile",
+    "name",
+    "description",
+    "function"
+})
+@XmlRootElement(name = "CI_OnlineResource")
+public class DefaultOnlineResource extends ISOMetadata implements OnlineResource {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = 5412370008274334799L;
+
+    /**
+     * Location (address) for on-line access using a Uniform Resource Locator address or
+     * similar addressing scheme such as "{@code http://www.statkart.no/isotc211}".
+     */
     private URI linkage;
 
+    /**
+     * The connection protocol to be used.
+     */
     private String protocol;
 
+    /**
+     * Name of an application profile that can be used with the online resource.
+     */
     private String applicationProfile;
 
+    /**
+     * Name of the online resources.
+     */
     private String name;
 
+    /**
+     * Detailed text description of what the online resource is/does.
+     */
     private InternationalString description;
 
+    /**
+     * Code for function performed by the online resource.
+     */
     private OnLineFunction function;
 
+    /**
+     * Creates an initially empty on line resource.
+     */
+    public DefaultOnlineResource() {
+    }
+
+    /**
+     * Creates an on line resource initialized to the given URI.
+     *
+     * @param linkage The location for on-line access using a Uniform Resource Locator address,
+     *        or {@code null} if none.
+     */
+    public DefaultOnlineResource(final URI linkage) {
+        this.linkage = linkage;
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultOnlineResource castOrCopy(final OnlineResource object) {
+        if (object == null || object instanceof DefaultOnlineResource) {
+            return (DefaultOnlineResource) object;
+        }
+        final DefaultOnlineResource copy = new DefaultOnlineResource();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the name of an application profile that can be used with the online resource.
+     * Returns {@code null} if none.
+     */
     @Override
-    public synchronized URI getLinkage() {
-        return linkage;
-    }
-
-    @Override
-    public synchronized String getProtocol() {
-        return protocol;
-    }
-
-    @Override
+    @XmlElement(name = "applicationProfile")
     public synchronized String getApplicationProfile() {
         return applicationProfile;
     }
 
+    /**
+     * Sets the name of an application profile that can be used with the online resource.
+     *
+     * @param newValue The new application profile.
+     */
+    public synchronized void setApplicationProfile(final String newValue) {
+        checkWritePermission();
+        applicationProfile = newValue;
+    }
+
+    /**
+     * Name of the online resource. Returns {@code null} if none.
+     */
     @Override
+    @XmlElement(name = "name")
     public synchronized String getName() {
         return name;
     }
 
+    /**
+     * Sets the name of the online resource.
+     *
+     * @param newValue The new name, or {@code null} if none.
+     */
+    public synchronized void setName(final String newValue) {
+        checkWritePermission();
+        name = newValue;
+    }
+
+    /**
+     * Returns the detailed text description of what the online resource is/does.
+     */
     @Override
+    @XmlElement(name = "description")
     public synchronized InternationalString getDescription() {
         return description;
     }
 
+    /**
+     * Sets the detailed text description of what the online resource is/does.
+     *
+     * @param newValue The new description, or {@code null} if none.
+     */
+    public synchronized void setDescription(final InternationalString newValue) {
+        checkWritePermission();
+        description = newValue;
+    }
+
+    /**
+     * Returns the code for function performed by the online resource.
+     */
     @Override
+    @XmlElement(name = "function")
     public synchronized OnLineFunction getFunction() {
         return function;
     }
+
+    /**
+     * Sets the code for function performed by the online resource.
+     *
+     * @param newValue The new function, or {@code null} if none.
+     */
+    public synchronized void setFunction(final OnLineFunction newValue) {
+        checkWritePermission();
+        function = newValue;
+    }
+
+    /**
+     * Returns the location (address) for on-line access using a Uniform Resource Locator address or
+     * similar addressing scheme such as @{@code http://www.statkart.no/isotc211}".
+     */
+    @Override
+    @XmlElement(name = "linkage", required = true)
+    public synchronized URI getLinkage() {
+        return linkage;
+    }
+
+    /**
+     * Sets the location (address) for on-line access using a Uniform Resource Locator address or
+     * similar addressing scheme such as "{@code http://www.statkart.no/isotc211}".
+     *
+     * @param newValue The new linkage, or {@code null} if none.
+     */
+    public synchronized void setLinkage(final URI newValue) {
+        checkWritePermission();
+        linkage = newValue;
+    }
+
+    /**
+     * Returns the connection protocol to be used.
+     */
+    @Override
+    @XmlElement(name = "protocol")
+    public synchronized String getProtocol() {
+        return protocol;
+    }
+
+    /**
+     * Returns the connection protocol to be used.
+     *
+     * @param newValue The new protocol, or {@code null} if none.
+     */
+    public synchronized void setProtocol(final String newValue) {
+        checkWritePermission();
+        protocol = newValue;
+    }
 }

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -16,46 +16,206 @@
  */
 package org.apache.sis.metadata.iso.citation;
 
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.citation.Contact;
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.citation.Role;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
-public class DefaultResponsibleParty extends ISOMetadata implements ResponsibleParty {
 
+/**
+ * Identification of, and means of communication with, person(s) and
+ * organizations associated with the dataset.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "CI_ResponsibleParty_Type", propOrder = {
+    "individualName",
+    "organisationName",
+    "positionName",
+    "contactInfo",
+    "role"
+})
+@XmlRootElement(name = "CI_ResponsibleParty")
+public class DefaultResponsibleParty extends ISOMetadata implements ResponsibleParty {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = -2477962229031486552L;
+
+    /**
+     * Name of the responsible person- surname, given name, title separated by a delimiter.
+     */
     private String individualName;
 
+    /**
+     * Name of the responsible organization.
+     */
     private InternationalString organisationName;
 
+    /**
+     * Role or position of the responsible person
+     */
     private InternationalString positionName;
 
+    /**
+     * Address of the responsible party.
+     */
     private Contact contactInfo;
 
+    /**
+     * Function performed by the responsible party.
+     */
     private Role role;
 
+    /**
+     * Constructs an initially empty responsible party.
+     */
+    public DefaultResponsibleParty() {
+    }
+
+    /**
+     * Constructs a responsibility party with the given role.
+     *
+     * @param role The function performed by the responsible party, or {@code null}.
+     */
+    public DefaultResponsibleParty(final Role role) {
+        this.role = role;
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultResponsibleParty castOrCopy(final ResponsibleParty object) {
+        if (object == null || object instanceof DefaultResponsibleParty) {
+            return (DefaultResponsibleParty) object;
+        }
+        final DefaultResponsibleParty copy = new DefaultResponsibleParty();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the name of the responsible person- surname, given name, title separated by a delimiter.
+     * Only one of {@code individualName}, {@link #getOrganisationName organisationName}
+     * and {@link #getPositionName positionName} should be provided.
+     */
     @Override
+    @XmlElement(name = "individualName")
     public synchronized String getIndividualName() {
         return individualName;
     }
 
+    /**
+     * Sets the name of the responsible person- surname, given name, title separated by a delimiter.
+     * Only one of {@code individualName}, {@link #getOrganisationName organisationName}
+     * and {@link #getPositionName positionName} should be provided.
+     *
+     * @param newValue The new individual name, or {@code null} if none.
+     */
+    public synchronized void setIndividualName(final String newValue) {
+        checkWritePermission();
+        individualName = newValue;
+    }
+
+    /**
+     * Returns the name of the responsible organization. Only one of
+     * {@link #getIndividualName individualName}, {@code organisationName}
+     * and {@link #getPositionName positionName} should be provided.
+     */
     @Override
+    @XmlElement(name = "organisationName")
     public synchronized InternationalString getOrganisationName() {
         return organisationName;
     }
 
+    /**
+     * Sets the name of the responsible organization. Only one of
+     * {@link #getIndividualName individualName}, {@code organisationName}
+     * and {@link #getPositionName positionName} should be provided.
+     *
+     * @param newValue The new organisation name, or {@code null} if none.
+     */
+    public synchronized void setOrganisationName(final InternationalString newValue) {
+        checkWritePermission();
+        organisationName = newValue;
+    }
+
+    /**
+     * Returns the role or position of the responsible person Only one of
+     * {@link #getIndividualName individualName}, {@link #getOrganisationName organisationName}
+     * and {@code positionName} should be provided.
+     */
     @Override
+    @XmlElement(name = "positionName")
     public synchronized InternationalString getPositionName() {
         return positionName;
     }
 
+    /**
+     * set the role or position of the responsible person Only one of
+     * {@link #getIndividualName individualName}, {@link #getOrganisationName organisationName}
+     * and {@code positionName} should be provided.
+     *
+     * @param newValue The new position name, or {@code null} if none.
+     */
+    public synchronized void setPositionName(final InternationalString newValue) {
+        checkWritePermission();
+        positionName = newValue;
+    }
+
+    /**
+     * Returns the address of the responsible party.
+     */
     @Override
+    @XmlElement(name = "contactInfo")
     public synchronized Contact getContactInfo() {
         return contactInfo;
     }
 
+    /**
+     * Sets the address of the responsible party.
+     *
+     * @param newValue The new contact info, or {@code null} if none.
+     */
+    public synchronized void setContactInfo(final Contact newValue) {
+        checkWritePermission();
+        contactInfo = newValue;
+    }
+
+    /**
+     * Returns the function performed by the responsible party.
+     */
     @Override
+    @XmlElement(name = "role", required = true)
     public synchronized Role getRole() {
         return role;
     }
+
+    /**
+     * Sets the function performed by the responsible party.
+     *
+     * @param newValue The new role, or {@code null} if none.
+     */
+    public synchronized void setRole(final Role newValue) {
+        checkWritePermission();
+        role = newValue;
+    }
 }

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultSeries.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -16,30 +16,141 @@
  */
 package org.apache.sis.metadata.iso.citation;
 
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.citation.Series;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.util.iso.Types;
 
-public class DefaultSeries extends ISOMetadata implements Series {
 
+/**
+ * Information about the series, or aggregate dataset, to which a dataset belongs.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "CI_Series_Type", propOrder = {
+    "name",
+    "issueIdentification",
+    "page"
+})
+@XmlRootElement(name = "CI_Series")
+public class DefaultSeries extends ISOMetadata implements Series {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = 2784101441023323052L;
+
+    /**
+     * Name of the series, or aggregate dataset, of which the dataset is a part.
+     */
     private InternationalString name;
 
+    /**
+     * Information identifying the issue of the series.
+     */
     private String issueIdentification;
 
+    /**
+     * Details on which pages of the publication the article was published.
+     */
     private String page;
 
+    /**
+     * Constructs a default series.
+     */
+    public DefaultSeries() {
+    }
+
+    /**
+     * Constructs a series with the specified name.
+     *
+     * @param name The name of the series of which the dataset is a part, or {@code null}.
+     */
+    public DefaultSeries(final CharSequence name) {
+        this.name = Types.toInternationalString(name);
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultSeries castOrCopy(final Series object) {
+        if (object == null || object instanceof DefaultSeries) {
+            return (DefaultSeries) object;
+        }
+        final DefaultSeries copy = new DefaultSeries();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the name of the series, or aggregate dataset, of which the dataset is a part.
+     */
     @Override
+    @XmlElement(name = "name")
     public synchronized InternationalString getName() {
         return name;
     }
 
+    /**
+     * Sets the name of the series, or aggregate dataset, of which the dataset is a part.
+     *
+     * @param newValue The new name, or {@code null} if none.
+     */
+    public synchronized void setName(final InternationalString newValue) {
+        checkWritePermission();
+        name = newValue;
+    }
+
+    /**
+     * Returns information identifying the issue of the series.
+     */
     @Override
+    @XmlElement(name = "issueIdentification")
     public synchronized String getIssueIdentification() {
         return issueIdentification;
     }
 
+    /**
+     * Sets information identifying the issue of the series.
+     *
+     * @param newValue The new issue identification, or {@code null} if none.
+     */
+    public synchronized void setIssueIdentification(final String newValue) {
+        checkWritePermission();
+        issueIdentification = newValue;
+    }
+
+    /**
+     * Returns details on which pages of the publication the article was published.
+     */
     @Override
+    @XmlElement(name = "page")
     public synchronized String getPage() {
         return page;
     }
+
+    /**
+     * Sets details on which pages of the publication the article was published.
+     *
+     * @param newValue The new page, or {@code null} if none.
+     */
+    public synchronized void setPage(final String newValue) {
+        checkWritePermission();
+        page = newValue;
+    }
 }

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,23 +17,107 @@
 package org.apache.sis.metadata.iso.citation;
 
 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.metadata.citation.Telephone;
 import org.apache.sis.metadata.iso.ISOMetadata;
 
 
+/**
+ * Telephone numbers for contacting the responsible individual or organization.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "CI_Telephone_Type", propOrder = {
+    "voices",
+    "facsimiles"
+})
+@XmlRootElement(name = "CI_Telephone")
 public class DefaultTelephone extends ISOMetadata implements Telephone {
-
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = 4920157673337669241L;
+
+    /**
+     * Telephone numbers by which individuals can speak to the responsible organization or individual.
+     */
     private Collection<String> voices;
 
+    /**
+     * Telephone numbers of a facsimile machine for the responsible organization or individual.
+     */
     private Collection<String> facsimiles;
 
+    /**
+     * Constructs a default telephone.
+     */
+    public DefaultTelephone() {
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the given arbitrary
+     * implementation. If the given object is {@code null}, then this method returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code null} if none.
+     * @return A SIS implementation containing the values of the given object (may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultTelephone castOrCopy(final Telephone object) {
+        if (object == null || object instanceof DefaultTelephone) {
+            return (DefaultTelephone) object;
+        }
+        final DefaultTelephone copy = new DefaultTelephone();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the telephone numbers by which individuals can speak to the responsible
+     * organization or individual.
+     */
     @Override
+    @XmlElement(name = "voice")
     public synchronized Collection<String> getVoices() {
-        return voices;
+        return voices = nonNullCollection(voices, String.class);
     }
 
+    /**
+     * Sets the telephone numbers by which individuals can speak to the responsible
+     * organization or individual.
+     *
+     * @param newValues The new telephone numbers, or {@code null} if none.
+     */
+    public synchronized void setVoices(final Collection<? extends String> newValues) {
+        voices = copyCollection(newValues, voices, String.class);
+    }
+
+    /**
+     * Returns the telephone numbers of a facsimile machine for the responsible organization
+     * or individual.
+     */
     @Override
+    @XmlElement(name = "facsimile")
     public synchronized Collection<String> getFacsimiles() {
-        return facsimiles;
+        return facsimiles = nonNullCollection(facsimiles, String.class);
+    }
+
+    /**
+     * Sets the telephone number of a facsimile machine for the responsible organization
+     * or individual.
+     *
+     * @param newValues The new telephone number, or {@code null} if none.
+     */
+    public synchronized void setFacsimiles(final Collection<? extends String> newValues) {
+        facsimiles = copyCollection(newValues, facsimiles, String.class);
     }
 }

Added: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java?rev=1459748&view=auto
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java (added)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+/**
+ * {@linkplain org.apache.sis.metadata.iso.citation.DefaultCitation Citation} implementation.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.citation OpenGIS® javadoc}.
+ * The remaining discussion on this page is specific to the SIS implementation.
+ *
+ * {@section Overview}
+ * For a global overview of metadata in SIS, see the
+ * <a href="{@docRoot}/../sis-metadata/index.html">Metadata page on the project web site</a>.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlSchema(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)
+})
+@XmlAccessorType(XmlAccessType.NONE)
+@XmlJavaTypeAdapters({
+    @XmlJavaTypeAdapter(CI_Address.class),
+    @XmlJavaTypeAdapter(CI_Contact.class),
+    @XmlJavaTypeAdapter(CI_Date.class),
+    @XmlJavaTypeAdapter(CI_DateTypeCode.class),
+    @XmlJavaTypeAdapter(CI_OnLineFunctionCode.class),
+    @XmlJavaTypeAdapter(CI_OnlineResource.class),
+    @XmlJavaTypeAdapter(CI_PresentationFormCode.class),
+    @XmlJavaTypeAdapter(CI_ResponsibleParty.class),
+    @XmlJavaTypeAdapter(CI_RoleCode.class),
+    @XmlJavaTypeAdapter(CI_Series.class),
+    @XmlJavaTypeAdapter(CI_Telephone.class),
+    @XmlJavaTypeAdapter(MD_Identifier.class),
+
+    // Java types, primitive types and basic OGC types handling
+//    @XmlJavaTypeAdapter(GO_URL.class), // TODO
+//    @XmlJavaTypeAdapter(GO_DateTime.class), // TODO
+    @XmlJavaTypeAdapter(StringAdapter.class),
+    @XmlJavaTypeAdapter(InternationalStringAdapter.class)
+})
+package org.apache.sis.metadata.iso.citation;
+
+import javax.xml.bind.annotation.XmlNs;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlSchema;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+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.gco.*;
+import org.apache.sis.internal.jaxb.gmd.*;
+import org.apache.sis.internal.jaxb.code.*;
+import org.apache.sis.internal.jaxb.metadata.*;

Propchange: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.distribution.DefaultDistribution Distribution} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.content OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.distribution OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * {@section Overview}

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.extent.DefaultExtent Extent} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.content OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.extent OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * {@section Overview}

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.identification.AbstractIdentification Identification} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.content OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.identification OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * {@section Overview}

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.lineage.DefaultLineage Lineage} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.content OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.lineage OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * {@section Overview}

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.maintenance.DefaultMaintenanceInformation Maintenance information} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.content OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.maintenance OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * {@section Overview}

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.quality.DefaultDataQuality Data quality} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.content OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.quality OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -172,8 +172,6 @@ public class DefaultGeoreferenceable ext
 
     /**
      * Returns the terms which support grid data georeferencing.
-     *
-     * @since 2.4
      */
     @Override
 /// @XmlElement(name = "georeferencedParameters", required = true)
@@ -185,8 +183,6 @@ public class DefaultGeoreferenceable ext
      * Sets the terms which support grid data georeferencing.
      *
      * @param newValue The new georeferenced parameters.
-     *
-     * @since 2.4
      */
     public synchronized void setGeoreferencedParameters(final Record newValue) {
         checkWritePermission();

Modified: sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java?rev=1459748&r1=1459747&r2=1459748&view=diff
==============================================================================
--- sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java [UTF-8] Fri Mar 22 12:46:53 2013
@@ -17,7 +17,7 @@
 
 /**
  * {@linkplain org.apache.sis.metadata.iso.spatial.AbstractSpatialRepresentation Spatial representation} implementation.
- * An explanation for this package is provided in the {@linkplain org.opengis.metadata.content OpenGIS® javadoc}.
+ * An explanation for this package is provided in the {@linkplain org.opengis.metadata.spatial OpenGIS® javadoc}.
  * The remaining discussion on this page is specific to the SIS implementation.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)



Mime
View raw message