sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1605536 - in /sis/branches/JDK8/core/sis-metadata/src: main/java/org/apache/sis/internal/jaxb/metadata/ main/java/org/apache/sis/internal/metadata/ main/java/org/apache/sis/metadata/ main/java/org/apache/sis/metadata/iso/citation/ main/jav...
Date Wed, 25 Jun 2014 18:19:18 GMT
Author: desruisseaux
Date: Wed Jun 25 18:19:17 2014
New Revision: 1605536

URL: http://svn.apache.org/r1605536
Log:
Deprecate DefaultResponsibleParty, to be replaced by DefaultResponsibility as of ISO 19115:2014.

Added:
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java
      - copied, changed from r1605107, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/LegacyProperties.java   (with props)
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java   (with props)
Modified:
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultLineage.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java
    sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java
    sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java

Copied: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java (from r1605107, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java?p2=sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java&p1=sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java&r1=1605107&r2=1605536&rev=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -17,8 +17,8 @@
 package org.apache.sis.internal.jaxb.metadata;
 
 import javax.xml.bind.annotation.XmlElementRef;
-import org.opengis.metadata.citation.ResponsibleParty;
-import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
+import org.opengis.metadata.citation.Responsibility;
+import org.apache.sis.metadata.iso.citation.DefaultResponsibility;
 import org.apache.sis.internal.jaxb.gco.PropertyType;
 
 
@@ -26,19 +26,18 @@ import org.apache.sis.internal.jaxb.gco.
  * JAXB adapter mapping implementing class to the GeoAPI interface. See
  * package documentation for more information about JAXB and interface.
  *
- * @author  Cédric Briançon (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @since   0.3 (derived from geotk-2.5)
- * @version 0.3
+ * @since   0.5
+ * @version 0.5
  * @module
  */
-public final class CI_ResponsibleParty extends
-        PropertyType<CI_ResponsibleParty, ResponsibleParty>
+public final class CI_Responsibility extends
+        PropertyType<CI_Responsibility, Responsibility>
 {
     /**
      * Empty constructor for JAXB only.
      */
-    public CI_ResponsibleParty() {
+    public CI_Responsibility() {
     }
 
     /**
@@ -46,42 +45,42 @@ public final class CI_ResponsibleParty e
      * This method is indirectly invoked by the private constructor
      * below, so it shall not depend on the state of this object.
      *
-     * @return {@code ResponsibleParty.class}
+     * @return {@code Responsibility.class}
      */
     @Override
-    protected Class<ResponsibleParty> getBoundType() {
-        return ResponsibleParty.class;
+    protected Class<Responsibility> getBoundType() {
+        return Responsibility.class;
     }
 
     /**
      * Constructor for the {@link #wrap} method only.
      */
-    private CI_ResponsibleParty(final ResponsibleParty metadata) {
+    private CI_Responsibility(final Responsibility metadata) {
         super(metadata);
     }
 
     /**
      * Invoked by {@link PropertyType} at marshalling time for wrapping the given metadata value
-     * in a {@code <gmd:CI_ResponsibleParty>} XML element.
+     * in a {@code <gmd:CI_Responsibility>} XML element.
      *
      * @param  metadata The metadata element to marshall.
      * @return A {@code PropertyType} wrapping the given the metadata element.
      */
     @Override
-    protected CI_ResponsibleParty wrap(final ResponsibleParty metadata) {
-        return new CI_ResponsibleParty(metadata);
+    protected CI_Responsibility wrap(final Responsibility metadata) {
+        return new CI_Responsibility(metadata);
     }
 
     /**
      * Invoked by JAXB at marshalling time for getting the actual metadata to write
-     * inside the {@code <gmd:CI_ResponsibleParty>} XML element.
+     * inside the {@code <gmd:CI_Responsibility>} XML element.
      * This is the value or a copy of the value given in argument to the {@code wrap} method.
      *
      * @return The metadata to be marshalled.
      */
     @XmlElementRef
-    public DefaultResponsibleParty getElement() {
-        return DefaultResponsibleParty.castOrCopy(metadata);
+    public DefaultResponsibility getElement() {
+        return DefaultResponsibility.castOrCopy(metadata);
     }
 
     /**
@@ -89,7 +88,7 @@ public final class CI_ResponsibleParty e
      *
      * @param metadata The unmarshalled metadata.
      */
-    public void setElement(final DefaultResponsibleParty metadata) {
+    public void setElement(final DefaultResponsibility metadata) {
         this.metadata = metadata;
     }
 }

Added: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/LegacyProperties.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/LegacyProperties.java?rev=1605536&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/LegacyProperties.java (added)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/LegacyProperties.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sis.internal.metadata;
+
+import java.util.AbstractCollection;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+import org.apache.sis.util.ArgumentChecks;
+
+
+/**
+ * An adapter for collections of a legacy type replaced by an other collection.
+ * This adapter is used for properties which have been deprecated after updating an ISO standard.
+ *
+ * @param <L> The legacy type.
+ * @param <N> The new type.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.5
+ * @version 0.5
+ * @module
+ */
+public abstract class LegacyProperties<L,N> extends AbstractCollection<L> {
+    /**
+     * The collection where to store the elements.
+     */
+    final Collection<N> elements;
+
+    /**
+     * Creates a new adapter.
+     *
+     * @param elements The collection where to store the elements.
+     */
+    protected LegacyProperties(final Collection<N> elements) {
+        this.elements = elements;
+    }
+
+    /**
+     * Wraps a legacy value in its new type.
+     *
+     * @param  value The legacy value.
+     * @return The new type.
+     */
+    protected abstract N wrap(final L value);
+
+    /**
+     * Extracts a legacy value from the new type.
+     *
+     * @param  value The new type.
+     * @return The legacy value, or {@code null}.
+     */
+    protected abstract L unwrap(final N value);
+
+    /**
+     * Count the number of non-null elements.
+     *
+     * @return Number of non-null elements.
+     */
+    @Override
+    public final int size() {
+        int count = 0;
+        final Iterator<L> it = iterator();
+        while (it.hasNext()) {
+            it.next();
+            count++;
+        }
+        return count;
+    }
+
+    /**
+     * Adds a new element.
+     *
+     * @param  element The element to add.
+     * @return {@code true} if the element has been added.
+     */
+    @Override
+    public boolean add(final L element) {
+        ArgumentChecks.ensureNonNull("element", element);
+        return elements.add(wrap(element));
+    }
+
+    /**
+     * Returns an iterator over the legacy elements.
+     *
+     * @return Iterator over the legacy elements.
+     */
+    @Override
+    public Iterator<L> iterator() {
+        final Iterator<N> it = elements.iterator();
+        return new Iterator<L>() {
+            /** The next value to return, or {@code null} if not yet verified. */
+            private L next;
+
+            /** Returns {@code true} if there is more elements to iterator. */
+            @Override
+            public boolean hasNext() {
+                if (next != null) {
+                    return true;
+                }
+                while (it.hasNext()) {
+                    next = unwrap(it.next());
+                    if (next != null) {
+                        return true;
+                    }
+                }
+                return false;
+            }
+
+            /** Returns the next element. */
+            @Override
+            public L next() {
+                L n = next;
+                if (n == null) {
+                    if (!hasNext()) {
+                        throw new NoSuchElementException();
+                    }
+                    n = next;
+                }
+                next = null;
+                return n;
+            }
+
+            /** Removes the last element returned by {@link #next()}. */
+            @Override
+            public void remove() {
+                it.remove();
+            }
+        };
+    }
+}

Propchange: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/LegacyProperties.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/LegacyProperties.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain;charset=UTF-8

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -140,10 +140,8 @@ final class StandardImplementation exten
                     name = buffer.toString();
                     try {
                         candidate = Class.forName(name);
-                        if (!candidate.isAnnotationPresent(Deprecated.class)) {
-                            implementations.put(type, candidate);
-                            return candidate;
-                        }
+                        implementations.put(type, candidate);
+                        return candidate;
                     } catch (ClassNotFoundException e) {
                         Logging.recoverableException(MetadataStandard.class, "getImplementation", e);
                     }

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -30,7 +30,7 @@ import org.apache.sis.util.iso.Types;
 /**
  * Information about the individual and / or organisation of the party.
  *
- * @author  Remi Marechal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
  * @version 0.5

Added: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java?rev=1605536&view=auto
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java (added)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -0,0 +1,187 @@
+/*
+ * 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.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.opengis.metadata.citation.Party;
+import org.opengis.metadata.citation.Responsibility;
+import org.opengis.metadata.citation.Role;
+import org.opengis.metadata.extent.Extent;
+import org.apache.sis.metadata.iso.ISOMetadata;
+
+
+/**
+ * Information about the party and their role.
+ *
+ * @author  Rémi Maréchal (Geomatys)
+ * @author  Martin Desruisseaux (Geomatys)
+ * @since   0.5
+ * @version 0.5
+ * @module
+ */
+@XmlType(name = "CI_Responsibility_Type", propOrder = {
+/// "role",
+/// "extent",
+/// "party"
+})
+@XmlRootElement(name = "CI_Responsibility")
+public class DefaultResponsibility extends ISOMetadata implements Responsibility {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = -8290895980682233572L;
+
+    /**
+     * Function performed by the responsible party.
+     */
+    private Role role;
+
+    /**
+     * Spatial or temporal extents of the role.
+     */
+    private Collection<Extent> extents;
+
+    /**
+     * Information about the parties.
+     */
+    private Collection<Party> parties;
+
+    /**
+     * Constructs an initially empty responsible party.
+     */
+    public DefaultResponsibility() {
+    }
+
+    /**
+     * Constructs a responsibility initialized to the specified values.
+     *
+     * @param role   Function performed by the responsible party, or {@code null}.
+     * @param extent Spatial or temporal extent of the role, or {@code null}.
+     * @param party  Information about the party, or {@code null}.
+     */
+    public DefaultResponsibility(final Role role, final Extent extent, final Party party) {
+        this.role    = role;
+        this.extents = singleton(extent, Extent.class);
+        this.parties = singleton(party, Party.class);
+    }
+
+    /**
+     * Constructs a new instance initialized with the values from the specified metadata object.
+     * This is a <cite>shallow</cite> copy constructor, since the other metadata contained in the
+     * given object are not recursively copied.
+     *
+     * @param object The metadata to copy values from, or {@code null} if none.
+     *
+     * @see #castOrCopy(Responsibility)
+     */
+    public DefaultResponsibility(final Responsibility object) {
+        if (object != null) {
+            this.role    = object.getRole();
+            this.extents = copyCollection(object.getExtents(), Extent.class);
+            this.parties = copyCollection(object.getParties(), Party.class);
+        }
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the values of the given arbitrary implementation.
+     * This method performs the first applicable action in the following choices:
+     *
+     * <ul>
+     *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
+     *   <li>Otherwise if the given object is already an instance of
+     *       {@code DefaultResponsibility}, then it is returned unchanged.</li>
+     *   <li>Otherwise a new {@code DefaultResponsibility} instance is created using the
+     *       {@linkplain #DefaultResponsibility(Responsibility) copy constructor}
+     *       and returned. Note that this is a <cite>shallow</cite> copy operation, since the other
+     *       Responsibility contained in the given object are not recursively copied.</li>
+     * </ul>
+     *
+     * @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 DefaultResponsibility castOrCopy(final Responsibility object) {
+        if (object == null || object instanceof DefaultResponsibility) {
+            return (DefaultResponsibility) object;
+        }
+        return new DefaultResponsibility(object);
+    }
+
+    /**
+     * Returns the function performed by the responsible party.
+     *
+     * @return Function performed by the responsible party.
+     */
+    @Override
+/// @XmlElement(name = "role", required = true)
+    public Role getRole() {
+        return role;
+    }
+
+    /**
+     * Sets the function performed by the responsible party.
+     *
+     * @param newValue The new role, or {@code null} if none.
+     */
+    public void setRole(final Role newValue) {
+        checkWritePermission();
+        role = newValue;
+    }
+
+    /**
+     * Returns the spatial or temporal extents of the role.
+     *
+     * @return The spatial or temporal extents of the role.
+     */
+    @Override
+/// @XmlElement(name = "extent")
+    public Collection<Extent> getExtents() {
+        return extents = nonNullCollection(extents, Extent.class);
+    }
+
+    /**
+     * Sets the spatial and temporal extents of the role.
+     *
+     * @param newValues The new spatial and temporal extents of the role.
+     */
+    public void setExtents(final Collection<? extends Extent> newValues) {
+        extents = writeCollection(newValues, extents, Extent.class);
+    }
+
+    /**
+     * Returns information about the parties.
+     *
+     * @return Information about the parties.
+     */
+    @Override
+/// @XmlElement(name = "party", required = true)
+    public Collection<Party> getParties() {
+        return parties = nonNullCollection(parties, Party.class);
+    }
+
+    /**
+     * Sets information about the parties.
+     *
+     * @param newValues New information about the parties.
+     */
+    public void setParties(final Collection<? extends Party> newValues) {
+        parties = writeCollection(newValues, parties, Party.class);
+    }
+}

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

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

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -23,20 +23,23 @@ import org.opengis.metadata.citation.Con
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.citation.Role;
 import org.opengis.util.InternationalString;
-import org.apache.sis.metadata.iso.ISOMetadata;
 
 
 /**
  * Identification of, and means of communication with, person(s) and
  * organizations associated with the dataset.
  *
+ * @deprecated As of ISO 19115:2014, the {@code ResponsibleParty} type has been replaced by {@code Responsibility}
+ *             to allow more flexible associations of individuals, organisations, and roles.
+ *
  * @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
+ * @version 0.5
  * @module
  */
+@Deprecated
 @XmlType(name = "CI_ResponsibleParty_Type", propOrder = {
     "individualName",
     "organisationName",
@@ -45,11 +48,11 @@ import org.apache.sis.metadata.iso.ISOMe
     "role"
 })
 @XmlRootElement(name = "CI_ResponsibleParty")
-public class DefaultResponsibleParty extends ISOMetadata implements ResponsibleParty {
+public class DefaultResponsibleParty extends DefaultResponsibility implements ResponsibleParty {
     /**
      * Serial number for inter-operability with different versions.
      */
-    private static final long serialVersionUID = -3429257224445006902L;
+    private static final long serialVersionUID = 6460730475638081367L;
 
     /**
      * Name of the responsible person- surname, given name, title separated by a delimiter.
@@ -72,11 +75,6 @@ public class DefaultResponsibleParty ext
     private Contact contactInfo;
 
     /**
-     * Function performed by the responsible party.
-     */
-    private Role role;
-
-    /**
      * Constructs an initially empty responsible party.
      */
     public DefaultResponsibleParty() {
@@ -88,7 +86,7 @@ public class DefaultResponsibleParty ext
      * @param role The function performed by the responsible party, or {@code null}.
      */
     public DefaultResponsibleParty(final Role role) {
-        this.role = role;
+        super(role, null, null);
     }
 
     /**
@@ -107,7 +105,6 @@ public class DefaultResponsibleParty ext
             organisationName = object.getOrganisationName();
             positionName     = object.getPositionName();
             contactInfo      = object.getContactInfo();
-            role             = object.getRole();
         }
     }
 
@@ -235,21 +232,21 @@ public class DefaultResponsibleParty ext
     /**
      * Returns the function performed by the responsible party.
      *
-     * @return Function performed by the responsible party, or {@code null}.
+     * @return Function performed by the responsible party.
      */
     @Override
     @XmlElement(name = "role", required = true)
     public Role getRole() {
-        return role;
+        return super.getRole();
     }
 
     /**
      * Sets the function performed by the responsible party.
      *
-     * @param newValue The new role, or {@code null} if none.
+     * @param newValue The new role.
      */
+    @Override
     public void setRole(final Role newValue) {
-        checkWritePermission();
-        role = newValue;
+        super.setRole(newValue);
     }
 }

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -40,7 +40,7 @@ import org.apache.sis.util.iso.Types;
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @author  Remi Marechal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
  * @version 0.5
  * @module

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -30,7 +30,7 @@ import org.apache.sis.metadata.iso.ISOMe
  * Information about content type for groups of attributes for a specific
  * {@linkplain DefaultRangeDimension range dimension}.
  *
- * @author  Remi Marechal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
  * @version 0.5

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -29,7 +29,7 @@ import org.apache.sis.util.ArgumentCheck
 /**
  * Information about the occurring feature type.
  *
- * @author  Remi Marechal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
  * @version 0.5

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -29,7 +29,7 @@ import org.apache.sis.metadata.iso.ISOMe
 /**
  * Associated resource information.
  *
- * @author  Remi Marechal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
  * @version 0.5

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -36,7 +36,7 @@ import org.apache.sis.internal.jaxb.gmx.
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @author  Remi Marechal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
  * @version 0.5
  * @module

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultLineage.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultLineage.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultLineage.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultLineage.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -21,6 +21,8 @@ import javax.xml.bind.annotation.XmlElem
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 import org.opengis.util.InternationalString;
+import org.opengis.metadata.citation.Citation;
+import org.opengis.metadata.quality.Scope;
 import org.opengis.metadata.lineage.Source;
 import org.opengis.metadata.lineage.Lineage;
 import org.opengis.metadata.lineage.ProcessStep;
@@ -39,12 +41,15 @@ import org.apache.sis.metadata.iso.quali
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @XmlType(name = "LI_Lineage_Type", propOrder = {
     "statement",
+/// "scope",
+/// "additionalResource",
     "processSteps",
     "sources"
 })
@@ -63,6 +68,17 @@ public class DefaultLineage extends ISOM
     private InternationalString statement;
 
     /**
+     * Type of resource and / or extent to which the lineage information applies.
+     */
+    private Collection<Scope> scopes;
+
+    /**
+     * A resources (for example publication) that describes the whole
+     * process to generate this resource (for example a dataset).
+     */
+    private Collection<Citation> additionalDocumentation;
+
+    /**
      * Information about an event in the creation process for the data specified by the scope.
      */
     private Collection<ProcessStep> processSteps;
@@ -90,9 +106,11 @@ public class DefaultLineage extends ISOM
     public DefaultLineage(final Lineage object) {
         super(object);
         if (object != null) {
-            statement    = object.getStatement();
-            processSteps = copyCollection(object.getProcessSteps(), ProcessStep.class);
-            sources      = copyCollection(object.getSources(), Source.class);
+            statement               = object.getStatement();
+///         scopes                  = copyCollection(object.getScopes(), Scope.class);
+///         additionalDocumentation = copyCollection(object.getAdditionalDocumentation(), Citation.class);
+            processSteps            = copyCollection(object.getProcessSteps(), ProcessStep.class);
+            sources                 = copyCollection(object.getSources(), Source.class);
         }
     }
 
@@ -145,6 +163,55 @@ public class DefaultLineage extends ISOM
     }
 
     /**
+     * Returns the types of resource and / or extents to which the lineage information applies.
+     *
+     * @return Types of resource and / or extents to which the lineage information applies.
+     *
+     * @since 0.5
+     */
+/// @Override
+/// @XmlElement(name = "scope")
+    public Collection<Scope> getScopes() {
+        return scopes = nonNullCollection(scopes, Scope.class);
+    }
+
+    /**
+     * Sets the types of resource and / or extents to which the lineage information applies.
+     *
+     * @param newValues The new types of resource.
+     *
+     * @since 0.5
+     */
+    public void setScopes(final Collection<? extends Scope> newValues)  {
+        scopes = writeCollection(newValues, scopes, Scope.class);
+    }
+
+    /**
+     * Returns information about resources (for example publication) that describes the whole
+     * process to generate this resource (for example a dataset).
+     *
+     * @return Resources that describes the whole process to generate this resource.
+     *
+     * @since 0.5
+     */
+/// @Override
+/// @XmlElement(name = "additionalDocumentation")
+    public Collection<Citation> getAdditionalDocumentation() {
+        return additionalDocumentation = nonNullCollection(additionalDocumentation, Citation.class);
+    }
+
+    /**
+     * Sets information about resources that describes the whole process to generate this resource.
+     *
+     * @param newValues The new information about resource.
+     *
+     * @since 0.5
+     */
+    public void setAdditionalDocumentation(final Collection<? extends Citation> newValues)  {
+        additionalDocumentation = writeCollection(newValues, additionalDocumentation , Citation.class);
+    }
+
+    /**
      * Returns the information about an event in the creation process for the data specified by the scope.
      *
      * @return Information about an event in the creation process.

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -18,20 +18,25 @@ package org.apache.sis.metadata.iso.main
 
 import java.util.Date;
 import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
+import org.opengis.metadata.citation.DateType;
+import org.opengis.metadata.citation.CitationDate;
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.maintenance.MaintenanceFrequency;
 import org.opengis.metadata.maintenance.MaintenanceInformation;
 import org.opengis.metadata.maintenance.ScopeCode;
 import org.opengis.metadata.maintenance.ScopeDescription;
+import org.opengis.metadata.quality.Scope;
 import org.opengis.temporal.PeriodDuration;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.ISOMetadata;
-
-import static org.apache.sis.internal.metadata.MetadataUtilities.toDate;
-import static org.apache.sis.internal.metadata.MetadataUtilities.toMilliseconds;
+import org.apache.sis.metadata.iso.quality.DefaultScope;
+import org.apache.sis.metadata.iso.citation.DefaultCitationDate;
+import org.apache.sis.internal.metadata.LegacyProperties;
 
 
 /**
@@ -41,8 +46,9 @@ import static org.apache.sis.internal.me
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @XmlType(name = "MD_MaintenanceInformation_Type", propOrder = {
@@ -59,7 +65,7 @@ public class DefaultMaintenanceInformati
     /**
      * Serial number for inter-operability with different versions.
      */
-    private static final long serialVersionUID = -5134544727860361898L;
+    private static final long serialVersionUID = -8736825706141936429L;
 
     /**
      * Frequency with which changes and additions are made to the resource after the
@@ -68,11 +74,9 @@ public class DefaultMaintenanceInformati
     private MaintenanceFrequency maintenanceAndUpdateFrequency;
 
     /**
-     * Scheduled revision date for resource, in milliseconds elapsed
-     * since January 1st, 1970. If there is no such date, then this field
-     * is set to the special value {@link Long#MIN_VALUE}.
+     * Date information associated with maintenance of resource.
      */
-    private long dateOfNextUpdate = Long.MIN_VALUE;
+    private Collection<CitationDate> maintenanceDates;
 
     /**
      * Maintenance period other than those defined, in milliseconds.
@@ -80,14 +84,9 @@ public class DefaultMaintenanceInformati
     private PeriodDuration userDefinedMaintenanceFrequency;
 
     /**
-     * Scope of data to which maintenance is applied.
-     */
-    private Collection<ScopeCode> updateScopes;
-
-    /**
-     * Additional information about the range or extent of the resource.
+     * Type of resource and / or extent to which the maintenance information applies.
      */
-    private Collection<ScopeDescription> updateScopeDescriptions;
+    private Collection<Scope> maintenanceScopes;
 
     /**
      * Information regarding specific requirements for maintaining the resource.
@@ -95,8 +94,8 @@ public class DefaultMaintenanceInformati
     private Collection<InternationalString> maintenanceNotes;
 
     /**
-     * Identification of, and means of communicating with,
-     * person(s) and organization(s) with responsibility for maintaining the metadata
+     * Identification of, and means of communicating with, person(s) and organization(s)
+     * with responsibility for maintaining the resource.
      */
     private Collection<ResponsibleParty> contacts;
 
@@ -128,11 +127,15 @@ public class DefaultMaintenanceInformati
     public DefaultMaintenanceInformation(final MaintenanceInformation object) {
         super(object);
         if (object != null) {
+            setDateOfNextUpdate        (object.getDateOfNextUpdate());
+            setDateOfNextUpdate        (object.getDateOfNextUpdate());
+            setUpdateScopes            (object.getUpdateScopes());
+            setUpdateScopeDescriptions (object.getUpdateScopeDescriptions());
+
             maintenanceAndUpdateFrequency   = object.getMaintenanceAndUpdateFrequency();
-            dateOfNextUpdate                = toMilliseconds(object.getDateOfNextUpdate());
+///         maintenanceDates                = copyCollection(object.getMaintenanceDate(), CitationDate.class);
             userDefinedMaintenanceFrequency = object.getUserDefinedMaintenanceFrequency();
-            updateScopes                    = copyCollection(object.getUpdateScopes(), ScopeCode.class);
-            updateScopeDescriptions         = copyCollection(object.getUpdateScopeDescriptions(), ScopeDescription.class);
+///         maintenanceScope                = copyCollection(object.getMaintenanceScope(), Scope.class);
             maintenanceNotes                = copyCollection(object.getMaintenanceNotes(), InternationalString.class);
             contacts                        = copyCollection(object.getContacts(), ResponsibleParty.class);
         }
@@ -187,14 +190,50 @@ public class DefaultMaintenanceInformati
     }
 
     /**
+     * Return the date information associated with maintenance of resource.
+     *
+     * @return date information associated with maintenance of resource.
+     *
+     * @since 0.5
+     */
+/// @Override
+/// @XmlElement(name = "maintenanceDate", required = true)
+    public Collection<CitationDate> getMaintenanceDates() {
+        return maintenanceDates = nonNullCollection(maintenanceDates, CitationDate.class);
+    }
+
+    /**
+     * Sets the date information associated with maintenance of resource.
+     *
+     * @param newValues The new date information associated with maintenance of resource.
+     *
+     * @since 0.5
+     */
+    public void setMaintenanceDates(final Collection<? extends CitationDate> newValues) {
+        maintenanceDates = writeCollection(newValues, maintenanceDates, CitationDate.class);
+    }
+
+    /**
      * Returns the scheduled revision date for resource.
      *
      * @return Scheduled revision date, or {@code null}.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link #getMaintenanceDates()} in order to enable inclusion
+     *             of a {@link DateType} to describe the type of the date. Note that {@link DateType#NEXT_UPDATE}
+     *             was added to that code list.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "dateOfNextUpdate")
     public Date getDateOfNextUpdate() {
-        return toDate(dateOfNextUpdate);
+        if (maintenanceDates != null) {
+            for (final CitationDate date : maintenanceDates) {
+                if (DateType.NEXT_UPDATE.equals(date.getDateType())) {
+                    return date.getDate();
+                }
+            }
+        }
+        return null;
     }
 
     /**
@@ -202,15 +241,17 @@ public class DefaultMaintenanceInformati
      *
      * @param newValue The new date of next update.
      */
+    @Deprecated
     public void setDateOfNextUpdate(final Date newValue) {
-        checkWritePermission();
-        dateOfNextUpdate = toMilliseconds(newValue);
+        if (newValue != null) {
+            getMaintenanceDates().add(new DefaultCitationDate(newValue, DateType.NEXT_UPDATE));
+        }
     }
 
     /**
      * Returns the maintenance period other than those defined.
      *
-     * @return The Maintenance period, or {@code null}.
+     * @return The maintenance period, or {@code null}.
      */
     @Override
     @XmlElement(name = "userDefinedMaintenanceFrequency")
@@ -229,14 +270,50 @@ public class DefaultMaintenanceInformati
     }
 
     /**
+     * Return the types of resource and / or extents to which the maintenance information applies.
+     *
+     * @return type of resource and / or extent to which the maintenance information applies.
+     *
+     * @since 0.5
+     */
+/// @Override
+/// @XmlElement(name = "maintenanceScope")
+    public Collection<Scope> getMaintenanceScopes() {
+        return maintenanceScopes = nonNullCollection(maintenanceScopes, Scope.class);
+    }
+
+    /**
+     * Sets the types of resource and / or extents to which the maintenance information applies.
+     *
+     * @param newValues The types of resource and / or extents to which the maintenance information applies.
+     *
+     * @since 0.5
+     */
+    public void setMaintenanceScopes(final Collection<? extends Scope> newValues) {
+        maintenanceScopes = writeCollection(newValues, maintenanceScopes, Scope.class);
+    }
+
+    /**
      * Returns the scope of data to which maintenance is applied.
      *
      * @return Scope of data to which maintenance is applied.
+     *
+     * @deprecated As of ISO 19115:2014, {@code getUpdateScopes()} and {@link #getUpdateScopeDescriptions()}
+     *             were combined into {@link #getMaintenanceScopes()} in order to allow specifying a scope
+     *             that includes a spatial and temporal extent.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "updateScope")
     public Collection<ScopeCode> getUpdateScopes() {
-        return updateScopes = nonNullCollection(updateScopes, ScopeCode.class);
+        return new LegacyProperties<ScopeCode,Scope>(getMaintenanceScopes()) {
+            @Override protected Scope wrap(final ScopeCode code) {
+                return new DefaultScope(code);
+            }
+            @Override protected ScopeCode unwrap(final Scope scope) {
+                return scope.getLevel();
+            }
+        };
     }
 
     /**
@@ -244,19 +321,53 @@ public class DefaultMaintenanceInformati
      *
      * @param newValues The new update scopes.
      */
-    public void setUpdateScopes(final Collection<? extends ScopeCode> newValues) {
-        updateScopes = writeCollection(newValues, updateScopes, ScopeCode.class);
+    @Deprecated
+    public void setUpdateScopes(Collection<? extends ScopeCode> newValues) {
+        if (newValues == null) {
+            newValues = Collections.emptySet();
+        }
+        final Iterator<? extends ScopeCode> it = newValues.iterator();
+        final Collection<Scope> scopes = getMaintenanceScopes();
+        final Iterator<Scope> im = scopes.iterator();
+        while (im.hasNext()) {
+            final Scope scope = im.next();
+            if (scope instanceof DefaultScope) {
+                final DefaultScope df = (DefaultScope) scope;
+                df.setLevel(it.hasNext() ? it.next() : null);
+                if (df.isEmpty()) {
+                    im.remove();
+                }
+            }
+        }
+        while (it.hasNext()) {
+            scopes.add(new DefaultScope(it.next()));
+        }
     }
 
     /**
      * Returns additional information about the range or extent of the resource.
      *
      * @return Additional information about the range or extent of the resource.
+     *
+     * @deprecated As of ISO 19115:2014, {@link #getUpdateScopes()} and {@code getUpdateScopeDescriptions()}
+     *             were combined into {@link #getMaintenanceScopes()} in order to allow specifying a scope
+     *             that includes a spatial and temporal extent.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "updateScopeDescription")
     public Collection<ScopeDescription> getUpdateScopeDescriptions() {
-        return updateScopeDescriptions = nonNullCollection(updateScopeDescriptions, ScopeDescription.class);
+        return new LegacyProperties<ScopeDescription,Scope>(getMaintenanceScopes()) {
+            @Override protected Scope wrap(final ScopeDescription code) {
+                final DefaultScope scope = new DefaultScope();
+                scope.setLevelDescription(Collections.singleton(code));
+                return scope;
+            }
+            @Override protected ScopeDescription unwrap(final Scope scope) {
+                final Iterator<? extends ScopeDescription> i = scope.getLevelDescription().iterator();
+                return (i.hasNext()) ? i.next() : null;
+            }
+        };
     }
 
     /**
@@ -264,8 +375,29 @@ public class DefaultMaintenanceInformati
      *
      * @param newValues The new update scope descriptions.
      */
-    public void setUpdateScopeDescriptions(final Collection<? extends ScopeDescription> newValues) {
-        updateScopeDescriptions = writeCollection(newValues, updateScopeDescriptions, ScopeDescription.class);
+    @Deprecated
+    public void setUpdateScopeDescriptions(Collection<? extends ScopeDescription> newValues) {
+        if (newValues == null) {
+            newValues = Collections.emptySet();
+        }
+        final Iterator<? extends ScopeDescription> it = newValues.iterator();
+        final Collection<Scope> scopes = getMaintenanceScopes();
+        final Iterator<Scope> im = scopes.iterator();
+        while (im.hasNext()) {
+            final Scope scope = im.next();
+            if (scope instanceof DefaultScope) {
+                final DefaultScope df = (DefaultScope) scope;
+                df.setLevelDescription(it.hasNext() ? Collections.singleton(it.next()) : null);
+                if (df.isEmpty()) {
+                    im.remove();
+                }
+            }
+        }
+        while (it.hasNext()) {
+            final DefaultScope scope = new DefaultScope();
+            scope.setLevelDescription(Collections.singleton(it.next()));
+            scopes.add(scope);
+        }
     }
 
     /**
@@ -290,10 +422,10 @@ public class DefaultMaintenanceInformati
 
     /**
      * Returns identification of, and means of communicating with,
-     * person(s) and organization(s) with responsibility for maintaining the metadata.
+     * person(s) and organization(s) with responsibility for maintaining the resource.
      *
      * @return Means of communicating with person(s) and organization(s) with responsibility
-     *         for maintaining the metadata.
+     *         for maintaining the resource.
      */
     @Override
     @XmlElement(name = "contact")
@@ -303,9 +435,10 @@ public class DefaultMaintenanceInformati
 
     /**
      * Sets identification of, and means of communicating with,
-     * person(s) and organization(s) with responsibility for maintaining the metadata.
+     * person(s) and organization(s) with responsibility for maintaining the resource.
      *
-     * @param newValues The new contacts
+     * @param newValues The new identification of person(s) and organization(s)
+     *                  with responsibility for maintaining the resource.
      */
     public void setContacts(final Collection<? extends ResponsibleParty> newValues) {
         contacts = writeCollection(newValues, contacts, ResponsibleParty.class);

Modified: sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -34,7 +34,7 @@ import org.apache.sis.measure.ValueRange
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Touraïvane (IRD)
  * @author  Cédric Briançon (Geomatys)
- * @author  Remi Marechal (Geomatys)
+ * @author  Rémi Maréchal (Geomatys)
  * @since   0.3 (derived from geotk-2.1)
  * @version 0.5
  * @module

Modified: sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java?rev=1605536&r1=1605535&r2=1605536&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] (original)
+++ sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] Wed Jun 25 18:19:17 2014
@@ -90,6 +90,7 @@ public final strictfp class AllMetadataT
             org.opengis.metadata.citation.OnlineResource.class,
             org.opengis.metadata.citation.Party.class,
             org.opengis.metadata.citation.PresentationForm.class,
+            org.opengis.metadata.citation.Responsibility.class,
             org.opengis.metadata.citation.ResponsibleParty.class,
             org.opengis.metadata.citation.Role.class,
             org.opengis.metadata.citation.Series.class,



Mime
View raw message