Author: desruisseaux
Date: Wed Mar 20 11:59:20 2013
New Revision: 1458777

URL: http://svn.apache.org/r1458777
Log:
Ported the metadata constraint package.

Added:
    
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
   (with props)
    
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
   (with props)
Modified:
    
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
    
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java
    
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java
    
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/referencing/DefaultReferenceIdentifier.java

Modified: 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java?rev=1458777&r1=1458776&r2=1458777&view=diff
==============================================================================
--- 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
 [UTF-8] (original)
+++ 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
 [UTF-8] Wed Mar 20 11:59:20 2013
@@ -369,7 +369,7 @@ public abstract class ModifiableMetadata
                  * freeze() method is under progress. The source collection is 
already
                  * an unmodifiable instance created by unmodifiable(Object).
                  */
-                assert 
collectionType(elementType).isAssignableFrom(source.getClass());
+                assert collectionType(elementType).isInstance(source);
                 return (Collection<E>) source;
             }
             checkWritePermission();
@@ -403,15 +403,13 @@ public abstract class ModifiableMetadata
 
     /**
      * Returns the specified list, or a new one if {@code c} is null.
-     * This is a convenience method for implementation of {@code getFoo()}
-     * methods.
+     * This is a convenience method for implementation of {@code getFoo()} 
methods.
      *
      * @param  <E> The type of elements in the list.
-     * @param  c The list to checks.
+     * @param  c The existing list, or {@code null} if the list has not yet 
been created.
      * @param  elementType The element type (used only if {@code c} is null).
      * @return {@code c}, or a new list if {@code c} is null.
      */
-    // See the comments in nonNullCollection(...) for implementation notes.
     protected final <E> List<E> nonNullList(final List<E> c, final Class<E> 
elementType) {
         assert Thread.holdsLock(this);
         if (c != null) {
@@ -428,15 +426,13 @@ public abstract class ModifiableMetadata
 
     /**
      * Returns the specified set, or a new one if {@code c} is null.
-     * This is a convenience method for implementation of {@code getFoo()}
-     * methods.
+     * This is a convenience method for implementation of {@code getFoo()} 
methods.
      *
      * @param  <E> The type of elements in the set.
-     * @param  c The set to checks.
+     * @param  c The existing set, or {@code null} if the set has not yet been 
created.
      * @param  elementType The element type (used only if {@code c} is null).
      * @return {@code c}, or a new set if {@code c} is null.
      */
-    // See the comments in nonNullCollection(...) for implementation notes.
     protected final <E> Set<E> nonNullSet(final Set<E> c, final Class<E> 
elementType) {
         assert Thread.holdsLock(this);
         if (c != null) {
@@ -453,28 +449,25 @@ public abstract class ModifiableMetadata
 
     /**
      * Returns the specified collection, or a new one if {@code c} is null.
-     * This is a convenience method for implementation of {@code getFoo()}
-     * methods.
+     * This is a convenience method for implementation of {@code getFoo()} 
methods.
      *
      * {@section Choosing a collection type}
-     * Implementations shall invoke {@link #nonNullList nonNullList} or {@link 
#nonNullSet
-     * nonNullSet} instead than this method when the collection type is 
enforced by ISO
+     * Implementations shall invoke {@link #nonNullList nonNullList(…)} or 
{@link #nonNullSet
+     * nonNullSet(…)} instead than this method when the collection type is 
enforced by ISO
      * specification. When the type is not enforced by the specification, some 
freedom are
      * allowed at implementor choice. The default implementation invokes
      * {@link #collectionType(Class)} in order to get a hint about whether a 
{@link List}
      * or a {@link Set} should be used.
      *
      * @param  <E> The type of elements in the collection.
-     * @param  c The collection to checks.
+     * @param  c The existing collection, or {@code null} if the collection 
has not yet been created.
      * @param  elementType The element type (used only if {@code c} is null).
      * @return {@code c}, or a new collection if {@code c} is null.
      */
-    // Despite the javadoc claims, we do not yet return null during copy 
operations.
-    // However a future version may do so if it appears worth on a performance 
point of view.
     protected final <E> Collection<E> nonNullCollection(final Collection<E> c, 
final Class<E> elementType) {
         assert Thread.holdsLock(this);
         if (c != null) {
-            assert collectionType(elementType).isAssignableFrom(c.getClass());
+            assert collectionType(elementType).isInstance(c);
             return c.isEmpty() && isMarshaling() ? null : c;
         }
         if (isMarshaling()) {
@@ -497,6 +490,34 @@ public abstract class ModifiableMetadata
     }
 
     /**
+     * Creates a modifiable collection containing only the given value, if 
non-null.
+     * This is a convenience method for initializing fields in subclass 
constructors.
+     * This method should not be invoked in other context.
+     *
+     * <p>The collection type is selected as described in the
+     * {@link #nonNullCollection(Collection, Class)}.</p>
+     *
+     * @param  <E> The type of elements in the collection.
+     * @param  elementType The element type (used only if {@code value} is 
non-null).
+     * @param  value The singleton value to put in the returned collection, or 
{@code null}.
+     * @return A new modifiable collection containing the given value, or 
{@code null} if
+     *         the given value was null.
+     */
+    protected final <E> Collection<E> singleton(final Class<E> elementType, 
final E value) {
+        if (value == null) {
+            return null;
+        }
+        final Collection<E> collection;
+        if (useSet(elementType)) {
+            collection = new MutableSet<>(elementType);
+        } else {
+            collection = new MutableList<>(elementType);
+        }
+        collection.add(value);
+        return collection;
+    }
+
+    /**
      * A checked set synchronized on the enclosing {@link ModifiableMetadata}.
      * Used for mutable sets only.
      */

Modified: 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java?rev=1458777&r1=1458776&r2=1458777&view=diff
==============================================================================
--- 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java
 [UTF-8] (original)
+++ 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultConstraints.java
 [UTF-8] Wed Mar 20 11:59:20 2013
@@ -13,20 +13,118 @@
  * 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.
+ *
+ * This package contains documentation from OGC specifications.
+ * Open Geospatial Consortium's work is fully acknowledged here.
  */
 package org.apache.sis.metadata.iso.constraint;
 
 import java.util.Collection;
-import org.opengis.metadata.constraint.Constraints;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
+import org.opengis.metadata.constraint.Constraints;
+import org.opengis.metadata.constraint.LegalConstraints;
+import org.opengis.metadata.constraint.SecurityConstraints;
 import org.apache.sis.metadata.iso.ISOMetadata;
+import org.apache.sis.util.iso.Types;
+
 
+/**
+ * Restrictions on the access and use of a resource or metadata.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "MD_Constraints_Type")
+@XmlRootElement(name = "MD_Constraints")
+@XmlSeeAlso({
+    DefaultLegalConstraints.class,
+    DefaultSecurityConstraints.class
+})
 public class DefaultConstraints extends ISOMetadata implements Constraints {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = 1771854790746022204L;
 
+    /**
+     * Limitation affecting the fitness for use of the resource.
+     * Example: "<cite>not to be used for navigation</cite>".
+     */
     private Collection<InternationalString> useLimitations;
 
+    /**
+     * Constructs an initially empty constraints.
+     */
+    public DefaultConstraints() {
+    }
+
+    /**
+     * Constructs a new constraints with the given {@linkplain 
#getUseLimitations() use limitation}.
+     *
+     * @param useLimitation The use limitation, or {@code null} if none.
+     */
+    public DefaultConstraints(final CharSequence useLimitation) {
+        useLimitations = singleton(InternationalString.class, 
Types.toInternationalString(useLimitation));
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the 
given arbitrary
+     * implementation. If the given object is {@code null}, then this method 
returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the 
given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and 
initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy 
operation
+     * (i.e. properties are not cloned).
+     *
+     * <p>This method checks for the {@link LegalConstraints} and {@link 
SecurityConstraints}
+     * sub-interfaces. If one of those interfaces is found, then this method 
delegates to the
+     * corresponding {@code castOrCopy} static method. If the given object 
implements more
+     * than one of the above-cited interfaces, then the {@code castOrCopy} 
method to be used
+     * is unspecified.</p>
+     *
+     * @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 DefaultConstraints castOrCopy(final Constraints object) {
+        if (object instanceof LegalConstraints) {
+            return DefaultLegalConstraints.castOrCopy((LegalConstraints) 
object);
+        }
+        if (object instanceof SecurityConstraints) {
+            return DefaultSecurityConstraints.castOrCopy((SecurityConstraints) 
object);
+        }
+        if (object == null || object instanceof DefaultConstraints) {
+            return (DefaultConstraints) object;
+        }
+        final DefaultConstraints copy = new DefaultConstraints();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the limitation affecting the fitness for use of the resource.
+     * Example: "<cite>not to be used for navigation</cite>".
+     */
     @Override
+    @XmlElement(name = "useLimitation")
     public synchronized Collection<InternationalString> getUseLimitations() {
-        return useLimitations;
+        return useLimitations = nonNullCollection(useLimitations, 
InternationalString.class);
+    }
+
+    /**
+     * Sets the limitation affecting the fitness for use of the resource.
+     * Example: "<cite>not to be used for navigation</cite>".
+     *
+     * @param newValues The new use limitations.
+     */
+    public synchronized void setUseLimitations(final Collection<? extends 
InternationalString> newValues) {
+        useLimitations = copyCollection(newValues, useLimitations, 
InternationalString.class);
     }
 }

Modified: 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java?rev=1458777&r1=1458776&r2=1458777&view=diff
==============================================================================
--- 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java
 [UTF-8] (original)
+++ 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java
 [UTF-8] Wed Mar 20 11:59:20 2013
@@ -13,34 +13,148 @@
  * 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.
+ *
+ * This package contains documentation from OGC specifications.
+ * Open Geospatial Consortium's work is fully acknowledged here.
  */
 package org.apache.sis.metadata.iso.constraint;
 
 import java.util.Collection;
-import org.opengis.metadata.constraint.LegalConstraints;
-import org.opengis.metadata.constraint.Restriction;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
 import org.opengis.util.InternationalString;
+import org.opengis.metadata.constraint.Restriction;
+import org.opengis.metadata.constraint.LegalConstraints;
 
-public class DefaultLegalConstraints extends DefaultConstraints implements 
LegalConstraints {
 
+/**
+ * Restrictions and legal prerequisites for accessing and using the resource.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "MD_LegalConstraints_Type", propOrder = {
+    "accessConstraints",
+    "useConstraints",
+    "otherConstraints"
+})
+@XmlRootElement(name = "MD_LegalConstraints")
+public class DefaultLegalConstraints extends DefaultConstraints implements 
LegalConstraints {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = -2891061818279024901L;
+
+    /**
+     * Access constraints applied to assure the protection of privacy or 
intellectual property,
+     * and any special restrictions or limitations on obtaining the resource.
+     */
     private Collection<Restriction> accessConstraints;
 
+    /**
+     * Constraints applied to assure the protection of privacy or intellectual 
property,
+     * and any special restrictions or limitations or warnings on using the 
resource.
+     */
     private Collection<Restriction> useConstraints;
 
+    /**
+     * Other restrictions and legal prerequisites for accessing and using the 
resource.
+     * Should be a non-empty value only if {@linkplain #getAccessConstraints() 
access constraints}
+     * or {@linkplain #getUseConstraints() use constraints} declares
+     * {@linkplain Restriction#OTHER_RESTRICTIONS other restrictions}.
+     */
     private Collection<InternationalString> otherConstraints;
 
+    /**
+     * Constructs an initially empty constraints.
+     */
+    public DefaultLegalConstraints() {
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the 
given arbitrary
+     * implementation. If the given object is {@code null}, then this method 
returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the 
given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and 
initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy 
operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code 
null} if none.
+     * @return A SIS implementation containing the values of the given object 
(may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultLegalConstraints castOrCopy(final LegalConstraints 
object) {
+        if (object == null || object instanceof DefaultLegalConstraints) {
+            return (DefaultLegalConstraints) object;
+        }
+        final DefaultLegalConstraints copy = new DefaultLegalConstraints();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the access constraints applied to assure the protection of 
privacy or intellectual property,
+     * and any special restrictions or limitations on obtaining the resource.
+     */
     @Override
+    @XmlElement(name = "accessConstraints")
     public synchronized Collection<Restriction> getAccessConstraints() {
-        return accessConstraints;
+        return accessConstraints = nonNullCollection(accessConstraints, 
Restriction.class);
+    }
+
+    /**
+     * Sets the access constraints applied to assure the protection of privacy 
or intellectual property,
+     * and any special restrictions or limitations on obtaining the resource.
+     *
+     * @param newValues The new access constraints.
+     */
+    public synchronized void setAccessConstraints(final Collection<? extends 
Restriction> newValues) {
+        accessConstraints = copyCollection(newValues, accessConstraints, 
Restriction.class);
     }
 
+    /**
+     * Returns the constraints applied to assure the protection of privacy or 
intellectual property,
+     * and any special restrictions or limitations or warnings on using the 
resource.
+     */
     @Override
+    @XmlElement(name = "useConstraints")
     public synchronized Collection<Restriction> getUseConstraints() {
-        return useConstraints;
+        return useConstraints = nonNullCollection(useConstraints, 
Restriction.class);
     }
 
+    /**
+     * Sets the constraints applied to assure the protection of privacy or 
intellectual property,
+     * and any special restrictions or limitations or warnings on using the 
resource.
+     *
+     * @param newValues The new use constraints.
+     */
+    public synchronized void setUseConstraints(final Collection<? extends 
Restriction> newValues) {
+        useConstraints = copyCollection(newValues, useConstraints, 
Restriction.class);
+    }
+
+    /**
+     * Returns the other restrictions and legal prerequisites for accessing 
and using the resource.
+     * Should be a non-empty value only if {@linkplain #getAccessConstraints() 
access constraints}
+     * or {@linkplain #getUseConstraints() use constraints} declares
+     * {@linkplain Restriction#OTHER_RESTRICTIONS other restrictions}.
+     */
     @Override
+    @XmlElement(name = "otherConstraints")
     public synchronized Collection<InternationalString> getOtherConstraints() {
-        return otherConstraints;
+        return otherConstraints = nonNullCollection(otherConstraints, 
InternationalString.class);
+    }
+
+    /**
+     * Sets the other restrictions and legal prerequisites for accessing and 
using the resource.
+     *
+     * @param newValues Other constraints.
+     */
+    public synchronized void setOtherConstraints(final Collection<? extends 
InternationalString> newValues) {
+        otherConstraints = copyCollection(newValues, otherConstraints, 
InternationalString.class);
     }
 }

Added: 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java?rev=1458777&view=auto
==============================================================================
--- 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
 (added)
+++ 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
 [UTF-8] Wed Mar 20 11:59:20 2013
@@ -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.
+ *
+ * This package contains documentation from OGC specifications.
+ * Open Geospatial Consortium's work is fully acknowledged here.
+ */
+package org.apache.sis.metadata.iso.constraint;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import org.opengis.util.InternationalString;
+import org.opengis.metadata.constraint.Classification;
+import org.opengis.metadata.constraint.SecurityConstraints;
+
+
+/**
+ * Handling restrictions imposed on the resource for national security or 
similar security concerns.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlType(name = "MD_SecurityConstraints_Type", propOrder = {
+    "classification",
+    "userNote",
+    "classificationSystem",
+    "handlingDescription"
+})
+@XmlRootElement(name = "MD_SecurityConstraints")
+public class DefaultSecurityConstraints extends DefaultConstraints implements 
SecurityConstraints {
+    /**
+     * Serial number for inter-operability with different versions.
+     */
+    private static final long serialVersionUID = 6412833018607679734L;;
+
+    /**
+     * Name of the handling restrictions on the resource.
+     */
+    private Classification classification;
+
+    /**
+     * Explanation of the application of the legal constraints or other 
restrictions and legal
+     * prerequisites for obtaining and using the resource.
+     */
+    private InternationalString userNote;
+
+    /**
+     * Name of the classification system.
+     */
+    private InternationalString classificationSystem;
+
+    /**
+     * Additional information about the restrictions on handling the resource.
+     */
+    private InternationalString handlingDescription;
+
+    /**
+     * Creates an initially empty security constraints.
+     */
+    public DefaultSecurityConstraints() {
+    }
+
+    /**
+     * Creates a security constraints initialized with the specified 
classification.
+     *
+     * @param classification The name of the handling restrictions on the 
resource.
+     */
+    public DefaultSecurityConstraints(final Classification classification) {
+        this.classification = classification;
+    }
+
+    /**
+     * Returns a SIS metadata implementation with the same values than the 
given arbitrary
+     * implementation. If the given object is {@code null}, then this method 
returns {@code null}.
+     * Otherwise if the given object is already a SIS implementation, then the 
given object is
+     * returned unchanged. Otherwise a new SIS implementation is created and 
initialized to the
+     * property values of the given object, using a <cite>shallow</cite> copy 
operation
+     * (i.e. properties are not cloned).
+     *
+     * @param  object The object to get as a SIS implementation, or {@code 
null} if none.
+     * @return A SIS implementation containing the values of the given object 
(may be the
+     *         given object itself), or {@code null} if the argument was null.
+     */
+    public static DefaultSecurityConstraints castOrCopy(final 
SecurityConstraints object) {
+        if (object == null || object instanceof DefaultSecurityConstraints) {
+            return (DefaultSecurityConstraints) object;
+        }
+        final DefaultSecurityConstraints copy = new 
DefaultSecurityConstraints();
+        copy.shallowCopy(object);
+        return copy;
+    }
+
+    /**
+     * Returns the name of the handling restrictions on the resource.
+     */
+    @Override
+    @XmlElement(name = "classification", required = true)
+    public synchronized Classification getClassification() {
+        return classification;
+    }
+
+    /**
+     * Sets the name of the handling restrictions on the resource.
+     *
+     * @param newValue The new classification.
+     */
+    public synchronized void setClassification(final Classification newValue) {
+        checkWritePermission();
+        classification = newValue;
+    }
+
+    /**
+     * Returns the explanation of the application of the legal constraints or 
other restrictions and legal
+     * prerequisites for obtaining and using the resource.
+     */
+    @Override
+    @XmlElement(name = "userNote")
+    public synchronized InternationalString getUserNote() {
+        return userNote;
+    }
+
+    /**
+     * Sets the explanation of the application of the legal constraints or 
other restrictions and legal
+     * prerequisites for obtaining and using the resource.
+     *
+     * @param newValue The new user note.
+     */
+    public synchronized void setUserNote(final InternationalString newValue) {
+        checkWritePermission();
+        userNote = newValue;
+    }
+
+    /**
+     * Returns the name of the classification system.
+     */
+    @Override
+    @XmlElement(name = "classificationSystem")
+    public synchronized InternationalString getClassificationSystem() {
+        return classificationSystem;
+    }
+
+    /**
+     * Sets the name of the classification system.
+     *
+     * @param newValue The new classification system.
+     */
+    public synchronized void setClassificationSystem(final InternationalString 
newValue) {
+        checkWritePermission();
+        classificationSystem = newValue;
+    }
+
+    /**
+     * Returns the additional information about the restrictions on handling 
the resource.
+     */
+    @Override
+    @XmlElement(name = "handlingDescription")
+    public synchronized InternationalString getHandlingDescription() {
+        return handlingDescription;
+    }
+
+    /**
+     * Sets the additional information about the restrictions on handling the 
resource.
+     *
+     * @param newValue The new handling description.
+     */
+    public synchronized void setHandlingDescription(final InternationalString 
newValue) {
+        checkWritePermission();
+        handlingDescription = newValue;
+    }
+}

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

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

Added: 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java?rev=1458777&view=auto
==============================================================================
--- 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
 (added)
+++ 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
 [UTF-8] Wed Mar 20 11:59:20 2013
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * This package contains documentation from OGC specifications.
+ * Open Geospatial Consortium's work is fully acknowledged here.
+ */
+
+/**
+ * {@linkplain org.apache.sis.metadata.iso.constraint.DefaultConstraints 
Constraints} implementation.
+ * An explanation for this package is provided in the {@linkplain 
org.opengis.metadata.constraint OpenGIS® javadoc}.
+ * The remaining discussion on this page is specific to the SIS implementation.
+ *
+ * {@section Overview}
+ * For a global overview of metadata in SIS, see the
+ * <a href="{@docRoot}/../sis-metadata/index.html">Metadata page on the 
project web site</a>.
+ *
+ * {@section Parameterized types}
+ * In GeoAPI interfaces, most collections are typed with wildcards, for 
example {@code Collection<? extends Citation>}.
+ * The SIS implementation removes the wildcards and declares {@code 
Collection<Citation>} instead.
+ * This allows collections to be <cite>live</cite>: it is possible to add new 
elements directly in
+ * an existing collection using code like {@code 
getCitations().add(myCitation)} instead than
+ * setting the collection as a whole with {@code setCitations(myCitations)}.
+ *
+ * @author  Martin Desruisseaux (IRD, Geomatys)
+ * @author  Touraïvane (IRD)
+ * @author  Cédric Briançon (Geomatys)
+ * @since   0.3 (derived from geotk-2.1)
+ * @version 0.3
+ * @module
+ */
+@XmlSchema(elementFormDefault = XmlNsForm.QUALIFIED, namespace = 
Namespaces.GMD, xmlns = {
+    @XmlNs(prefix = "gmd", namespaceURI = Namespaces.GMD),
+    @XmlNs(prefix = "gco", namespaceURI = Namespaces.GCO),
+    @XmlNs(prefix = "xsi", namespaceURI = Namespaces.XSI)
+})
+@XmlAccessorType(XmlAccessType.NONE)
+@XmlJavaTypeAdapters({
+    @XmlJavaTypeAdapter(MD_ClassificationCode.class),
+    @XmlJavaTypeAdapter(MD_RestrictionCode.class),
+    @XmlJavaTypeAdapter(InternationalStringAdapter.class)
+})
+package org.apache.sis.metadata.iso.constraint;
+
+import javax.xml.bind.annotation.XmlNs;
+import javax.xml.bind.annotation.XmlNsForm;
+import javax.xml.bind.annotation.XmlSchema;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
+import org.apache.sis.xml.Namespaces;
+import org.apache.sis.internal.jaxb.gco.*;
+import org.apache.sis.internal.jaxb.code.*;

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

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

Modified: 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/referencing/DefaultReferenceIdentifier.java
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/referencing/DefaultReferenceIdentifier.java?rev=1458777&r1=1458776&r2=1458777&view=diff
==============================================================================
--- 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/referencing/DefaultReferenceIdentifier.java
 [UTF-8] (original)
+++ 
sis/branches/JDK7/sis-metadata/src/main/java/org/apache/sis/referencing/DefaultReferenceIdentifier.java
 [UTF-8] Wed Mar 20 11:59:20 2013
@@ -14,8 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
- *    This package contains documentation from OpenGIS specifications.
- *    OpenGIS consortium's work is fully acknowledged here.
+ * This package contains documentation from OGC specifications.
+ * Open Geospatial Consortium's work is fully acknowledged here.
  */
 package org.apache.sis.referencing;
 


Reply via email to