sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1610553 [1/2] - in /sis/branches/JDK7: ./ core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/ core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/ core/sis-metadata/src/main/java/org/apache/sis/metadata/ co...
Date Mon, 14 Jul 2014 22:59:27 GMT
Author: desruisseaux
Date: Mon Jul 14 22:59:26 2014
New Revision: 1610553

URL: http://svn.apache.org/r1610553
Log:
Merge from the JDK8 branch.

Added:
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java
      - copied unchanged from r1610550, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultIndividual.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOrganisation.java
      - copied unchanged from r1610550, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOrganisation.java
Modified:
    sis/branches/JDK7/   (props changed)
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_RestrictionCode.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeChildrenTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TypeMapTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java
    sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
    sis/branches/JDK7/profiles/sis-french-profile/src/test/java/org/apache/sis/internal/profile/fra/DirectReferenceSystemTest.java
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java

Propchange: sis/branches/JDK7/
------------------------------------------------------------------------------
  Merged /sis/branches/JDK8:r1609863-1610550

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_RestrictionCode.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_RestrictionCode.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_RestrictionCode.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/code/MD_RestrictionCode.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -87,16 +87,10 @@ public final class MD_RestrictionCode ex
 
     /**
      * Invoked by JAXB on unmarshalling.
-     * This method performs the reverse of the {@link #wrap(CodeListProxy)} spelling change:
-     * it converts "license" (ISO 19115:2003) to "licence" (ISO 19115:2014) in order to have
-     * only one {@code CodeList} instance for both.
      *
      * @param proxy The unmarshalled value.
      */
     public void setElement(final CodeListProxy proxy) {
-        if ("license".equals(proxy.codeListValue)) {
-            proxy.codeListValue = "licence";
-        }
         this.proxy = proxy;
     }
 }

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_Responsibility.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -20,6 +20,7 @@ import javax.xml.bind.annotation.XmlElem
 import org.opengis.metadata.citation.Responsibility;
 import org.apache.sis.metadata.iso.citation.DefaultResponsibility;
 import org.apache.sis.internal.jaxb.gco.PropertyType;
+import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
 
 
 /**
@@ -31,9 +32,7 @@ import org.apache.sis.internal.jaxb.gco.
  * @version 0.5
  * @module
  */
-public final class CI_Responsibility extends
-        PropertyType<CI_Responsibility, Responsibility>
-{
+public final class CI_Responsibility extends PropertyType<CI_Responsibility, Responsibility> {
     /**
      * Empty constructor for JAXB only.
      */
@@ -79,8 +78,13 @@ public final class CI_Responsibility ext
      * @return The metadata to be marshalled.
      */
     @XmlElementRef
+    @SuppressWarnings("deprecation")
     public DefaultResponsibility getElement() {
-        return DefaultResponsibility.castOrCopy(metadata);
+        if (LEGACY_XML) {
+            return DefaultResponsibleParty.castOrCopy(metadata);
+        } else {
+            return DefaultResponsibility.castOrCopy(metadata);
+        }
     }
 
     /**

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/CI_ResponsibleParty.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -32,9 +32,8 @@ import org.apache.sis.internal.jaxb.gco.
  * @version 0.3
  * @module
  */
-public final class CI_ResponsibleParty extends
-        PropertyType<CI_ResponsibleParty, ResponsibleParty>
-{
+@SuppressWarnings("deprecation")
+public final class CI_ResponsibleParty extends PropertyType<CI_ResponsibleParty, ResponsibleParty> {
     /**
      * Empty constructor for JAXB only.
      */

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyInformation.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -25,7 +25,7 @@ import org.opengis.metadata.Datatype;
 import org.opengis.metadata.Obligation;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.ExtendedElementInformation;
-import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.util.CodeList;
 import org.opengis.util.InternationalString;
 import org.apache.sis.internal.simple.SimpleReferenceIdentifier;
@@ -330,7 +330,7 @@ final class PropertyInformation<E> exten
      * Returns the name of the person or organization creating the element.
      */
     @Override
-    public Collection<? extends ResponsibleParty> getSources() {
+    public Collection<? extends Responsibility> getSources() {
         return authority.getCitedResponsibleParties();
     }
 

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -22,7 +22,7 @@ import javax.xml.bind.annotation.XmlElem
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.Datatype;
 import org.opengis.metadata.Obligation;
-import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.metadata.ExtendedElementInformation;
 import org.opengis.util.InternationalString;
 import org.apache.sis.measure.ValueRange;
@@ -36,7 +36,7 @@ import org.apache.sis.util.iso.Types;
  * @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
  */
 @XmlType(name = "MD_ExtendedElementInformation_Type", propOrder = {
@@ -139,7 +139,7 @@ public class DefaultExtendedElementInfor
     /**
      * Name of the person or organization creating the extended element.
      */
-    private Collection<ResponsibleParty> sources;
+    private Collection<Responsibility> sources;
 
     /**
      * Construct an initially empty extended element information.
@@ -164,7 +164,7 @@ public class DefaultExtendedElementInfor
                                              final Datatype     dataType,
                                              final String       parentEntity,
                                              final CharSequence rule,
-                                             final ResponsibleParty source)
+                                             final Responsibility source)
     {
         this.name         = name;
         this.definition   = Types.toInternationalString(definition);
@@ -172,7 +172,7 @@ public class DefaultExtendedElementInfor
         this.dataType     = dataType;
         this.parentEntity = singleton(parentEntity, String.class);
         this.rule         = Types.toInternationalString(rule);
-        this.sources      = singleton(source, ResponsibleParty.class);
+        this.sources      = singleton(source, Responsibility.class);
     }
 
     /**
@@ -199,7 +199,7 @@ public class DefaultExtendedElementInfor
             parentEntity      = copyCollection(object.getParentEntity(), String.class);
             rule              = object.getRule();
             rationales        = copyCollection(object.getRationales(), InternationalString.class);
-            sources           = copyCollection(object.getSources(), ResponsibleParty.class);
+            sources           = copyCollection(object.getSources(), Responsibility.class);
         }
     }
 
@@ -499,8 +499,8 @@ public class DefaultExtendedElementInfor
      */
     @Override
     @XmlElement(name = "source", required = true)
-    public Collection<ResponsibleParty> getSources() {
-        return sources = nonNullCollection(sources, ResponsibleParty.class);
+    public Collection<Responsibility> getSources() {
+        return sources = nonNullCollection(sources, Responsibility.class);
     }
 
     /**
@@ -508,7 +508,7 @@ public class DefaultExtendedElementInfor
      *
      * @param newValues The new sources.
      */
-    public void setSources(final Collection<? extends ResponsibleParty> newValues) {
-        sources = writeCollection(newValues, sources, ResponsibleParty.class);
+    public void setSources(final Collection<? extends Responsibility> newValues) {
+        sources = writeCollection(newValues, sources, Responsibility.class);
     }
 }

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -22,6 +22,8 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlType;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.citation.Contact;
+import org.opengis.metadata.citation.Individual;
+import org.opengis.metadata.citation.Organisation;
 import org.opengis.metadata.citation.Party;
 import org.apache.sis.metadata.iso.ISOMetadata;
 import org.apache.sis.util.iso.Types;
@@ -97,6 +99,10 @@ public class AbstractParty extends ISOMe
      *
      * <ul>
      *   <li>If the given object is {@code null}, then this method returns {@code null}.</li>
+     *   <li>Otherwise if the given object is an instance of {@link Individual} or {@link Organisation},
+     *       then this method delegates to the {@code castOrCopy(…)} method of the corresponding SIS subclass.
+     *       Note that if the given object implements more than one of the above-cited interfaces,
+     *       then the {@code castOrCopy(…)} method to be used is unspecified.</li>
      *   <li>Otherwise if the given object is already an instance of
      *       {@code AbstractParty}, then it is returned unchanged.</li>
      *   <li>Otherwise a new {@code AbstractParty} instance is created using the
@@ -110,6 +116,12 @@ public class AbstractParty extends ISOMe
      *         given object itself), or {@code null} if the argument was null.
      */
     public static AbstractParty castOrCopy(final Party object) {
+        if (object instanceof Individual) {
+            return DefaultIndividual.castOrCopy((Individual) object);
+        }
+        if (object instanceof Organisation) {
+            return DefaultOrganisation.castOrCopy((Organisation) object);
+        }
         if (object == null || object instanceof AbstractParty) {
             return (AbstractParty) object;
         }

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -24,9 +24,12 @@ import javax.xml.bind.annotation.XmlRoot
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.CitationDate;
+import org.opengis.metadata.citation.OnlineResource;
 import org.opengis.metadata.citation.PresentationForm;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.citation.Series;
+import org.opengis.metadata.identification.BrowseGraphic;
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.iso.Types;
 import org.apache.sis.util.iso.SimpleInternationalString;
@@ -51,8 +54,9 @@ import static org.apache.sis.internal.me
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @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 = "CI_Citation_Type", propOrder = {
@@ -125,10 +129,10 @@ public class DefaultCitation extends ISO
     private long editionDate = Long.MIN_VALUE;
 
     /**
-     * Name and position information for an individual or organization that is responsible
+     * Roles, Name, contact, and position information for an individual or organization that is responsible
      * for the resource. Returns an empty collection if there is none.
      */
-    private Collection<ResponsibleParty> citedResponsibleParties;
+    private Collection<Responsibility> citedResponsibleParties;
 
     /**
      * Mode in which the resource is represented, or an empty collection if none.
@@ -155,6 +159,16 @@ public class DefaultCitation extends ISO
     private InternationalString collectiveTitle;
 
     /**
+     * Online references to the cited resource.
+     */
+    private Collection<OnlineResource> onlineResources;
+
+    /**
+     * Citation graphic or logo for cited party.
+     */
+    private Collection<BrowseGraphic> graphics;
+
+    /**
      * Constructs an initially empty citation.
      */
     public DefaultCitation() {
@@ -180,10 +194,13 @@ public class DefaultCitation extends ISO
      *
      * @param party The name and position information for an individual or organization that is
      *              responsible for the resource, or {@code null} if none.
+     *
+     * @deprecated As of ISO 19115:2014, {@link ResponsibleParty} has been replaced by {@link Responsibility}.
      */
+    @Deprecated
     public DefaultCitation(final ResponsibleParty party) {
         if (party != null) {
-            citedResponsibleParties = singleton(party, ResponsibleParty.class);
+            citedResponsibleParties = singleton(party, Responsibility.class);
             title = party.getOrganisationName();
             if (title == null) {
                 title = party.getPositionName();
@@ -215,11 +232,13 @@ public class DefaultCitation extends ISO
             edition                 = object.getEdition();
             editionDate             = toMilliseconds(object.getEditionDate());
             identifiers             = copyCollection(object.getIdentifiers(), Identifier.class);
-            citedResponsibleParties = copyCollection(object.getCitedResponsibleParties(), ResponsibleParty.class);
+            citedResponsibleParties = copyCollection(object.getCitedResponsibleParties(), Responsibility.class);
             presentationForms       = copyCollection(object.getPresentationForms(), PresentationForm.class);
             series                  = object.getSeries();
             otherCitationDetails    = object.getOtherCitationDetails();
             collectiveTitle         = object.getCollectiveTitle();
+            onlineResources         = copyCollection(object.getOnlineResources(), OnlineResource.class);
+            graphics                = copyCollection(object.getGraphics(), BrowseGraphic.class);
             final String id1        = object.getISBN();
             final String id2        = object.getISSN();
             if (id1 != null || id2 != null) {
@@ -277,8 +296,9 @@ 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 "<cite>Digital Chart of the World</cite>".
+     * Returns short name or other language name by which the cited information is known.
+     *
+     * <div class="note"><b>Example:</b> "DCW" as an alternative title for "Digital Chart of the World".</div>
      *
      * @return Other names for the resource, or an empty collection if none.
      */
@@ -361,7 +381,8 @@ public class DefaultCitation extends ISO
 
     /**
      * Returns the unique identifier for the resource.
-     * Example: Universal Product Code (UPC), National Stock Number (NSN).
+     *
+     * <div class="note"><b>Example:</b> Universal Product Code (UPC), National Stock Number (NSN).</div>
      *
      * {@section Unified identifiers view}
      * In this SIS implementation, the collection returned by this method includes the XML identifiers
@@ -408,25 +429,25 @@ public class DefaultCitation extends ISO
     }
 
     /**
-     * Returns the name and position information for an individual or organization that is
-     * responsible for the resource.
+     * Returns the role, name, contact and position information for an individual or organization
+     * that is responsible for the resource.
      *
      * @return The individual or organization that is responsible, or an empty collection if none.
      */
     @Override
     @XmlElement(name = "citedResponsibleParty")
-    public Collection<ResponsibleParty> getCitedResponsibleParties() {
-        return citedResponsibleParties = nonNullCollection(citedResponsibleParties, ResponsibleParty.class);
+    public Collection<Responsibility> getCitedResponsibleParties() {
+        return citedResponsibleParties = nonNullCollection(citedResponsibleParties, Responsibility.class);
     }
 
     /**
-     * Sets the name and position information for an individual or organization that is responsible
-     * for the resource.
+     * Sets the role, name, contact and position information for an individual or organization
+     * that is responsible for the resource.
      *
      * @param newValues The new cited responsible parties, or {@code null} if none.
      */
-    public void setCitedResponsibleParties(final Collection<? extends ResponsibleParty> newValues) {
-        citedResponsibleParties = writeCollection(newValues, citedResponsibleParties, ResponsibleParty.class);
+    public void setCitedResponsibleParties(final Collection<? extends Responsibility> newValues) {
+        citedResponsibleParties = writeCollection(newValues, citedResponsibleParties, Responsibility.class);
     }
 
     /**
@@ -492,8 +513,7 @@ 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 the common title with holdings note.
      *
      * @return The common title, or {@code null} if none.
      */
@@ -591,4 +611,52 @@ public class DefaultCitation extends ISO
             getIdentifierMap().putSpecialized(ISSN, newValue);
         }
     }
+
+    /**
+     * Returns online references to the cited resource.
+     *
+     * @return Online references to the cited resource, or an empty collection if there is none.
+     *
+     * @since 0.5
+     */
+    @Override
+/// @XmlElement(name = "onlineResource")
+    public Collection<OnlineResource> getOnlineResources() {
+        return onlineResources = nonNullCollection(onlineResources, OnlineResource.class);
+    }
+
+    /**
+     * Sets online references to the cited resource.
+     *
+     * @param newValues The new online references to the cited resource.
+     *
+     * @since 0.5
+     */
+    public void setOnlineResources(final Collection<? extends OnlineResource> newValues) {
+        onlineResources = writeCollection(newValues, onlineResources, OnlineResource.class);
+    }
+
+    /**
+     * Returns citation graphics or logo for cited party.
+     *
+     * @return Graphics or logo for cited party, or an empty collection if there is none.
+     *
+     * @since 0.5
+     */
+    @Override
+/// @XmlElement(name = "graphic")
+    public Collection<BrowseGraphic> getGraphics() {
+        return graphics = nonNullCollection(graphics, BrowseGraphic.class);
+    }
+
+    /**
+     * Sets citation graphics or logo for cited party.
+     *
+     * @param newValues The new citation graphics or logo for cited party.
+     *
+     * @since 0.5
+     */
+    public void setGraphics(final Collection<? extends BrowseGraphic> newValues) {
+        graphics = writeCollection(newValues, graphics, BrowseGraphic.class);
+    }
 }

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -22,7 +22,6 @@ import javax.xml.bind.annotation.XmlRoot
 import javax.xml.bind.annotation.XmlType;
 import org.opengis.metadata.citation.Party;
 import org.opengis.metadata.citation.Responsibility;
-import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.citation.Role;
 import org.opengis.metadata.extent.Extent;
 import org.apache.sis.metadata.iso.ISOMetadata;
@@ -119,10 +118,6 @@ public class DefaultResponsibility exten
      *         given object itself), or {@code null} if the argument was null.
      */
     public static DefaultResponsibility castOrCopy(final Responsibility object) {
-        if (object instanceof ResponsibleParty) {
-            return DefaultResponsibleParty.castOrCopy((ResponsibleParty) object);
-        }
-        //-- Intentionally tested after the sub-interfaces.
         if (object == null || object instanceof DefaultResponsibility) {
             return (DefaultResponsibility) object;
         }

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -16,13 +16,21 @@
  */
 package org.apache.sis.metadata.iso.citation;
 
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Collections;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.metadata.citation.Contact;
+import org.opengis.metadata.citation.Party;
+import org.opengis.metadata.citation.Individual;
+import org.opengis.metadata.citation.Organisation;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.metadata.citation.ResponsibleParty;
 import org.opengis.metadata.citation.Role;
 import org.opengis.util.InternationalString;
+import org.apache.sis.util.iso.Types;
 
 
 /**
@@ -52,27 +60,7 @@ public class DefaultResponsibleParty ext
     /**
      * Serial number for inter-operability with different versions.
      */
-    private static final long serialVersionUID = 6460730475638081367L;
-
-    /**
-     * 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;
+    private static final long serialVersionUID = -1022635486627088812L;
 
     /**
      * Constructs an initially empty responsible party.
@@ -96,16 +84,10 @@ public class DefaultResponsibleParty ext
      *
      * @param object The metadata to copy values from, or {@code null} if none.
      *
-     * @see #castOrCopy(ResponsibleParty)
+     * @see #castOrCopy(Responsibility)
      */
-    public DefaultResponsibleParty(final ResponsibleParty object) {
+    public DefaultResponsibleParty(final Responsibility object) {
         super(object);
-        if (object != null) {
-            individualName   = object.getIndividualName();
-            organisationName = object.getOrganisationName();
-            positionName     = object.getPositionName();
-            contactInfo      = object.getContactInfo();
-        }
     }
 
     /**
@@ -117,7 +99,7 @@ public class DefaultResponsibleParty ext
      *   <li>Otherwise if the given object is already an instance of
      *       {@code DefaultResponsibleParty}, then it is returned unchanged.</li>
      *   <li>Otherwise a new {@code DefaultResponsibleParty} instance is created using the
-     *       {@linkplain #DefaultResponsibleParty(ResponsibleParty) copy constructor}
+     *       {@linkplain #DefaultResponsibleParty(Responsibility) copy constructor}
      *       and returned. Note that this is a <cite>shallow</cite> copy operation, since the other
      *       metadata contained in the given object are not recursively copied.</li>
      * </ul>
@@ -126,7 +108,7 @@ public class DefaultResponsibleParty ext
      * @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) {
+    public static DefaultResponsibleParty castOrCopy(final Responsibility object) {
         if (object == null || object instanceof DefaultResponsibleParty) {
             return (DefaultResponsibleParty) object;
         }
@@ -134,16 +116,71 @@ public class DefaultResponsibleParty ext
     }
 
     /**
+     * Returns the name of the first party of the given type, or {@code null} if none.
+     */
+    private InternationalString getName(final Class<? extends Party> type, final boolean position) {
+        final Collection<Party> parties = getParties();
+        if (parties != null) { // May be null on marshalling.
+            for (final Party party : parties) {
+                if (type.isInstance(party)) {
+                    final InternationalString name;
+                    if (position) {
+                        name = ((Individual) party).getPositionName();
+                    } else {
+                        name = party.getName();
+                    }
+                    if (name != null) {
+                        return name;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Sets the name of the first party of the given type.
+     *
+     * @return {@code true} if the name has been set, or {@code false} otherwise.
+     */
+    private boolean setName(final Class<? extends Party> type, final boolean position, final InternationalString name) {
+        checkWritePermission();
+        final Iterator<Party> it = getParties().iterator();
+        while (it.hasNext()) {
+            final Party party = it.next();
+            if (party instanceof AbstractParty && type.isInstance(party)) {
+                if (position) {
+                    ((DefaultIndividual) party).setPositionName(name);
+                } else {
+                    ((AbstractParty) party).setName(name);
+                }
+                if (((AbstractParty) party).isEmpty()) {
+                    it.remove();
+                }
+                return true;
+            }
+        }
+        return name == null; // If no party and name is null, there is nothing to set.
+    }
+
+    /**
      * 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} shall be provided.
      *
+     * <p>This implementation returns the first non-null name of an {@link Individual}
+     * in the collection of {@linkplain #getParties() parties}.</p>
+     *
      * @return Name, surname, given name and title of the responsible person, or {@code null}.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@code getName()} in {@link DefaultIndividual}.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "individualName")
     public String getIndividualName() {
-        return individualName;
+        final InternationalString name = getName(Individual.class, false);
+        return (name != null) ? name.toString() : null;
     }
 
     /**
@@ -151,11 +188,18 @@ public class DefaultResponsibleParty ext
      * Only one of {@code individualName}, {@link #getOrganisationName() organisationName}
      * and {@link #getPositionName() positionName} shall be provided.
      *
+     * <p>This implementation sets the name of the first {@link Individual} found in the collection of
+     * {@linkplain #getParties() parties}, or create a new individual if no existing instance was found.</p>
+     *
      * @param newValue The new individual name, or {@code null} if none.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@code setName(InternationalString)} in {@link DefaultIndividual}.
      */
+    @Deprecated
     public void setIndividualName(final String newValue) {
-        checkWritePermission();
-        individualName = newValue;
+        if (!setName(Individual.class, false, Types.toInternationalString(newValue))) {
+            getParties().add(new DefaultIndividual(newValue, null, null));
+        }
     }
 
     /**
@@ -163,12 +207,18 @@ public class DefaultResponsibleParty ext
      * {@link #getIndividualName() individualName}, {@code organisationName}
      * and {@link #getPositionName() positionName} shall be provided.
      *
+     * <p>This implementation returns the first non-null name of an {@link Organisation}
+     * in the collection of {@linkplain #getParties() parties}.</p>
+     *
      * @return Name of the responsible organization, or {@code null}.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@code getName()} in {@link DefaultOrganisation}.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "organisationName")
     public InternationalString getOrganisationName() {
-        return organisationName;
+        return getName(Organisation.class, false);
     }
 
     /**
@@ -176,11 +226,18 @@ public class DefaultResponsibleParty ext
      * {@link #getIndividualName() individualName}, {@code organisationName}
      * and {@link #getPositionName() positionName} shall be provided.
      *
+     * <p>This implementation sets the name of the first {@link Organisation} found in the collection of
+     * {@linkplain #getParties() parties}, or create a new organization if no existing instance was found.</p>
+     *
      * @param newValue The new organization name, or {@code null} if none.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@code setName(InternationalString)} in {@link DefaultOrganisation}.
      */
+    @Deprecated
     public void setOrganisationName(final InternationalString newValue) {
-        checkWritePermission();
-        organisationName = newValue;
+        if (!setName(Organisation.class, false, Types.toInternationalString(newValue))) {
+            getParties().add(new DefaultOrganisation(newValue, null, null, null));
+        }
     }
 
     /**
@@ -188,12 +245,18 @@ public class DefaultResponsibleParty ext
      * {@link #getIndividualName() individualName}, {@link #getOrganisationName() organisationName}
      * and {@code positionName} shall be provided.
      *
+     * <p>This implementation returns the first non-null position name of an {@link Individual}
+     * in the collection of {@linkplain #getParties() parties}.</p>
+     *
      * @return Role or position of the responsible person, or {@code null}
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link DefaultIndividual#getPositionName()}.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "positionName")
     public InternationalString getPositionName() {
-        return positionName;
+        return getName(DefaultIndividual.class, true);
     }
 
     /**
@@ -201,39 +264,88 @@ public class DefaultResponsibleParty ext
      * {@link #getIndividualName() individualName}, {@link #getOrganisationName() organisationName}
      * and {@code positionName} shall be provided.
      *
+     * <p>This implementation sets the position name of the first {@link Individual} found in the collection of
+     * {@linkplain #getParties() parties}, or create a new individual if no existing instance was found.</p>
+     *
      * @param newValue The new position name, or {@code null} if none.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link DefaultIndividual#setPositionName(InternationalString)}.
      */
+    @Deprecated
     public void setPositionName(final InternationalString newValue) {
-        checkWritePermission();
-        positionName = newValue;
+        if (!setName(DefaultIndividual.class, true, newValue)) {
+            getParties().add(new DefaultIndividual(null, newValue, null));
+        }
     }
 
     /**
      * Returns the address of the responsible party.
      *
+     * <p>This implementation returns the first non-null contact found in the collection of
+     * {@linkplain #getParties() parties}.</p>
+     *
      * @return Address of the responsible party, or {@code null}.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link AbstractParty#getContactInfo()}.
      */
     @Override
+    @Deprecated
     @XmlElement(name = "contactInfo")
     public Contact getContactInfo() {
-        return contactInfo;
+        final Collection<Party> parties = getParties();
+        if (parties != null) { // May be null on marshalling.
+            for (final Party party : parties) {
+                final Collection<? extends Contact> contacts = party.getContactInfo();
+                if (contacts != null) { // May be null on marshalling.
+                    for (final Contact contact : contacts) {
+                        if (contact != null) { // Paranoiac check.
+                            return contact;
+                        }
+                    }
+                }
+            }
+        }
+        return null;
     }
 
     /**
      * Sets the address of the responsible party.
      *
+     * <p>This implementation sets the contact info in the first pary found in the collection of
+     * {@linkplain #getParties() parties}.</p>
+     *
      * @param newValue The new contact info, or {@code null} if none.
+     *
+     * @deprecated As of ISO 19115:2014, replaced by {@link AbstractParty#setContactInfo(Collection)}.
      */
+    @Deprecated
     public void setContactInfo(final Contact newValue) {
         checkWritePermission();
-        contactInfo = newValue;
+        final Iterator<Party> it = getParties().iterator();
+        while (it.hasNext()) {
+            final Party party = it.next();
+            if (party instanceof AbstractParty) {
+                ((AbstractParty) party).setContactInfo(newValue != null ? Collections.singleton(newValue) : null);
+                if (((AbstractParty) party).isEmpty()) {
+                    it.remove();
+                }
+                return;
+            }
+        }
+        /*
+         * If no existing AbstractParty were found, add a new one. However there is no way to know if
+         * it should be an individual or an organization. Arbitrarily choose an individual for now.
+         */
+        if (newValue != null) {
+            getParties().add(new DefaultIndividual(null, null, newValue));
+        }
     }
 
     /**
      * Returns the function performed by the responsible party.
      *
      * @return Function performed by the responsible party.
-     */
+    */
     @Override
     @XmlElement(name = "role", required = true)
     public Role getRole() {

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -21,6 +21,8 @@ import javax.xml.bind.annotation.XmlType
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.geometry.Envelope;
+import org.opengis.metadata.extent.TemporalExtent;
+import org.opengis.metadata.extent.VerticalExtent;
 import org.opengis.metadata.extent.GeographicExtent;
 import org.opengis.metadata.extent.GeographicBoundingBox;
 import org.opengis.metadata.extent.SpatialTemporalExtent;
@@ -32,10 +34,11 @@ import org.apache.sis.internal.metadata.
  * Extent with respect to date/time and spatial boundaries.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Rémi Maréchal (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
  */
 @XmlType(name = "EX_SpatialTemporalExtent_Type")
@@ -53,12 +56,35 @@ public class DefaultSpatialTemporalExten
     private Collection<GeographicExtent> spatialExtent;
 
     /**
+     * Vertical extent component.
+     */
+    private VerticalExtent verticalExtent;
+
+    /**
      * Constructs an initially empty spatial-temporal extent.
      */
     public DefaultSpatialTemporalExtent() {
     }
 
     /**
+     * Constructs a new spatial-temporal extent initialized to the specified values.
+     *
+     * @param spatialExtent  The spatial extent component of composite spatial and temporal extent.
+     * @param verticalExtent The vertical extent component, or {@code null} if none.
+     * @param extent         The date and time for the content of the dataset, or {@code null} if unspecified.
+     *
+     * @since 0.5
+     */
+    public DefaultSpatialTemporalExtent(final GeographicExtent spatialExtent,
+                                        final VerticalExtent verticalExtent,
+                                        final TemporalExtent extent)
+    {
+        super(extent);
+        this.verticalExtent = verticalExtent;
+        this.spatialExtent  = singleton(spatialExtent, GeographicExtent.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.
@@ -70,7 +96,8 @@ public class DefaultSpatialTemporalExten
     public DefaultSpatialTemporalExtent(final SpatialTemporalExtent object) {
         super(object);
         if (object != null) {
-            spatialExtent = copyCollection(object.getSpatialExtent(), GeographicExtent.class);
+            spatialExtent  = copyCollection(object.getSpatialExtent(), GeographicExtent.class);
+            verticalExtent = object.getVerticalExtent();
         }
     }
 
@@ -120,6 +147,31 @@ public class DefaultSpatialTemporalExten
     }
 
     /**
+     * Returns the vertical extent component.
+     *
+     * @return Vertical extent component, or {@code null} if none.
+     *
+     * @since 0.5
+     */
+    @Override
+    @XmlElement(name = "verticalExtent")
+    public VerticalExtent getVerticalExtent() {
+        return verticalExtent;
+    }
+
+    /**
+     * Set the vertical extent component.
+     *
+     * @param newValue The new vertical extent component.
+     *
+     * @since 0.5
+     */
+    public void setVerticalExtent(final VerticalExtent newValue) {
+        checkWritePermission();
+        verticalExtent = newValue;
+    }
+
+    /**
      * Sets this spatio-temporal extent to values inferred from the specified envelope.
      * The envelope shall have at least a temporal component. If a spatial component is
      * also found, then:

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -95,6 +95,7 @@
 @XmlJavaTypeAdapters({
     @XmlJavaTypeAdapter(CI_Citation.class),
     @XmlJavaTypeAdapter(CI_OnlineResource.class),
+    @XmlJavaTypeAdapter(CI_Responsibility.class),
     @XmlJavaTypeAdapter(CI_ResponsibleParty.class),
     @XmlJavaTypeAdapter(DQ_DataQuality.class),
     @XmlJavaTypeAdapter(MD_ApplicationSchemaInformation.class),

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataTestCase.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -45,7 +45,7 @@ import static org.opengis.test.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-2.4)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn(PropertyAccessorTest.class)
@@ -218,6 +218,9 @@ public abstract strictfp class MetadataT
         final int count = accessor.count();
         for (int i=0; i<count; i++) {
             testingMethod = accessor.name(i, KeyNamePolicy.METHOD_NAME);
+            if (skipTest(accessor.implementation, testingMethod)) {
+                continue;
+            }
             final String property = accessor.name(i, KeyNamePolicy.JAVABEANS_PROPERTY);
             assertNotNull("Missing method name.", testingMethod);
             assertNotNull("Missing property name.", property);
@@ -275,4 +278,19 @@ public abstract strictfp class MetadataT
             }
         }
     }
+
+    /**
+     * Returns {@code true} if test for the given property should be skipped.
+     * Reasons for skipping a test are:
+     *
+     * <ul>
+     *   <li>Method which is the delegate of many legacy ISO 19115:2003 methods.
+     *       Having a property that can be modified by many other properties confuse the tests.</li>
+     * </ul>
+     */
+    @SuppressWarnings("deprecation")
+    private static boolean skipTest(final Class<?> implementation, final String method) {
+        return implementation == org.apache.sis.metadata.iso.citation.DefaultResponsibleParty.class
+                && method.equals("getParties");
+    }
 }

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/NameMapTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -64,7 +64,9 @@ public final strictfp class NameMapTest 
             new SimpleEntry<>("otherCitationDetails",  "otherCitationDetails"),
             new SimpleEntry<>("collectiveTitle",       "collectiveTitle"),
             new SimpleEntry<>("ISBN",                  "ISBN"),
-            new SimpleEntry<>("ISSN",                  "ISSN")
+            new SimpleEntry<>("ISSN",                  "ISSN"),
+            new SimpleEntry<>("graphic",               "graphics"),
+            new SimpleEntry<>("onlineResource",        "onlineResources")
         }, map.entrySet().toArray());
 
         assertEquals("alternateTitles", map.get("alternateTitle"));

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -29,8 +29,10 @@ import org.opengis.metadata.extent.Exten
 import org.opengis.metadata.citation.Series;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.CitationDate;
+import org.opengis.metadata.citation.OnlineResource;
 import org.opengis.metadata.citation.PresentationForm;
 import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.metadata.distribution.Format;
 import org.opengis.metadata.constraint.Constraints;
 import org.opengis.metadata.content.AttributeGroup;
@@ -174,13 +176,15 @@ public final strictfp class PropertyAcce
             Citation.class, "getEdition",                 "edition",                 "edition",               "Edition",                    InternationalString.class,
             Citation.class, "getEditionDate",             "editionDate",             "editionDate",           "Edition date",               Date.class,
             Citation.class, "getIdentifiers",             "identifiers",             "identifier",            "Identifiers",                Identifier[].class,
-            Citation.class, "getCitedResponsibleParties", "citedResponsibleParties", "citedResponsibleParty", "Cited responsible parties",  ResponsibleParty[].class,
+            Citation.class, "getCitedResponsibleParties", "citedResponsibleParties", "citedResponsibleParty", "Cited responsible parties",  Responsibility[].class,
             Citation.class, "getPresentationForms",       "presentationForms",       "presentationForm",      "Presentation forms",         PresentationForm[].class,
             Citation.class, "getSeries",                  "series",                  "series",                "Series",                     Series.class,
             Citation.class, "getOtherCitationDetails",    "otherCitationDetails",    "otherCitationDetails",  "Other citation details",     InternationalString.class,
             Citation.class, "getCollectiveTitle",         "collectiveTitle",         "collectiveTitle",       "Collective title",           InternationalString.class,
             Citation.class, "getISBN",                    "ISBN",                    "ISBN",                  "ISBN",                       String.class,
-            Citation.class, "getISSN",                    "ISSN",                    "ISSN",                  "ISSN",                       String.class);
+            Citation.class, "getISSN",                    "ISSN",                    "ISSN",                  "ISSN",                       String.class,
+            Citation.class, "getGraphics",                "graphics",                "graphic",               "Graphics",                   BrowseGraphic[].class,
+            Citation.class, "getOnlineResources",         "onlineResources",         "onlineResource",        "Online resources",           OnlineResource[].class);
     }
 
     /**
@@ -635,6 +639,6 @@ public final strictfp class PropertyAcce
     @Test
     public void testToString() {
         final PropertyAccessor accessor = createPropertyAccessor();
-        assertEquals("PropertyAccessor[13 getters & 13 setters in DefaultCitation:Citation from “ISO 19115”]", accessor.toString());
+        assertEquals("PropertyAccessor[15 getters & 15 setters in DefaultCitation:Citation from “ISO 19115”]", accessor.toString());
     }
 }

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeChildrenTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeChildrenTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeChildrenTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeChildrenTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -310,7 +310,9 @@ public final strictfp class TreeNodeChil
             "Some other details",
             null, // collective title
             null, // ISBN
-            null  // ISSN
+            null, // ISSN
+            null, // onlineResources (collection)
+            null  // graphics (collection)
         };
         assertFalse ("isEmpty()", children.isEmpty());
         assertEquals("size()", expected.length, children.size());

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -20,15 +20,18 @@ import java.util.Locale;
 import org.opengis.metadata.citation.Address;
 import org.opengis.metadata.citation.Contact;
 import org.opengis.metadata.citation.Citation;
-import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.citation.Party;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.metadata.citation.PresentationForm;
 import org.opengis.metadata.citation.Role;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.citation.DefaultAddress;
 import org.apache.sis.metadata.iso.citation.DefaultContact;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
-import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
-import org.apache.sis.util.iso.SimpleInternationalString;
+import org.apache.sis.metadata.iso.citation.DefaultResponsibility;
+import org.apache.sis.metadata.iso.citation.DefaultOrganisation;
+import org.apache.sis.metadata.iso.citation.DefaultIndividual;
+import org.apache.sis.metadata.iso.citation.AbstractParty;
 import org.apache.sis.util.collection.TableColumn;
 import org.apache.sis.util.collection.TreeTable;
 import org.apache.sis.test.DependsOnMethod;
@@ -45,7 +48,7 @@ import static org.junit.Assert.*;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn(TreeNodeChildrenTest.class)
@@ -56,39 +59,40 @@ public final strictfp class TreeNodeTest
      *
      * {@preformat text
      *   Citation
-     *     ├─Title…………………………………………………………………………………… Some title
-     *     ├─Alternate title (1 of 2)………………………………… First alternate title
-     *     ├─Alternate title (2 of 2)………………………………… Second alternate title
-     *     ├─Edition……………………………………………………………………………… Some edition
+     *     ├─Title…………………………………………………………………………………………… Some title
+     *     ├─Alternate title (1 of 2)………………………………………… First alternate title
+     *     ├─Alternate title (2 of 2)………………………………………… Second alternate title
+     *     ├─Edition……………………………………………………………………………………… Some edition
      *     ├─Cited responsible party (1 of 2)
-     *     │   ├─Organisation name………………………………………… Some organisation
-     *     │   └─Role…………………………………………………………………………… Distributor
+     *     │   └─Party (Organisation)
+     *     │      ├─Name…………………………………………………………………………… Some organisation
+     *     │      └─Role…………………………………………………………………………… Distributor
      *     ├─Cited responsible party (2 of 2)
-     *     │   ├─Individual name……………………………………………… Some person of contact
-     *     │   ├─Contact info
-     *     │   │   └─Address
-     *     │   │       └─Electronic mail address…… Some email
-     *     │   └─Role…………………………………………………………………………… Point of contact
-     *     ├─Presentation form (1 of 2)…………………………… Map digital
-     *     ├─Presentation form (2 of 2)…………………………… map hardcopy
-     *     └─Other citation details……………………………………… Some other details
+     *     │   └─Party (Individual)
+     *     │      ├─Name…………………………………………………………………………… Some person of contact
+     *     │      ├─Contact info
+     *     │      │   └─Address
+     *     │      │       └─Electronic mail address…… Some email
+     *     │      └─Role…………………………………………………………………………… Point of contact
+     *     ├─Presentation form (1 of 2)…………………………………… Map digital
+     *     ├─Presentation form (2 of 2)…………………………………… map hardcopy
+     *     └─Other citation details……………………………………………… Some other details
      * }
      */
     static DefaultCitation metadataWithHierarchy() {
         final DefaultCitation citation = TreeNodeChildrenTest.metadataWithMultiOccurrences();
-        DefaultResponsibleParty party = new DefaultResponsibleParty(Role.DISTRIBUTOR);
-        party.setOrganisationName(new SimpleInternationalString("Some organisation"));
-        citation.getCitedResponsibleParties().add(party);
+        AbstractParty party = new DefaultOrganisation("Some organisation", null, null, null);
+        DefaultResponsibility responsibility = new DefaultResponsibility(Role.DISTRIBUTOR, null, party);
+        citation.getCitedResponsibleParties().add(responsibility);
 
         // Add a second responsible party with deeper hierarchy.
-        party = new DefaultResponsibleParty(Role.POINT_OF_CONTACT);
-        party.setIndividualName("Some person of contact");
         final DefaultContact contact = new DefaultContact();
         final DefaultAddress address = new DefaultAddress();
         address.getElectronicMailAddresses().add("Some email");
         contact.getAddresses().add(address);
-        party.setContactInfo(contact);
-        citation.getCitedResponsibleParties().add(party);
+        party = new DefaultIndividual("Some person of contact", null, contact);
+        responsibility = new DefaultResponsibility(Role.POINT_OF_CONTACT, null, party);
+        citation.getCitedResponsibleParties().add(responsibility);
         return citation;
     }
 
@@ -172,13 +176,15 @@ public final strictfp class TreeNodeTest
               "Alternate title (2 of 2)",
               "Edition",
               "Cited responsible party (1 of 2)",
-                "Organisation name",
+                "Party",
+                  "Name",
                 "Role",
               "Cited responsible party (2 of 2)",
-                "Individual name",
-                "Contact info",
-                  "Address",
-                    "Electronic mail address",
+                "Party",
+                  "Name",
+                  "Contact info",
+                    "Address",
+                      "Electronic mail address",
                 "Role",
               "Presentation form (1 of 2)",
               "Presentation form (2 of 2)",
@@ -202,13 +208,15 @@ public final strictfp class TreeNodeTest
               "alternateTitle",
               "edition",
               "citedResponsibleParty",
-                "organisationName",
+                "party",
+                  "name",
                 "role",
               "citedResponsibleParty",
-                "individualName",
-                "contactInfo",
-                  "address",
-                    "electronicMailAddress",
+                "party",
+                  "name",
+                  "contactInfo",
+                    "address",
+                      "electronicMailAddress",
                 "role",
               "presentationForm",
               "presentationForm",
@@ -231,13 +239,15 @@ public final strictfp class TreeNodeTest
               ONE,          // alternateTitle
               null,         // edition
               ZERO,         // citedResponsibleParty
-                null,       // organisationName
+                ZERO,       // party (organisation)
+                  null,     // name
                 null,       // role
               ONE,          // citedResponsibleParty
-                null,       // individualName
-                null,       // contactInfo
-                  ZERO,     // address
-                    ZERO,   // electronicMailAddress
+                ZERO,       // party (individual)
+                  null,     // name
+                  ZERO,     // contactInfo
+                    ZERO,   // address
+                      ZERO, // electronicMailAddress
                 null,       // role
               ZERO,         // presentationForm
               ONE,          // presentationForm
@@ -257,14 +267,16 @@ public final strictfp class TreeNodeTest
               InternationalString.class,
               InternationalString.class,
               InternationalString.class,
-              ResponsibleParty.class,
-                InternationalString.class,
+              Responsibility.class,
+                Party.class,
+                  InternationalString.class,
                 Role.class,
-              ResponsibleParty.class,
-                String.class,
-                Contact.class,
-                  Address.class,
-                    String.class,
+              Responsibility.class,
+                Party.class,
+                  InternationalString.class,
+                  Contact.class,
+                    Address.class,
+                      String.class,
                 Role.class,
               PresentationForm.class,
               PresentationForm.class,
@@ -285,13 +297,15 @@ public final strictfp class TreeNodeTest
               "Second alternate title",
               "Some edition",
               null, // ResponsibleParty
-                "Some organisation",
+                null, // Party (organisation)
+                  "Some organisation",
                 Role.DISTRIBUTOR,
               null, // ResponsibleParty
-                "Some person of contact",
-                null, // Contact
-                  null, // Address
-                    "Some email",
+                null, // Party (individual)
+                  "Some person of contact",
+                  null, // Contact
+                    null, // Address
+                      "Some email",
                 Role.POINT_OF_CONTACT,
               PresentationForm.MAP_DIGITAL,
               PresentationForm.MAP_HARDCOPY,

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableFormatTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -29,7 +29,8 @@ import org.apache.sis.util.iso.SimpleInt
 import org.apache.sis.metadata.iso.content.DefaultBand;
 import org.apache.sis.metadata.iso.content.DefaultImageDescription;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
-import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty;
+import org.apache.sis.metadata.iso.citation.DefaultIndividual;
+import org.apache.sis.metadata.iso.citation.DefaultResponsibility;
 import org.apache.sis.metadata.iso.identification.DefaultKeywords;
 import org.apache.sis.metadata.iso.identification.DefaultDataIdentification;
 import org.apache.sis.metadata.iso.lineage.DefaultProcessing;
@@ -45,7 +46,7 @@ import static org.apache.sis.test.Assert
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.3 (derived from geotk-3.00)
- * @version 0.3
+ * @version 0.5
  * @module
  */
 @DependsOn(TreeTableViewTest.class)
@@ -87,13 +88,11 @@ public final strictfp class TreeTableFor
         citation.getAlternateTitles().add(new SimpleInternationalString("Alt A"));
         citation.getAlternateTitles().add(new SimpleInternationalString("Alt B"));
 
-        final DefaultResponsibleParty author = new DefaultResponsibleParty();
-        author.setIndividualName("Testsuya Toyoda");
-        author.setRole(Role.AUTHOR);
-        citation.getCitedResponsibleParties().add(author);
-        final DefaultResponsibleParty duplicated = new DefaultResponsibleParty();
-        duplicated.setIndividualName("A japanese author");
-        citation.getCitedResponsibleParties().add(duplicated);
+        citation.getCitedResponsibleParties().add(new DefaultResponsibility(Role.AUTHOR, null,
+                new DefaultIndividual("Testsuya Toyoda", null, null)));
+        citation.getCitedResponsibleParties().add(new DefaultResponsibility(null, null,
+                new DefaultIndividual("A japanese author", null, null)));
+
         return citation;
     }
 
@@ -114,10 +113,12 @@ public final strictfp class TreeTableFor
             "  │   └─Authority\n" +
             "  │       └─Title………………………………………………… ISBN\n" +
             "  ├─Cited responsible party (1 of 2)\n" +
-            "  │   ├─Individual name………………………………… Testsuya Toyoda\n" +
+            "  │   ├─Party\n" +
+            "  │   │   └─Name…………………………………………………… Testsuya Toyoda\n" +
             "  │   └─Role……………………………………………………………… Author\n" +
             "  ├─Cited responsible party (2 of 2)\n" +
-            "  │   └─Individual name………………………………… A japanese author\n" +
+            "  │   └─Party\n" +
+            "  │       └─Name…………………………………………………… A japanese author\n" +
             "  ├─Presentation form (1 of 2)……………… Document hardcopy\n" +
             "  ├─Presentation form (2 of 2)……………… Image hardcopy\n" +
             "  └─ISBN………………………………………………………………………… 9782505004509\n", text);
@@ -133,7 +134,7 @@ public final strictfp class TreeTableFor
         final DefaultCitation untitled = new DefaultCitation();
         titled  .getPresentationForms().add(PresentationForm.DOCUMENT_HARDCOPY);
         coded   .getPresentationForms().add(PresentationForm.IMAGE_HARDCOPY);
-        untitled.getCitedResponsibleParties().add(new DefaultResponsibleParty(Role.AUTHOR));
+        untitled.getCitedResponsibleParties().add(new DefaultResponsibility(Role.AUTHOR, null, null));
         final DefaultProcessing processing = new DefaultProcessing();
         processing.getDocumentations().add(titled);
         processing.getDocumentations().add(coded);

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -54,22 +54,24 @@ public final strictfp class TreeTableVie
      */
     private static final String EXPECTED =
             "Citation\n" +
-            "  ├─Title…………………………………………………………………………………… Some title\n" +
-            "  ├─Alternate title (1 of 2)………………………………… First alternate title\n" +
-            "  ├─Alternate title (2 of 2)………………………………… Second alternate title\n" +
-            "  ├─Edition……………………………………………………………………………… Some edition\n" +
+            "  ├─Title……………………………………………………………………………………………… Some title\n" +
+            "  ├─Alternate title (1 of 2)…………………………………………… First alternate title\n" +
+            "  ├─Alternate title (2 of 2)…………………………………………… Second alternate title\n" +
+            "  ├─Edition………………………………………………………………………………………… Some edition\n" +
             "  ├─Cited responsible party (1 of 2)\n" +
-            "  │   ├─Organisation name………………………………………… Some organisation\n" +
-            "  │   └─Role…………………………………………………………………………… Distributor\n" +
+            "  │   ├─Party\n" +
+            "  │   │   └─Name…………………………………………………………………………… Some organisation\n" +
+            "  │   └─Role……………………………………………………………………………………… Distributor\n" +
             "  ├─Cited responsible party (2 of 2)\n" +
-            "  │   ├─Individual name……………………………………………… Some person of contact\n" +
-            "  │   ├─Contact info\n" +
-            "  │   │   └─Address\n" +
-            "  │   │       └─Electronic mail address…… Some email\n" +
-            "  │   └─Role…………………………………………………………………………… Point of contact\n" +
-            "  ├─Presentation form (1 of 2)…………………………… Map digital\n" +
-            "  ├─Presentation form (2 of 2)…………………………… Map hardcopy\n" +
-            "  └─Other citation details……………………………………… Some other details\n";
+            "  │   ├─Party\n" +
+            "  │   │   ├─Name…………………………………………………………………………… Some person of contact\n" +
+            "  │   │   └─Contact info\n" +
+            "  │   │       └─Address\n" +
+            "  │   │           └─Electronic mail address…… Some email\n" +
+            "  │   └─Role……………………………………………………………………………………… Point of contact\n" +
+            "  ├─Presentation form (1 of 2)……………………………………… Map digital\n" +
+            "  ├─Presentation form (2 of 2)……………………………………… Map hardcopy\n" +
+            "  └─Other citation details………………………………………………… Some other details\n";
 
     /**
      * Tests {@link TreeTableView#toString()}.

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TypeMapTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TypeMapTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TypeMapTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/TypeMapTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -22,11 +22,13 @@ import java.util.Date;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.CitationDate;
+import org.opengis.metadata.citation.OnlineResource;
 import org.opengis.metadata.citation.PresentationForm;
-import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.metadata.citation.Series;
 import org.opengis.metadata.extent.GeographicExtent;
 import org.opengis.metadata.extent.GeographicDescription;
+import org.opengis.metadata.identification.BrowseGraphic;
 import org.opengis.util.InternationalString;
 import org.apache.sis.metadata.iso.citation.DefaultCitation;
 import org.apache.sis.metadata.iso.extent.AbstractGeographicExtent;
@@ -68,13 +70,15 @@ public final strictfp class TypeMapTest 
             new SimpleEntry<>("edition",               InternationalString.class),
             new SimpleEntry<>("editionDate",           Date.class),
             new SimpleEntry<>("identifier",            Identifier.class),
-            new SimpleEntry<>("citedResponsibleParty", ResponsibleParty.class),
+            new SimpleEntry<>("citedResponsibleParty", Responsibility.class),
             new SimpleEntry<>("presentationForm",      PresentationForm.class),
             new SimpleEntry<>("series",                Series.class),
             new SimpleEntry<>("otherCitationDetails",  InternationalString.class),
             new SimpleEntry<>("collectiveTitle",       InternationalString.class),
             new SimpleEntry<>("ISBN",                  String.class),
-            new SimpleEntry<>("ISSN",                  String.class)
+            new SimpleEntry<>("ISSN",                  String.class),
+            new SimpleEntry<>("graphic",               BrowseGraphic.class),
+            new SimpleEntry<>("onlineResource",        OnlineResource.class)
         }, map.entrySet().toArray());
 
         assertEquals(InternationalString.class, map.get("alternateTitle"));

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/ValueMapTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -170,7 +170,9 @@ public final strictfp class ValueMapTest
             new SimpleEntry<>("identifiers",             citation.getIdentifiers()),
             new SimpleEntry<>("citedResponsibleParties", singletonList(author)),
             new SimpleEntry<>("presentationForms",       emptySet()),
-            new SimpleEntry<>("ISBN",                    "9782505004509")
+            new SimpleEntry<>("ISBN",                    "9782505004509"),
+            new SimpleEntry<>("graphics",                emptyList()),
+            new SimpleEntry<>("onlineResources",         emptyList())
         }, all.entrySet().toArray());
     }
 
@@ -198,7 +200,9 @@ public final strictfp class ValueMapTest
             new SimpleEntry<>("identifiers",             citation.getIdentifiers()),
             new SimpleEntry<>("citedResponsibleParties", singletonList(author)),
             new SimpleEntry<>("presentationForms",       emptySet()),
-            new SimpleEntry<>("ISBN",                    "9782505004509")
+            new SimpleEntry<>("ISBN",                    "9782505004509"),
+            new SimpleEntry<>("graphics",                emptyList()),
+            new SimpleEntry<>("onlineResources",         emptyList())
         }, all.entrySet().toArray());
     }
 
@@ -229,7 +233,9 @@ public final strictfp class ValueMapTest
             new SimpleEntry<>("otherCitationDetails",    null),
             new SimpleEntry<>("collectiveTitle",         null),
             new SimpleEntry<>("ISBN",                    "9782505004509"),
-            new SimpleEntry<>("ISSN",                    null)
+            new SimpleEntry<>("ISSN",                    null),
+            new SimpleEntry<>("graphics",                emptyList()),
+            new SimpleEntry<>("onlineResources",         emptyList())
         }, all.entrySet().toArray());
     }
 

Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/AllMetadataTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -144,7 +144,6 @@ public final strictfp class AllMetadataT
             org.opengis.metadata.identification.Progress.class,
             org.opengis.metadata.identification.RepresentativeFraction.class,
             org.opengis.metadata.identification.Resolution.class,
-            org.opengis.metadata.identification.ServiceIdentification.class,
             org.opengis.metadata.identification.TopicCategory.class,
             org.opengis.metadata.identification.Usage.class,
             org.opengis.metadata.lineage.Algorithm.class,
@@ -192,6 +191,7 @@ public final strictfp class AllMetadataT
             org.opengis.metadata.service.OperationChainMetadata.class,
             org.opengis.metadata.service.OperationMetadata.class,
             org.opengis.metadata.service.Parameter.class,
+//          org.opengis.metadata.service.ServiceIdentification.class,
             org.opengis.metadata.spatial.CellGeometry.class,
             org.opengis.metadata.spatial.Dimension.class,
             org.opengis.metadata.spatial.DimensionNameType.class,

Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -115,6 +115,13 @@ public abstract class PropertyType<Value
         extends XmlAdapter<ValueType,BoundType>
 {
     /**
+     * {@code true} if marshalling an XML based on ISO 19115:2003 model. A value of {@code false}
+     * (ISO 19115:2014 model) is not yet supported, so we currently use this variable only as a way
+     * to identify the code to revisit when we will want to support the new model.
+     */
+    protected static final boolean LEGACY_XML = true;
+
+    /**
      * The wrapped GeoAPI metadata instance, or {@code null} if the metadata shall not be marshalled.
      * Metadata are not marshalled when replaced by {@code xlink:href} or {@code uuidref} attributes.
      */

Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -23,9 +23,11 @@ import java.io.Serializable;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.citation.Citation;
 import org.opengis.metadata.citation.CitationDate;
+import org.opengis.metadata.citation.OnlineResource;
 import org.opengis.metadata.citation.PresentationForm;
-import org.opengis.metadata.citation.ResponsibleParty;
+import org.opengis.metadata.citation.Responsibility;
 import org.opengis.metadata.citation.Series;
+import org.opengis.metadata.identification.BrowseGraphic;
 import org.opengis.util.InternationalString;
 import org.apache.sis.util.iso.SimpleInternationalString;
 import org.apache.sis.util.Debug;
@@ -84,13 +86,15 @@ public class SimpleCitation implements C
     @Override public InternationalString              getEdition()                 {return null;}
     @Override public Date                             getEditionDate()             {return null;}
     @Override public Collection<? extends Identifier> getIdentifiers()             {return Collections.emptyList();}
-    @Override public Collection<ResponsibleParty>     getCitedResponsibleParties() {return Collections.emptyList();}
+    @Override public Collection<Responsibility>       getCitedResponsibleParties() {return Collections.emptyList();}
     @Override public Collection<PresentationForm>     getPresentationForms()       {return Collections.emptyList();}
     @Override public Series                           getSeries()                  {return null;}
     @Override public InternationalString              getOtherCitationDetails()    {return null;}
     @Override public InternationalString              getCollectiveTitle()         {return null;}
     @Override public String                           getISBN()                    {return null;}
     @Override public String                           getISSN()                    {return null;}
+    @Override public Collection<OnlineResource>       getOnlineResources()         {return Collections.emptyList();}
+    @Override public Collection<BrowseGraphic>        getGraphics()                {return Collections.emptyList();}
 
     /**
      * Compares the given object with this citation for equality.

Modified: sis/branches/JDK7/profiles/sis-french-profile/src/test/java/org/apache/sis/internal/profile/fra/DirectReferenceSystemTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/profiles/sis-french-profile/src/test/java/org/apache/sis/internal/profile/fra/DirectReferenceSystemTest.java?rev=1610553&r1=1610552&r2=1610553&view=diff
==============================================================================
--- sis/branches/JDK7/profiles/sis-french-profile/src/test/java/org/apache/sis/internal/profile/fra/DirectReferenceSystemTest.java [UTF-8] (original)
+++ sis/branches/JDK7/profiles/sis-french-profile/src/test/java/org/apache/sis/internal/profile/fra/DirectReferenceSystemTest.java [UTF-8] Mon Jul 14 22:59:26 2014
@@ -27,7 +27,6 @@ import org.apache.sis.test.XMLTestCase;
 import org.junit.Test;
 
 import static org.apache.sis.test.Assert.*;
-import static org.apache.sis.test.TestUtilities.getSingleton;
 
 
 /**
@@ -36,7 +35,7 @@ import static org.apache.sis.test.TestUt
  * @author  Cédric Briançon (Geomatys)
  * @author  Guilhem Legal (Geomatys)
  * @version 0.4 (derived from geotk-3.00)
- * @since   0.4
+ * @since   0.5
  * @module
  */
 public final strictfp class DirectReferenceSystemTest extends XMLTestCase {
@@ -50,8 +49,9 @@ public final strictfp class DirectRefere
      */
     private static DefaultMetadata createMetadata() {
         final DefaultMetadata metadata = new DefaultMetadata();
-        final DirectReferenceSystem refSys = new DirectReferenceSystem(new ImmutableIdentifier(
-                new DefaultCitation(getSingleton(HardCodedCitations.EPSG.getCitedResponsibleParties())), null, "4326"));
+        final DefaultCitation citation = new DefaultCitation("European Petroleum Survey Group");
+        citation.setCitedResponsibleParties(HardCodedCitations.EPSG.getCitedResponsibleParties());
+        final DirectReferenceSystem refSys = new DirectReferenceSystem(new ImmutableIdentifier(citation, null, "4326"));
         metadata.setReferenceSystemInfo(Arrays.asList(refSys));
         return metadata;
     }



Mime
View raw message