You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2017/01/04 09:17:27 UTC
svn commit: r1777269 [1/2] - in /sis/branches/JDK7: ./
core/sis-feature/src/main/java/org/apache/sis/feature/
core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/
core/sis-metadata/src/main/java/org/apache/sis/metadata/
core/sis-metadata/s...
Author: desruisseaux
Date: Wed Jan 4 09:17:26 2017
New Revision: 1777269
URL: http://svn.apache.org/viewvc?rev=1777269&view=rev
Log:
Merge from the JDK8 branch.
Added:
sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java
- copied, changed from r1777268, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java
sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/MergerTest.java
- copied unchanged from r1777268, sis/branches/JDK8/core/sis-metadata/src/test/java/org/apache/sis/internal/metadata/MergerTest.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureCatalogBuilder.java
- copied unchanged from r1777268, sis/branches/JDK8/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureCatalogBuilder.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureNaming.java
- copied, changed from r1777268, sis/branches/JDK8/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureNaming.java
sis/branches/JDK7/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreMock.java
- copied unchanged from r1777268, sis/branches/JDK8/storage/sis-storage/src/test/java/org/apache/sis/storage/DataStoreMock.java
sis/branches/JDK7/storage/sis-storage/src/test/java/org/apache/sis/storage/FeatureNamingTest.java
- copied unchanged from r1777268, sis/branches/JDK8/storage/sis-storage/src/test/java/org/apache/sis/storage/FeatureNamingTest.java
Removed:
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/GenericNameMap.java
sis/branches/JDK7/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/GenericNameMapTest.java
Modified:
sis/branches/JDK7/ (props changed)
sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java
sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java
sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/Cloner.java
sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.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/SpecialCases.java
sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java
sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java
sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java
sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/CheckedContainer.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/Containers.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/iso/AbstractName.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java
sis/branches/JDK7/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatReader.java
sis/branches/JDK7/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatStore.java
sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/FeatureStore.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources.properties
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/Resources_fr.properties
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/Store.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/xml/Store.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/DataStore.java
sis/branches/JDK7/storage/sis-storage/src/main/java/org/apache/sis/storage/IllegalNameException.java
sis/branches/JDK7/storage/sis-storage/src/test/java/org/apache/sis/test/suite/StorageTestSuite.java
Propchange: sis/branches/JDK7/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 4 09:17:26 2017
@@ -1,5 +1,5 @@
/sis/branches/Android:1430670-1480699
/sis/branches/JDK6:1394913-1508480
-/sis/branches/JDK8:1584960-1776696
+/sis/branches/JDK8:1584960-1777268
/sis/branches/JDK9:1773327-1773512
/sis/trunk:1394364-1508466,1519089-1519674
Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -105,6 +105,8 @@ import org.opengis.feature.PropertyNotFo
* @see DefaultAttributeType
* @see DefaultAssociationRole
* @see AbstractFeature
+ * @see org.apache.sis.metadata.iso.content.DefaultFeatureTypeInfo
+ * @see org.apache.sis.storage.FeatureNaming
*/
public class DefaultFeatureType extends AbstractIdentifiedType implements FeatureType {
/**
Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -61,10 +61,10 @@ public final class Features extends Stat
* An exception is thrown immediately if the given type does not have the expected
* {@linkplain DefaultAttributeType#getValueClass() value class}.
*
- * @param <V> The expected value class.
- * @param type The attribute type to cast, or {@code null}.
- * @param valueClass The expected value class.
- * @return The attribute type casted to the given value class, or {@code null} if the given type was null.
+ * @param <V> the expected value class.
+ * @param type the attribute type to cast, or {@code null}.
+ * @param valueClass the expected value class.
+ * @return the attribute type casted to the given value class, or {@code null} if the given type was null.
* @throws ClassCastException if the given attribute type does not have the expected value class.
*
* @category verification
@@ -90,10 +90,10 @@ public final class Features extends Stat
* An exception is thrown immediately if the given instance does not have the expected
* {@linkplain DefaultAttributeType#getValueClass() value class}.
*
- * @param <V> The expected value class.
- * @param attribute The attribute instance to cast, or {@code null}.
- * @param valueClass The expected value class.
- * @return The attribute instance casted to the given value class, or {@code null} if the given instance was null.
+ * @param <V> the expected value class.
+ * @param attribute the attribute instance to cast, or {@code null}.
+ * @param valueClass the expected value class.
+ * @return the attribute instance casted to the given value class, or {@code null} if the given instance was null.
* @throws ClassCastException if the given attribute instance does not have the expected value class.
*
* @category verification
Copied: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java (from r1777268, sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java?p2=sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java&p1=sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java&r1=1777268&r2=1777269&rev=1777269&view=diff
==============================================================================
--- sis/branches/JDK8/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -32,6 +32,9 @@ import org.apache.sis.util.CorruptedObje
import org.apache.sis.util.resources.Errors;
import org.apache.sis.util.Classes;
+// Branch-dependent imports
+import org.apache.sis.internal.jdk8.JDK8;
+
/**
* Merges the content of two metadata instances.
@@ -179,7 +182,7 @@ public class Merger {
final String propertyName = entry.getKey();
final Object sourceValue = entry.getValue();
final Object targetValue = dryRun ? targetMap.get(propertyName)
- : targetMap.putIfAbsent(propertyName, sourceValue);
+ : JDK8.putIfAbsentConservative(targetMap, propertyName, sourceValue);
if (targetValue != null) {
if (targetValue instanceof ModifiableMetadata) {
success = merge(sourceValue, (ModifiableMetadata) targetValue, dryRun);
Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/Cloner.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/Cloner.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/Cloner.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/Cloner.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -79,8 +79,8 @@ final class Cloner extends org.apache.si
* <li>Otherwise, the object is assumed immutable and returned unchanged.</li>
* </ul>
*
- * @param object The object to convert in an immutable one.
- * @return A presumed immutable view of the specified object.
+ * @param object the object to convert in an immutable one.
+ * @return a presumed immutable view of the specified object.
*/
@Override
public Object clone(final Object object) throws CloneNotSupportedException {
Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -198,9 +198,9 @@ public class MetadataStandard implements
* <div class="note"><b>Example:</b>: For the ISO 19115 standard reflected by GeoAPI interfaces,
* {@code interfacePackage} shall be the {@link org.opengis.metadata} package.</div>
*
- * @param citation Bibliographical reference to the international standard.
- * @param interfacePackage The root package for metadata interfaces.
- * @param dependencies The dependencies to other metadata standards.
+ * @param citation bibliographical reference to the international standard.
+ * @param interfacePackage the root package for metadata interfaces.
+ * @param dependencies the dependencies to other metadata standards.
*/
public MetadataStandard(final Citation citation, final Package interfacePackage, MetadataStandard... dependencies) {
ensureNonNull("citation", citation);
@@ -208,7 +208,7 @@ public class MetadataStandard implements
ensureNonNull("dependencies", dependencies);
this.citation = citation;
this.interfacePackage = interfacePackage.getName() + '.';
- this.accessors = new ConcurrentHashMap<>(); // Also defined in readObject(\u2026)
+ this.accessors = new ConcurrentHashMap<>(); // Also defined in readObject(\u2026)
if (dependencies.length == 0) {
this.dependencies = null;
} else {
@@ -223,15 +223,15 @@ public class MetadataStandard implements
* Creates a new instance working on implementation of interfaces defined in the
* specified package. This constructor is used only for the pre-defined constants.
*
- * @param citation Bibliographical reference to the international standard.
- * @param interfacePackage The root package for metadata interfaces.
- * @param dependencies The dependencies to other metadata standards, or {@code null} if none.
+ * @param citation bibliographical reference to the international standard.
+ * @param interfacePackage the root package for metadata interfaces.
+ * @param dependencies the dependencies to other metadata standards, or {@code null} if none.
*/
MetadataStandard(final String citation, final String interfacePackage, final MetadataStandard[] dependencies) {
this.citation = new SimpleCitation(citation);
this.interfacePackage = interfacePackage;
this.accessors = new ConcurrentHashMap<>();
- this.dependencies = dependencies; // No clone, since this constructor is for internal use only.
+ this.dependencies = dependencies; // No clone, since this constructor is for internal use only.
}
/**
@@ -239,7 +239,7 @@ public class MetadataStandard implements
* This method verifies if the class is a member of the package given at construction time or
* a sub-package. This method does not verify if the type is supported by a dependency.
*
- * @param classname The name of the type to verify.
+ * @param classname the name of the type to verify.
* @return {@code true} if the given type is supported by this standard.
*/
final boolean isSupported(final String classname) {
@@ -255,8 +255,8 @@ public class MetadataStandard implements
* <p>The current implementation recognizes only the standards defined by the public static
* constants defined in this class. A future SIS version may recognize user-defined constants.</p>
*
- * @param type The metadata standard interface, or an implementation class.
- * @return The metadata standard for the given type, or {@code null} if not found.
+ * @param type the metadata standard interface, or an implementation class.
+ * @return the metadata standard for the given type, or {@code null} if not found.
*/
public static MetadataStandard forClass(final Class<?> type) {
String classname = type.getName();
@@ -290,7 +290,7 @@ public class MetadataStandard implements
* Returns a bibliographical reference to the international standard.
* The default implementation return the citation given at construction time.
*
- * @return Bibliographical reference to the international standard.
+ * @return bibliographical reference to the international standard.
*/
public Citation getCitation() {
return citation;
@@ -306,12 +306,11 @@ public class MetadataStandard implements
* <li>The value of {@link #getImplementation(Class)} after check for non-null value.</li>
* </ul>
*
- * @param implementation The implementation class.
- * @param mandatory Whether this method shall throw an exception or return {@code null}
+ * @param implementation the implementation class.
+ * @param mandatory whether this method shall throw an exception or return {@code null}
* if no accessor is found for the given implementation class.
- * @return The accessor for the given implementation, or {@code null} if the given class does
- * not implement a metadata interface of the expected package and {@code mandatory}
- * is {@code false}.
+ * @return the accessor for the given implementation, or {@code null} if the given class does not
+ * implement a metadata interface of the expected package and {@code mandatory} is {@code false}.
* @throws ClassCastException if the specified class does not implement a metadata interface
* of the expected package and {@code mandatory} is {@code true}.
*/
@@ -330,7 +329,7 @@ public class MetadataStandard implements
*/
final Class<?> type;
if (value instanceof Class<?>) {
- type = (Class<?>) value; // Stored result of previous call to findInterface(\u2026).
+ type = (Class<?>) value; // Stored result of previous call to findInterface(\u2026).
assert type == findInterface(implementation) : implementation;
} else {
/*
@@ -345,7 +344,7 @@ public class MetadataStandard implements
for (final MetadataStandard dependency : dependencies) {
final PropertyAccessor accessor = dependency.getAccessor(implementation, false);
if (accessor != null) {
- accessors.put(implementation, accessor); // Ok to overwrite existing instance here.
+ accessors.put(implementation, accessor); // Ok to overwrite existing instance here.
return accessor;
}
}
@@ -381,7 +380,7 @@ public class MetadataStandard implements
* If this method returns {@code true}, then invoking {@link #getInterface(Class)} is guaranteed to succeed
* without throwing an exception.
*
- * @param type The implementation class (can be {@code null}).
+ * @param type the implementation class (can be {@code null}).
* @return {@code true} if the given class is an interface of this standard,
* or implements an interface of this standard.
*/
@@ -431,8 +430,8 @@ public class MetadataStandard implements
*
* <p>This method ignores dependencies. Fallback on metadata standard dependencies shall be done by the caller.</p>
*
- * @param type The standard interface or the implementation class.
- * @return The single interface, or {@code null} if none where found.
+ * @param type the standard interface or the implementation class.
+ * @return the single interface, or {@code null} if none where found.
*/
private Class<?> findInterface(final Class<?> type) {
if (type != null) {
@@ -513,11 +512,10 @@ public class MetadataStandard implements
* The standard package is usually made of interfaces and code lists only, but this is
* not verified by this method.</div>
*
- * @param <T> The compile-time {@code type}.
- * @param type The implementation class.
- * @return The interface implemented by the given implementation class.
- * @throws ClassCastException if the specified implementation class does
- * not implement an interface of this standard.
+ * @param <T> the compile-time {@code type}.
+ * @param type the implementation class.
+ * @return the interface implemented by the given implementation class.
+ * @throws ClassCastException if the specified implementation class does not implement an interface of this standard.
*
* @see AbstractMetadata#getInterface()
*/
@@ -557,9 +555,9 @@ public class MetadataStandard implements
* The default implementation returns {@code null} if every cases. Subclasses shall
* override this method in order to map GeoAPI interfaces to their implementation.
*
- * @param <T> The compile-time {@code type}.
- * @param type The interface, typically from the {@code org.opengis.metadata} package.
- * @return The implementation class, or {@code null} if none.
+ * @param <T> the compile-time {@code type}.
+ * @param type the interface, typically from the {@code org.opengis.metadata} package.
+ * @return the implementation class, or {@code null} if none.
*/
public <T> Class<? extends T> getImplementation(final Class<T> type) {
return null;
@@ -580,7 +578,7 @@ public class MetadataStandard implements
* MetadataStandard standard = MetadataStandard.ISO_19115;
* Map<String, String> names = standard.asNameMap(Citation.class, UML_IDENTIFIER, JAVABEANS_PROPERTY);
* String value = names.get("alternateTitle");
- * System.out.println(value); // alternateTitles
+ * System.out.println(value); // alternateTitles
* }
* </div>
*
@@ -588,10 +586,10 @@ public class MetadataStandard implements
* No matter the key name policy, the {@code key} argument given to any {@link Map} method can be any of the
* above-cited forms of property names.
*
- * @param type The interface or implementation class of a metadata.
- * @param keyPolicy Determines the string representation of map keys.
- * @param valuePolicy Determines the string representation of map values.
- * @return The names of all properties defined by the given metadata type.
+ * @param type the interface or implementation class of a metadata.
+ * @param keyPolicy determines the string representation of map keys.
+ * @param valuePolicy determines the string representation of map values.
+ * @return the names of all properties defined by the given metadata type.
* @throws ClassCastException if the specified interface or implementation class does
* not extend or implement a metadata interface of the expected package.
*/
@@ -622,14 +620,14 @@ public class MetadataStandard implements
* MetadataStandard standard = MetadataStandard.ISO_19115;
* Map<String,Class<?>> types = standard.asTypeMap(Citation.class, UML_IDENTIFIER, ELEMENT_TYPE);
* Class<?> value = types.get("alternateTitle");
- * System.out.println(value); // class org.opengis.util.InternationalString
+ * System.out.println(value); // class org.opengis.util.InternationalString
* }
*
- * @param type The interface or implementation class of a metadata.
- * @param keyPolicy Determines the string representation of map keys.
- * @param valuePolicy Whether the values shall be property types, the element types
+ * @param type the interface or implementation class of a metadata.
+ * @param keyPolicy determines the string representation of map keys.
+ * @param valuePolicy whether the values shall be property types, the element types
* (same as property types except for collections) or the declaring interface or class.
- * @return The types or declaring type of all properties defined in the given metadata type.
+ * @return the types or declaring type of all properties defined in the given metadata type.
* @throws ClassCastException if the specified interface or implementation class does
* not extend or implement a metadata interface of the expected package.
*/
@@ -683,11 +681,10 @@ public class MetadataStandard implements
* <li>{@link org.apache.sis.measure.NumberRange} if the valid values are constrained to some specific range.</li>
* </ul>
*
- * @param type The metadata interface or implementation class.
- * @param keyPolicy Determines the string representation of map keys.
- * @return Information about all properties defined in the given metadata type.
- * @throws ClassCastException if the given type doesn't implement a metadata
- * interface of the expected package.
+ * @param type the metadata interface or implementation class.
+ * @param keyPolicy determines the string representation of map keys.
+ * @return information about all properties defined in the given metadata type.
+ * @throws ClassCastException if the given type does not implement a metadata interface of the expected package.
*
* @see org.apache.sis.metadata.iso.DefaultExtendedElementInformation
*/
@@ -736,13 +733,11 @@ public class MetadataStandard implements
* values, then make sure that the given value is a collection when the associated metadata property expects
* such collection.
*
- * @param metadata The metadata object to view as a map.
- * @param keyPolicy Determines the string representation of map keys.
- * @param valuePolicy Whether the entries having null value or empty collection shall be
- * included in the map.
- * @return A map view over the metadata object.
- * @throws ClassCastException if the metadata object doesn't implement a metadata
- * interface of the expected package.
+ * @param metadata the metadata object to view as a map.
+ * @param keyPolicy determines the string representation of map keys.
+ * @param valuePolicy whether the entries having null value or empty collection shall be included in the map.
+ * @return a map view over the metadata object.
+ * @throws ClassCastException if the metadata object does not implement a metadata interface of the expected package.
*
* @see AbstractMetadata#asMap()
*/
@@ -810,12 +805,10 @@ public class MetadataStandard implements
* Note that whether the child appears as effectively removed from the node or just cleared
* (i.e. associated to a null value) depends on the {@code valuePolicy} argument.
*
- * @param metadata The metadata object to view as a tree table.
- * @param valuePolicy Whether the property having null value or empty collection shall be
- * included in the tree.
- * @return A tree table representation of the specified metadata.
- * @throws ClassCastException if the metadata object doesn't implement a metadata
- * interface of the expected package.
+ * @param metadata the metadata object to view as a tree table.
+ * @param valuePolicy whether the property having null value or empty collection shall be included in the tree.
+ * @return a tree table representation of the specified metadata.
+ * @throws ClassCastException if the metadata object does not implement a metadata interface of the expected package.
*
* @see AbstractMetadata#asTreeTable()
*/
@@ -854,12 +847,12 @@ public class MetadataStandard implements
* delegate their work to this {@code standard.equals(\u2026)} method, as {@link AbstractMetadata} does.
* In the later case, the final result is a deep comparison.
*
- * @param metadata1 The first metadata object to compare.
- * @param metadata2 The second metadata object to compare.
- * @param mode The strictness level of the comparison.
+ * @param metadata1 the first metadata object to compare.
+ * @param metadata2 the second metadata object to compare.
+ * @param mode the strictness level of the comparison.
* @return {@code true} if the given metadata objects are equals.
- * @throws ClassCastException if at least one metadata object don't
- * implements a metadata interface of the expected package.
+ * @throws ClassCastException if at least one metadata object does not
+ * implement a metadata interface of the expected package.
*
* @see AbstractMetadata#equals(Object, ComparisonMode)
*/
@@ -925,10 +918,9 @@ public class MetadataStandard implements
* This is a similar contract than {@link java.util.Set#hashCode()} (except for the interface)
* and ensures that the hash code value is insensitive to the ordering of properties.
*
- * @param metadata The metadata object to compute hash code.
- * @return A hash code value for the specified metadata, or 0 if the given metadata is null.
- * @throws ClassCastException if the metadata object doesn't implement a metadata
- * interface of the expected package.
+ * @param metadata the metadata object to compute hash code.
+ * @return a hash code value for the specified metadata, or 0 if the given metadata is null.
+ * @throws ClassCastException if the metadata object does not implement a metadata interface of the expected package.
*
* @see AbstractMetadata#hashCode()
*/
@@ -977,16 +969,16 @@ public class MetadataStandard implements
field.setAccessible(true);
field.set(this, new ConcurrentHashMap<>());
} catch (ReflectiveOperationException e) {
- throw new AssertionError(e); // Should never happen (tested by MetadataStandardTest).
+ throw new AssertionError(e); // Should never happen (tested by MetadataStandardTest).
}
}
/**
* Invoked during deserialization for restoring the transient fields.
*
- * @param in The input stream from which to deserialize a metadata standard.
- * @throws IOException If an I/O error occurred while reading or if the stream contains invalid data.
- * @throws ClassNotFoundException If the class serialized on the stream is not on the classpath.
+ * @param in the input stream from which to deserialize a metadata standard.
+ * @throws IOException if an I/O error occurred while reading or if the stream contains invalid data.
+ * @throws ClassNotFoundException if the class serialized on the stream is not on the classpath.
*/
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
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=1777269&r1=1777268&r2=1777269&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] Wed Jan 4 09:17:26 2017
@@ -117,13 +117,13 @@ final class PropertyInformation<E> exten
/**
* Creates a new {@code PropertyInformation} instance from the annotations on the given getter method.
*
- * @param standard The international standard that define the property, or {@code null} if none.
- * @param property The property name as defined by the international {@code standard}.
- * @param getter The getter method defined in the interface.
- * @param elementType The value type, either the method return type if not a collection,
- * or the type of elements in the collection otherwise.
- * @param range The range of valid values, or {@code null} if none. This information is associated to the
- * implementation method rather than the interface one, because it is specific to SIS.
+ * @param standard the international standard that define the property, or {@code null} if none.
+ * @param property the property name as defined by the international {@code standard}.
+ * @param getter the getter method defined in the interface.
+ * @param elementType the value type, either the method return type if not a collection,
+ * or the type of elements in the collection otherwise.
+ * @param range the range of valid values, or {@code null} if none. This information is associated to the
+ * implementation method rather than the interface one, because it is specific to SIS.
*/
@SuppressWarnings({"unchecked","rawtypes"})
PropertyInformation(final Citation standard, final String property, final Method getter,
@@ -348,7 +348,7 @@ final class PropertyInformation<E> exten
/**
* Compares the given object with this element information for equality.
*
- * @param obj The object to compare with this element information for equality.
+ * @param obj the object to compare with this element information for equality.
* @return {@code true} if both objects are equal.
*/
@Override
@@ -378,8 +378,7 @@ final class PropertyInformation<E> exten
}
/**
- * Invoked by {@link #toString()} in order to append additional information
- * after the identifier.
+ * Invoked by {@link #toString()} in order to append additional information after the identifier.
*/
@Override
protected void appendToString(final StringBuilder buffer) {
Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/SpecialCases.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -43,10 +43,10 @@ final class SpecialCases extends Propert
/**
* Creates a new property accessor for the specified metadata implementation.
*
- * @param standard The standard which define the {@code type} interface.
- * @param type The interface implemented by the metadata, which must be
- * the value returned by {@link #getStandardType(Class, String)}.
- * @param implementation The class of metadata implementations, or {@code type} if none.
+ * @param standard the standard which define the {@code type} interface.
+ * @param type the interface implemented by the metadata, which must be
+ * the value returned by {@link #getStandardType(Class, String)}.
+ * @param implementation the class of metadata implementations, or {@code type} if none.
*/
SpecialCases(final Citation standard, final Class<?> type, final Class<?> implementation) {
super(standard, type, implementation);
@@ -60,7 +60,7 @@ final class SpecialCases extends Propert
/**
* Returns {@code true} if the given class is a special case handled by the {@link SpecialCases} class.
*
- * @param type The interface implemented by the metadata.
+ * @param type the interface implemented by the metadata.
* @return {@code true} if the given type is a special case.
*/
static boolean isSpecialCase(final Class<?> type) {
Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -144,8 +144,8 @@ class TreeNode implements Node {
/**
* Creates the root node of a new metadata tree table.
*
- * @param table The table which is creating this root node.
- * @param metadata The root metadata object (can not be null).
+ * @param table the table which is creating this root node.
+ * @param metadata the root metadata object (can not be null).
*/
TreeNode(final TreeTableView table, final Object metadata) {
this.table = table;
@@ -158,8 +158,8 @@ class TreeNode implements Node {
* This constructor is for the {@link Element} subclass only.
* Callers must invoke {@link #init()} after construction.
*
- * @param parent The parent of this node.
- * @param metadata The metadata object for which this node will be a value.
+ * @param parent the parent of this node.
+ * @param metadata the metadata object for which this node will be a value.
*/
TreeNode(final TreeNode parent, final Object metadata) {
this.table = parent.table;
@@ -241,7 +241,7 @@ class TreeNode implements Node {
/**
* Sets the metadata value for this node. Subclasses must override this method.
*
- * @throws UnsupportedOperationException If the metadata value is not writable.
+ * @throws UnsupportedOperationException if the metadata value is not writable.
*/
void setUserObject(final Object value) throws UnsupportedOperationException {
throw new UnsupportedOperationException(unmodifiableCellValue(TableColumn.VALUE));
@@ -286,10 +286,10 @@ class TreeNode implements Node {
* Creates a new child for a property of the given metadata at the given index.
* Callers must invoke {@link #init()} after construction.
*
- * @param parent The parent of this node.
- * @param metadata The metadata object for which this node will be a value.
- * @param accessor Accessor to use for fetching the name, type and value.
- * @param indexInData Index to be given to the accessor of fetching the value.
+ * @param parent the parent of this node.
+ * @param metadata the metadata object for which this node will be a value.
+ * @param accessor accessor to use for fetching the name, type and value.
+ * @param indexInData index to be given to the accessor of fetching the value.
*/
Element(final TreeNode parent, final Object metadata,
final PropertyAccessor accessor, final int indexInData)
@@ -376,11 +376,11 @@ class TreeNode implements Node {
* Creates a new node for the given collection element.
* Callers must invoke {@link #init()} after construction.
*
- * @param parent The parent of this node.
- * @param metadata The metadata object for which this node will be a value.
- * @param accessor Accessor to use for fetching the name, type and collection.
- * @param indexInData Index to be given to the accessor of fetching the collection.
- * @param indexInList Index of the element in the collection, in iteration order.
+ * @param parent the parent of this node.
+ * @param metadata the metadata object for which this node will be a value.
+ * @param accessor accessor to use for fetching the name, type and collection.
+ * @param indexInData index to be given to the accessor of fetching the collection.
+ * @param indexInList index of the element in the collection, in iteration order.
*/
CollectionElement(final TreeNode parent, final Object metadata,
final PropertyAccessor accessor, final int indexInData, final int indexInList)
@@ -520,6 +520,7 @@ class TreeNode implements Node {
* Only metadata object can have children.
*/
@Override
+ @SuppressWarnings("ReturnOfCollectionOrArrayField")
public final Collection<Node> getChildren() {
/*
* 'children' is set to LEAF if an only if the node *can not* have children,
@@ -574,7 +575,7 @@ class TreeNode implements Node {
* Do not keep a reference to the returned node for a long time, since it is only
* a proxy toward the real node to be created once the identifier is known.
*
- * @throws UnsupportedOperationException If this node {@linkplain #isLeaf() is a leaf}.
+ * @throws UnsupportedOperationException if this node {@linkplain #isLeaf() is a leaf}.
*/
@Override
public final Node newChild() throws UnsupportedOperationException {
@@ -699,7 +700,7 @@ class TreeNode implements Node {
if (column == TableColumn.VALUE) {
if (isLeaf()) {
value = cachedValue;
- cachedValue = null; // Use the cached value only once after iteration.
+ cachedValue = null; // Use the cached value only once after iteration.
if (value == null) {
value = getUserObject();
}
@@ -772,8 +773,7 @@ class TreeNode implements Node {
}
/**
- * Implementation of {@link #toString()} appending the string representation
- * in the given buffer.
+ * Implementation of {@link #toString()} appending the string representation in the given buffer.
*/
final void toString(final StringBuilder buffer) {
appendIdentifier(buffer.append("Node["));
Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureTypeInfo.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -44,6 +44,9 @@ import static org.apache.sis.internal.me
* @since 0.5
* @version 0.5
* @module
+ *
+ * @see org.apache.sis.storage.FeatureNaming
+ * @see org.apache.sis.feature.DefaultFeatureType
*/
@XmlType(name = "MD_FeatureTypeInfo", propOrder = {
"featureTypeName",
Modified: sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/test/java/org/apache/sis/test/suite/MetadataTestSuite.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -52,6 +52,7 @@ import org.junit.BeforeClass;
org.apache.sis.metadata.MetadataStandardTest.class,
org.apache.sis.metadata.PrunerTest.class,
org.apache.sis.metadata.AbstractMetadataTest.class,
+ org.apache.sis.internal.metadata.MergerTest.class,
// XML marshalling.
org.apache.sis.internal.jaxb.code.EnumMarshallingTest.class,
Modified: sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/MergedProperties.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -52,8 +52,8 @@ public class MergedProperties extends Ab
/**
* Creates a new map which will merge the given properties on the fly.
*
- * @param properties The user-supplied properties.
- * @param defaultProperties Fallback for values not found in {@code properties}.
+ * @param properties the user-supplied properties.
+ * @param defaultProperties fallback for values not found in {@code properties}.
*/
public MergedProperties(final Map<String,?> properties, final Map<String,?> defaultProperties) {
this.properties = properties;
@@ -64,7 +64,7 @@ public class MergedProperties extends Ab
* Returns an iterator over the user-supplied properties together with
* the default properties which were not specified in the user's ones.
*
- * @return Iterator over merged properties.
+ * @return iterator over merged properties.
*/
@Override
protected EntryIterator<String,Object> entryIterator() {
@@ -81,8 +81,8 @@ public class MergedProperties extends Ab
* then by looking in the default properties if no value were specified in the user map.
* If there is no default value, invokes {@link #invisibleEntry(Object)} in last resort.
*
- * @param key The key for which to get the value.
- * @return The value associated to the given key, or {@code null} if none.
+ * @param key the key for which to get the value.
+ * @return the value associated to the given key, or {@code null} if none.
*/
@Override
public Object get(final Object key) {
@@ -106,8 +106,8 @@ public class MergedProperties extends Ab
* of derived or projected CRS (because of the way we implemented derived CRS). But this is somewhat specific to
* SIS, so we do no want to expose this implementation details.</div>
*
- * @param key The key for which to get the value.
- * @return The value associated to the given key, or {@code null} if none.
+ * @param key the key for which to get the value.
+ * @return the value associated to the given key, or {@code null} if none.
*/
protected Object invisibleEntry(final Object key) {
return null;
Modified: sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/NamedIdentifier.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -19,6 +19,7 @@ package org.apache.sis.referencing;
import java.util.Map;
import java.util.List;
import java.util.Locale;
+import java.util.Objects;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -38,9 +39,6 @@ import org.apache.sis.internal.util.Cita
import org.apache.sis.metadata.iso.ImmutableIdentifier;
import org.apache.sis.util.ArgumentChecks;
-// Branch-dependent imports
-import java.util.Objects;
-
/**
* An identification of a CRS object which is both a {@link Identifier} and a {@link GenericName}.
@@ -90,6 +88,10 @@ import java.util.Objects;
* @since 0.4
* @version 0.7
* @module
+ *
+ * @see org.apache.sis.metadata.iso.DefaultIdentifier
+ * @see org.apache.sis.util.iso.AbstractName
+ * @see AbstractIdentifiedObject#getName()
*/
public class NamedIdentifier extends ImmutableIdentifier implements GenericName {
/**
@@ -117,7 +119,7 @@ public class NamedIdentifier extends Imm
* {@link #tip()}, {@link #head()}, {@link #scope()} and similar methods will delegate
* to that name.</p>
*
- * @param identifier The identifier to copy.
+ * @param identifier the identifier to copy.
*/
public NamedIdentifier(final Identifier identifier) {
super(identifier);
@@ -132,7 +134,7 @@ public class NamedIdentifier extends Imm
* (code, codespace and authority) from the given name. Calls to name-related methods like {@link #tip()},
* {@link #head()} and {@link #scope()} will delegate to the given name.
*
- * @param name The name to wrap.
+ * @param name the name to wrap.
*/
public NamedIdentifier(final GenericName name) {
super(name instanceof Identifier ? (Identifier) name : new NameToIdentifier(name));
@@ -196,7 +198,7 @@ public class NamedIdentifier extends Imm
* are optional. If a {@code "name"} property is provided, then calls to name-related methods like
* {@link #tip()}, {@link #head()} and {@link #scope()} will delegate to the given name.
*
- * @param properties The properties to be given to this identifier.
+ * @param properties the properties to be given to this identifier.
* @throws InvalidParameterValueException if a property has an invalid value.
* @throws IllegalArgumentException if a property is invalid for some other reason.
*/
@@ -215,17 +217,17 @@ public class NamedIdentifier extends Imm
* string will be used for the {@link #getName() name} property.</p>
*
* @param authority
- * Organization or party responsible for definition and maintenance of the code
- * space or code, or {@code null} if not available.
+ * organization or party responsible for definition and maintenance of the code space or code,
+ * or {@code null} if not available.
* @param code
- * Identifier code or name, optionally from a controlled list or pattern defined by
- * the authority. The code can not be null.
+ * identifier code or name, optionally from a controlled list or pattern defined by the authority.
+ * The code can not be null.
*/
public NamedIdentifier(final Citation authority, final CharSequence code) {
super(authority, Citations.getCodeSpace(authority), toString(code));
if (code instanceof InternationalString) {
name = createName(authority, super.getCodeSpace(), code);
- isNameSupplied = true; // Because 'code' is an international string.
+ isNameSupplied = true; // Because 'code' is an international string.
}
}
@@ -238,19 +240,19 @@ public class NamedIdentifier extends Imm
* string will be used for the {@link #getName() name} property.</p>
*
* @param authority
- * Organization or party responsible for definition and maintenance of the code
- * space or code, or {@code null} if not available.
+ * organization or party responsible for definition and maintenance of the code space or code,
+ * or {@code null} if not available.
* @param codeSpace
- * Name or identifier of the person or organization responsible for namespace, or
- * {@code null} if not available. This is often an abbreviation of the authority name.
+ * name or identifier of the person or organization responsible for namespace, or {@code null}
+ * if not available. This is often an abbreviation of the authority name.
* @param code
- * Identifier code or name, optionally from a controlled list or pattern defined by
- * a code space. The code can not be null.
+ * identifier code or name, optionally from a controlled list or pattern defined by a code space.
+ * The code can not be null.
* @param version
- * The version of the associated code space or code as specified by the code authority,
+ * the version of the associated code space or code as specified by the code authority,
* or {@code null} if none.
* @param description
- * Natural language description of the meaning of the code value, or {@code null} if none.
+ * natural language description of the meaning of the code value, or {@code null} if none.
*/
public NamedIdentifier(final Citation authority, final String codeSpace, final CharSequence code,
final String version, final InternationalString description)
@@ -258,7 +260,7 @@ public class NamedIdentifier extends Imm
super(authority, codeSpace, toString(code), version, description);
if (code instanceof InternationalString) {
name = createName(authority, codeSpace, code);
- isNameSupplied = true; // Because 'code' is an international string.
+ isNameSupplied = true; // Because 'code' is an international string.
}
}
@@ -304,10 +306,10 @@ public class NamedIdentifier extends Imm
/**
* Constructs a generic name from the specified authority and code.
*
- * @param authority The authority, or {@code null} if none.
- * @param codeSpace The code space, or {@code null} if none.
- * @param code The code.
- * @return A new generic name for the given authority and code.
+ * @param authority the authority, or {@code null} if none.
+ * @param codeSpace the code space, or {@code null} if none.
+ * @param code the code.
+ * @return a new generic name for the given authority and code.
* @category Generic name
*
* @see <a href="https://issues.apache.org/jira/browse/SIS-197">SIS-197</a>
@@ -328,7 +330,7 @@ public class NamedIdentifier extends Imm
* The last element in the sequence of {@linkplain #getParsedNames() parsed names}.
* By default, this is the same value than the {@linkplain #getCode() code} provided as a local name.
*
- * @return The last element in the list of {@linkplain #getParsedNames() parsed names}.
+ * @return the last element in the list of {@linkplain #getParsedNames() parsed names}.
*
* @see #getCode()
*/
@@ -341,7 +343,7 @@ public class NamedIdentifier extends Imm
* Returns the first element in the sequence of {@linkplain #getParsedNames() parsed names}.
* By default, this is the same value than the {@linkplain #getCodeSpace() code space} provided as a local name.
*
- * @return The first element in the list of {@linkplain #getParsedNames() parsed names}.
+ * @return the first element in the list of {@linkplain #getParsedNames() parsed names}.
*
* @see #scope()
* @see #getCodeSpace()
@@ -358,7 +360,7 @@ public class NamedIdentifier extends Imm
* @see #head()
* @see #getAuthority()
*
- * @return The scope of this name.
+ * @return the scope of this name.
*/
@Override
public NameSpace scope() {
@@ -368,7 +370,7 @@ public class NamedIdentifier extends Imm
/**
* Returns the depth of this name within the namespace hierarchy.
*
- * @return The depth of this name.
+ * @return the depth of this name.
*/
@Override
public int depth() {
@@ -380,7 +382,7 @@ public class NamedIdentifier extends Imm
* The length of this sequence is the {@linkplain #depth() depth}.
* It does not include the {@linkplain #scope() scope}.
*
- * @return The local names making this generic name, without the {@linkplain #scope() scope}.
+ * @return the local names making this generic name, without the {@linkplain #scope() scope}.
* Shall never be {@code null} neither empty.
*/
@Override
@@ -403,7 +405,7 @@ public class NamedIdentifier extends Imm
/**
* Returns a view of this name as a fully-qualified name.
*
- * @return The fully-qualified name (never {@code null}).
+ * @return the fully-qualified name (never {@code null}).
*/
@Override
public GenericName toFullyQualifiedName() {
@@ -417,7 +419,7 @@ public class NamedIdentifier extends Imm
* If no international string is available, then this method returns an implementation mapping
* to {@code toString()} for all locales.
*
- * @return A localizable string representation of this name.
+ * @return a localizable string representation of this name.
*/
@Override
public InternationalString toInternationalString() {
@@ -429,7 +431,7 @@ public class NamedIdentifier extends Imm
* is local-independent. It contains all elements listed by {@link #getParsedNames()}
* separated by a namespace-dependent character (usually {@code :} or {@code /}).
*
- * @return A local-independent string representation of this generic name.
+ * @return a local-independent string representation of this generic name.
*
* @see IdentifiedObjects#toString(Identifier)
*/
@@ -443,7 +445,7 @@ public class NamedIdentifier extends Imm
* zero, or a positive integer as this name lexicographically precedes, is equal to,
* or follows the specified object.
*
- * @param object The object to compare with.
+ * @param object the object to compare with.
* @return -1 if this identifier precedes the given object, +1 if it follows it.
*/
@Override
@@ -454,7 +456,7 @@ public class NamedIdentifier extends Imm
/**
* Compares this identifier with the specified object for equality.
*
- * @param object The object to compare with this name.
+ * @param object the object to compare with this name.
* @return {@code true} if the given object is equal to this name.
*/
@Override
@@ -488,8 +490,8 @@ public class NamedIdentifier extends Imm
* Invoked on serialization for writing the {@linkplain #name} if it was supplied by the user.
* Otherwise, we will let {@link #getName()} recompute the name only when needed.
*
- * @param out The output stream where to serialize this named identifier.
- * @throws IOException If an I/O error occurred while writing.
+ * @param out the output stream where to serialize this named identifier.
+ * @throws IOException if an I/O error occurred while writing.
*/
private void writeObject(final ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
@@ -500,9 +502,9 @@ public class NamedIdentifier extends Imm
* Invoked on deserialization for reading the name written by {@link #writeObject(ObjectOutputStream)},
* if any.
*
- * @param in The input stream from which to deserialize a named identifier.
- * @throws IOException If an I/O error occurred while reading or if the stream contains invalid data.
- * @throws ClassNotFoundException If the class serialized on the stream is not on the classpath.
+ * @param in the input stream from which to deserialize a named identifier.
+ * @throws IOException if an I/O error occurred while reading or if the stream contains invalid data.
+ * @throws ClassNotFoundException if the class serialized on the stream is not on the classpath.
*/
private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/jdk8/JDK8.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -278,6 +278,28 @@ public final class JDK8 {
}
/**
+ * Same as {@link #putIfAbsent(Map, Object, Object)} but using a more conservative strategy
+ * (actually the same one than the default JDK8 implementation). This method is preferred
+ * when the {@code put(\u2026)} operation may have significant side-effect.
+ *
+ * @param <K> the type of keys.
+ * @param <V> the type of values.
+ * @param map the map where to store the value.
+ * @param key the key for the value to store.
+ * @param value the value to store.
+ * @return the previous value, or {@code null} if none.
+ *
+ * @since 0.8
+ */
+ public static <K,V> V putIfAbsentConservative(final Map<K,V> map, final K key, final V value) {
+ V previous = map.get(key);
+ if (previous == null) {
+ previous = map.put(key, value);
+ }
+ return previous;
+ }
+
+ /**
* Removes the entry for the given key, provided that it is currently mapped to the given value.
*
* @param <K> the type of keys.
Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ArgumentChecks.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -169,10 +169,10 @@ public final class ArgumentChecks extend
* If this method does not thrown an exception, then the value can be casted to the class
* represented by {@code expectedType} without throwing a {@link ClassCastException}.
*
- * @param name the name of the argument to be checked, used only if an exception is thrown.
- * Can be {@code null} if the name is unknown.
- * @param expectedType the expected type (class or interface).
- * @param value the value to check, or {@code null}.
+ * @param name the name of the argument to be checked, used only if an exception is thrown.
+ * Can be {@code null} if the name is unknown.
+ * @param expectedType the expected type (class or interface).
+ * @param value the value to check, or {@code null}.
* @throws IllegalArgumentException if {@code value} is non-null and is not assignable to the given type.
*
* @see org.apache.sis.util.collection.Containers#property(Map, Object, Class)
@@ -204,8 +204,7 @@ public final class ArgumentChecks extend
*
* @param upper the maximal index value, exclusive.
* @param index the index to check.
- * @throws IndexOutOfBoundsException if the given index is negative or not lower than the
- * given upper value.
+ * @throws IndexOutOfBoundsException if the given index is negative or not lower than the given upper value.
*
* @see #ensurePositive(String, int)
*/
Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/ObjectConverters.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -75,9 +75,9 @@ public final class ObjectConverters exte
/**
* Returns an identity converter for objects of the given type.
*
- * @param <T> The object type.
- * @param type The object type.
- * @return An identity converter for objects of the given type.
+ * @param <T> the object type.
+ * @param type the object type.
+ * @return an identity converter for objects of the given type.
*/
public static <T> ObjectConverter<T,T> identity(final Class<T> type) {
ArgumentChecks.ensureNonNull("type", type);
@@ -87,11 +87,11 @@ public final class ObjectConverters exte
/**
* Returns a converter for the specified source and target classes.
*
- * @param <S> The source class.
- * @param <T> The target class.
- * @param source The source class.
- * @param target The target class, or {@code Object.class} for any.
- * @return The converter from the specified source class to the target class.
+ * @param <S> the source class.
+ * @param <T> the target class.
+ * @param source the source class.
+ * @param target the target class, or {@code Object.class} for any.
+ * @return the converter from the specified source class to the target class.
* @throws UnconvertibleObjectException if no converter is found.
*/
public static <S,T> ObjectConverter<? super S, ? extends T> find(final Class<S> source, final Class<T> target)
@@ -108,10 +108,10 @@ public final class ObjectConverters exte
* consider invoking {@link #find(Class, Class)} instead in order to reuse the same converter
* for all values to convert.
*
- * @param <T> The type of the {@code target} class.
- * @param value The value to convert, or {@code null}.
- * @param target The target class.
- * @return The converted value (may be {@code null}).
+ * @param <T> the type of the {@code target} class.
+ * @param value the value to convert, or {@code null}.
+ * @param target the target class.
+ * @return the converted value (may be {@code null}).
* @throws UnconvertibleObjectException if the given value can not be converted.
*/
@SuppressWarnings({"unchecked","rawtypes"})
@@ -132,13 +132,12 @@ public final class ObjectConverters exte
* {@link Containers#derivedSet Containers.derivedSet(\u2026)}.
* See the javadoc of the above method for more information.
*
- * @param <S> The type of elements in the storage (original) set.
- * @param <E> The type of elements in the derived set.
- * @param storage The storage set containing the original elements, or {@code null}.
- * @param converter The converter from the elements in the storage set to the elements
- * in the derived set.
- * @return A view over the {@code storage} set containing all elements converted by the given
- * converter, or {@code null} if {@code storage} was null.
+ * @param <S> the type of elements in the storage (original) set.
+ * @param <E> the type of elements in the derived set.
+ * @param storage the storage set containing the original elements, or {@code null}.
+ * @param converter the converter from the elements in the storage set to the elements in the derived set.
+ * @return a view over the {@code storage} set containing all elements converted by the given converter, or
+ * {@code null} if {@code storage} was null.
*
* @see Containers#derivedSet(Set, ObjectConverter)
*/
@@ -155,15 +154,15 @@ public final class ObjectConverters exte
* {@link Containers#derivedMap Containers.derivedMap(\u2026)}.
* See the javadoc of the above method for more information.
*
- * @param <SK> The type of keys in the storage map.
- * @param <SV> The type of values in the storage map.
- * @param <K> The type of keys in the derived map.
- * @param <V> The type of values in the derived map.
- * @param storage The storage map containing the original entries, or {@code null}.
- * @param keyConverter The converter from the keys in the storage map to the keys in the derived map.
- * @param valueConverter The converter from the values in the storage map to the values in the derived map.
- * @return A view over the {@code storage} map containing all entries converted by the given
- * converters, or {@code null} if {@code storage} was null.
+ * @param <SK> the type of keys in the storage map.
+ * @param <SV> the type of values in the storage map.
+ * @param <K> the type of keys in the derived map.
+ * @param <V> the type of values in the derived map.
+ * @param storage the storage map containing the original entries, or {@code null}.
+ * @param keyConverter the converter from the keys in the storage map to the keys in the derived map.
+ * @param valueConverter the converter from the values in the storage map to the values in the derived map.
+ * @return a view over the {@code storage} map containing all entries converted by the given converters, or
+ * {@code null} if {@code storage} was null.
*
* @see Containers#derivedMap(Map, ObjectConverter, ObjectConverter)
*/
@@ -183,13 +182,13 @@ public final class ObjectConverters exte
* {@link Containers#derivedMap Containers.derivedMap(\u2026)}.
* See the javadoc of the above method for more information.
*
- * @param <SK> The type of keys in the storage map.
- * @param <K> The type of keys in the derived map.
- * @param <V> The type of values in the storage and derived map.
- * @param storage The storage map containing the original entries, or {@code null}.
- * @param keyConverter The converter from the keys in the storage map to the keys in the derived map.
- * @param valueType The type of values in the storage and derived map.
- * @return A view over the {@code storage} map containing all entries with the keys converted
+ * @param <SK> the type of keys in the storage map.
+ * @param <K> the type of keys in the derived map.
+ * @param <V> the type of values in the storage and derived map.
+ * @param storage the storage map containing the original entries, or {@code null}.
+ * @param keyConverter the converter from the keys in the storage map to the keys in the derived map.
+ * @param valueType the type of values in the storage and derived map.
+ * @return a view over the {@code storage} map containing all entries with the keys converted
* by the given converter, or {@code null} if {@code storage} was null.
*
* @see Containers#derivedMap(Map, ObjectConverter, ObjectConverter)
@@ -211,14 +210,14 @@ public final class ObjectConverters exte
* {@link Containers#derivedMap Containers.derivedMap(\u2026)}.
* See the javadoc of the above method for more information.
*
- * @param <K> The type of keys in the storage and derived map.
- * @param <SV> The type of values in the storage map.
- * @param <V> The type of values in the derived map.
- * @param storage The storage map containing the original entries, or {@code null}.
- * @param keyType The type of keys in the storage and derived map.
- * @param valueConverter The converter from the values in the storage map to the values in the derived map.
- * @return A view over the {@code storage} map containing all entries with the values converted
- * by the given converter, or {@code null} if {@code storage} was null.
+ * @param <K> the type of keys in the storage and derived map.
+ * @param <SV> the type of values in the storage map.
+ * @param <V> the type of values in the derived map.
+ * @param storage the storage map containing the original entries, or {@code null}.
+ * @param keyType the type of keys in the storage and derived map.
+ * @param valueConverter the converter from the values in the storage map to the values in the derived map.
+ * @return a view over the {@code storage} map containing all entries with the values converted by the given
+ * converter, or {@code null} if {@code storage} was null.
*
* @see Containers#derivedMap(Map, ObjectConverter, ObjectConverter)
*/
Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Utilities.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -29,7 +29,7 @@ import org.apache.sis.util.collection.Ch
/**
* Static methods for object comparisons in different ways (deeply, approximatively, <i>etc</i>).
*
- * @author Martin Desruisseaux (IRD, Geomatys)
+ * @author Martin Desruisseaux (IRD, Geomatys)
* @since 0.3
* @version 0.3
* @module
@@ -220,8 +220,7 @@ public final class Utilities extends Sta
}
/**
- * Compares two collections. Order are significant, unless both collections implement the
- * {@link Set} interface.
+ * Compares two collections. Order are significant, unless both collections implement the {@link Set} interface.
*/
private static boolean equals(final Iterable<?> object1, final Iterable<?> object2, final ComparisonMode mode) {
final Iterator<?> it1 = object1.iterator();
@@ -284,7 +283,7 @@ public final class Utilities extends Sta
* Returns an assertion error message for mismatched types.
*
* @param expected the expected type.
- * @param actual the actual object (not its type).
+ * @param actual the actual object (not its type).
* @return the error message to use in assertions.
*/
private static String mismatchedType(final Class<?> expected, final Object actual) {
Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/CheckedContainer.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/CheckedContainer.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/CheckedContainer.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/CheckedContainer.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -16,12 +16,14 @@
*/
package org.apache.sis.util.collection;
+import java.util.Collection;
+
/**
* A container that ensures that all elements are assignable to a given base type.
- * Checked containers are usually {@link java.util.Collection}, but not always.
+ * Checked containers are usually {@link Collection}, but not always.
*
- * @param <E> The base type of elements in the container.
+ * @param <E> the base type of elements in the container.
*
* @author Martin Desruisseaux (IRD, Geomatys)
* @since 0.3
@@ -32,7 +34,7 @@ public interface CheckedContainer<E> {
/**
* Returns the base type of all elements in this container.
*
- * @return The element type.
+ * @return the element type.
*/
Class<E> getElementType();
}
Modified: sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/Containers.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/Containers.java?rev=1777269&r1=1777268&r2=1777269&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/Containers.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/collection/Containers.java [UTF-8] Wed Jan 4 09:17:26 2017
@@ -54,7 +54,7 @@ public final class Containers extends St
* pattern. In such cases, null collections (i.e. collections not yet instantiated) are typically
* considered as {@linkplain Collection#isEmpty() empty}.</p>
*
- * @param collection The collection to test, or {@code null}.
+ * @param collection the collection to test, or {@code null}.
* @return {@code true} if the given collection is null or empty, or {@code false} otherwise.
*/
public static boolean isNullOrEmpty(final Collection<?> collection) {
@@ -70,7 +70,7 @@ public final class Containers extends St
* pattern. In such cases, null maps (i.e. maps not yet instantiated) are typically considered
* as {@linkplain Map#isEmpty() empty}.</p>
*
- * @param map The map to test, or {@code null}.
+ * @param map the map to test, or {@code null}.
* @return {@code true} if the given map is null or empty, or {@code false} otherwise.
*/
public static boolean isNullOrEmpty(final Map<?,?> map) {
@@ -87,9 +87,9 @@ public final class Containers extends St
* Because arrays in the Java language are covariant (at the contrary of collections),
* the list type have to be {@code <? extends E>} instead than {@code <E>}.</p>
*
- * @param <E> The base type of elements in the list.
- * @param array The array to wrap, or {@code null} if none.
- * @return The given array wrapped in an unmodifiable list, or {@code null} if the given array was null.
+ * @param <E> the base type of elements in the list.
+ * @param array the array to wrap, or {@code null} if none.
+ * @return the given array wrapped in an unmodifiable list, or {@code null} if the given array was null.
*
* @see java.util.Arrays#asList(Object[])
*/
@@ -109,12 +109,12 @@ public final class Containers extends St
* Because arrays in the Java language are covariant (at the contrary of collections),
* the list type have to be {@code <? extends E>} instead than {@code <E>}.</p>
*
- * @param <E> The type of elements in the list.
- * @param array The array to wrap (can not be null).
- * @param lower Low endpoint (inclusive) of the sublist.
- * @param upper High endpoint (exclusive) of the sublist.
- * @return The given array wrapped in an unmodifiable list.
- * @throws IndexOutOfBoundsException If the lower or upper value are out of bounds.
+ * @param <E> the type of elements in the list.
+ * @param array the array to wrap (can not be null).
+ * @param lower low endpoint (inclusive) of the sublist.
+ * @param upper high endpoint (exclusive) of the sublist.
+ * @return the given array wrapped in an unmodifiable list.
+ * @throws IndexOutOfBoundsException if the lower or upper value are out of bounds.
*/
public static <E> List<? extends E> unmodifiableList(final E[] array, final int lower, final int upper) {
ArgumentChecks.ensureNonNull("array", array);
@@ -145,11 +145,11 @@ public final class Containers extends St
* The returned set is not synchronized by itself, but is nevertheless thread-safe if the
* given set (including its iterator) and converter are thread-safe.</p>
*
- * @param <S> The type of elements in the storage (original) set.
- * @param <E> The type of elements in the derived set.
- * @param storage The storage set containing the original elements, or {@code null}.
- * @param converter The converter from the elements in the storage set to the elements in the derived set.
- * @return A view over the {@code storage} set containing all elements converted by the given converter,
+ * @param <S> the type of elements in the storage (original) set.
+ * @param <E> the type of elements in the derived set.
+ * @param storage the storage set containing the original elements, or {@code null}.
+ * @param converter the converter from the elements in the storage set to the elements in the derived set.
+ * @return a view over the {@code storage} set containing all elements converted by the given converter,
* or {@code null} if {@code storage} was null.
*
* @see org.apache.sis.util.ObjectConverters#derivedSet(Set, ObjectConverter)
@@ -187,14 +187,14 @@ public final class Containers extends St
* is not a {@code Collection} sub-type, but the derived map {@linkplain Map#keySet() key set} and
* {@linkplain Map#entrySet() entry set} do.</p>
*
- * @param <SK> The type of keys in the storage map.
- * @param <SV> The type of values in the storage map.
- * @param <K> The type of keys in the derived map.
- * @param <V> The type of values in the derived map.
- * @param storage The storage map containing the original entries, or {@code null}.
- * @param keyConverter The converter from the keys in the storage map to the keys in the derived map.
- * @param valueConverter The converter from the values in the storage map to the values in the derived map.
- * @return A view over the {@code storage} map containing all entries converted by the given converters,
+ * @param <SK> the type of keys in the storage map.
+ * @param <SV> the type of values in the storage map.
+ * @param <K> the type of keys in the derived map.
+ * @param <V> the type of values in the derived map.
+ * @param storage the storage map containing the original entries, or {@code null}.
+ * @param keyConverter the converter from the keys in the storage map to the keys in the derived map.
+ * @param valueConverter the converter from the values in the storage map to the values in the derived map.
+ * @return a view over the {@code storage} map containing all entries converted by the given converters,
* or {@code null} if {@code storage} was null.
*
* @see org.apache.sis.util.ObjectConverters#derivedMap(Map, ObjectConverter, ObjectConverter)
@@ -224,12 +224,12 @@ public final class Containers extends St
* kinds, as in the {@link org.apache.sis.referencing.AbstractIdentifiedObject#AbstractIdentifiedObject(Map)
* AbstractIdentifiedObject} constructor.</p>
*
- * @param <T> The compile-time value of the {@code type} argument.
- * @param properties The map of properties from which to get a value, or {@code null} if none.
- * @param key The key of the property value to return. Can be {@code null} if the map supports null key.
- * @param type The expected type of the property value. Can not be null.
- * @return The property value for the given key casted to the given type, or {@code null} if none.
- * @throws IllegalArgumentException If a non-null property value exists for the given key but can
+ * @param <T> the compile-time value of the {@code type} argument.
+ * @param properties the map of properties from which to get a value, or {@code null} if none.
+ * @param key the key of the property value to return. Can be {@code null} if the map supports null key.
+ * @param type the expected type of the property value. Can not be null.
+ * @return the property value for the given key casted to the given type, or {@code null} if none.
+ * @throws IllegalArgumentException if a non-null property value exists for the given key but can
* not be casted to the given type.
*
* @see ArgumentChecks#ensureCanCast(String, Class, Object)
@@ -258,8 +258,8 @@ public final class Containers extends St
* {@link java.util.HashSet} as well, which are built on top of {@code HashMap}.
* However it is not needed for {@link java.util.IdentityHashMap}.</p>
*
- * @param count The number of elements to be put into the hash map or hash set.
- * @return The minimal initial capacity to be given to the hash map constructor.
+ * @param count the number of elements to be put into the hash map or hash set.
+ * @return the minimal initial capacity to be given to the hash map constructor.
*/
public static int hashMapCapacity(final int count) {
int r = count >>> 2;