sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1799452 [1/7] - in /sis/branches/JDK7: ./ core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/ core/sis-feature/src/main/java/org/apache/sis/feature/ core/sis-feature/src/test/java/org/apache/sis/feature/ core/sis-feature/sr...
Date Wed, 21 Jun 2017 14:11:41 GMT
Author: desruisseaux
Date: Wed Jun 21 14:11:39 2017
New Revision: 1799452

URL: http://svn.apache.org/viewvc?rev=1799452&view=rev
Log:
Merge from the JDK8 branch.

Added:
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/util/ISOCalendar.java   (with props)
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/iso/DefaultLocalNameTest.java
      - copied unchanged from r1799425, sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/util/iso/DefaultLocalNameTest.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/iso/DefaultScopedNameTest.java
      - copied unchanged from r1799425, sis/branches/JDK8/core/sis-utility/src/test/java/org/apache/sis/util/iso/DefaultScopedNameTest.java
Removed:
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/iso/AbstractNameTest.java
Modified:
    sis/branches/JDK7/   (props changed)
    sis/branches/JDK7/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Rewriter.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
    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/FeatureFormat.java
    sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java
    sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java
    sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Dependencies.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitationDate.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultOnlineResource.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibility.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraints.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultSecurityConstraints.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultAttributeGroup.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultBand.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultCoverageDescription.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultFeatureCatalogueDescription.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultImageDescription.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeDimension.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultRangeElementDescription.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/DefaultSampleDimension.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistribution.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultDistributor.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultBoundingPolygon.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultExtent.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultGeographicBoundingBox.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultGeographicDescription.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultTemporalExtent.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultVerticalExtent.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAggregateInformation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultAssociatedResource.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultBrowseGraphic.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultKeywordClass.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultKeywords.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationChainMetadata.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultOperationMetadata.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultRepresentativeFraction.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultResolution.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultServiceIdentification.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/DefaultUsage.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultAlgorithm.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultLineage.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultNominalResolution.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessStepReport.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultProcessing.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/DefaultSource.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScope.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultScopeDescription.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractCompleteness.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractElement.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractLogicalConsistency.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractPositionalAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractTemporalAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractThematicAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAbsoluteExternalPositionalAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultAccuracyOfATimeMeasurement.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessCommission.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCompletenessOmission.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConceptualConsistency.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultConformanceResult.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultCoverageResult.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultDomainConsistency.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultFormatConsistency.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultGriddedDataPositionalAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultNonQuantitativeAttributeAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeAttributeAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultQuantitativeResult.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultRelativeInternalPositionalAccuracy.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalConsistency.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTemporalValidity.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultThematicClassificationCorrectness.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultTopologicalConsistency.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/DefaultUsability.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultDimension.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCP.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGCPCollection.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeometricObjects.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeorectified.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGeoreferenceable.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/DefaultGridSpatialRepresentation.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataWriter.java
    sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/package-info.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/CommonCRS.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/package-info.java
    sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransformSeparator.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/report/CoordinateOperationMethods.java
    sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/report/HTMLGenerator.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/internal/util/StandardDateFormat.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/math/SequenceVector.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/CharSequences.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/Numbers.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/iso/DefaultNameFactory.java
    sis/branches/JDK7/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/internal/util/StandardDateFormatTest.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/math/VectorTest.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/measure/UnitFormatTest.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/test/suite/UtilityTestSuite.java
    sis/branches/JDK7/core/sis-utility/src/test/java/org/apache/sis/util/iso/DefaultNameFactoryTest.java
    sis/branches/JDK7/pom.xml
    sis/branches/JDK7/src/main/javadoc/stylesheet.css
    sis/branches/JDK7/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/earthobservation/LandsatReader.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/CRSBuilder.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/GeoTiffStore.java
    sis/branches/JDK7/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Axis.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Decoder.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/GridGeometry.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/Variable.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/ChannelDecoder.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/FeaturesInfo.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/GridGeometryInfo.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/impl/VariableInfo.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/GridGeometryWrapper.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/ucar/VariableWrapper.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/AttributeNames.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java
    sis/branches/JDK7/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/package-info.java
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/ConformanceTest.java
    sis/branches/JDK7/storage/sis-netcdf/src/test/java/org/apache/sis/storage/netcdf/MetadataReaderTest.java
    sis/branches/JDK7/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/internal/storage/MetadataBuilder.java
    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/io/HyperRectangleReader.java

Propchange: sis/branches/JDK7/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jun 21 14:11:39 2017
@@ -1,5 +1,5 @@
 /sis/branches/Android:1430670-1480699
 /sis/branches/JDK6:1394913-1508480
-/sis/branches/JDK8:1584960-1796404
+/sis/branches/JDK8:1584960-1799451
 /sis/branches/JDK9:1773327-1789983
 /sis/trunk:1394364-1508466,1519089-1519674

Modified: sis/branches/JDK7/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Rewriter.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Rewriter.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Rewriter.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Rewriter.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -144,12 +144,39 @@ final class Rewriter {
     }
 
     /**
+     * Returns {@code true} if the characters just before {@code i} are {@code <td…>} or {@code <th…>}
+     * where {@code …} are ignored characters. If the element before is {@code <a…>}, then that element
+     * is skipped an the other element before it is verified.
+     */
+    private boolean isBeginningOfCell(int i) {
+        while (--i >= 0 && content.charAt(i) == '>') {
+            i = content.lastIndexOf("<", i);
+            final int start = i+1;
+            int end = start;
+            char c;
+            while ((c = content.charAt(end)) >= 'a' && c <= 'z') end++;
+            switch (content.substring(start, end)) {
+                case "th":
+                case "td": return true;
+                case "a" : continue;
+            }
+            break;
+        }
+        return false;
+    }
+
+    /**
      * For any Java identifier inside {@code <code>...</code>} elements, inserts soft-hyphens or zero-width spaces
-     * where this method decides that the code could be wrapped on the next line.
+     * where this method decides that the code could be wrapped on the next line. We make an exception to this rule
+     * if the {@code <code>} tag is just after a {@code <td>} or {@code <th>} tag.
      */
     private void hyphenation() {
         int i = 0;
         while ((i = content.indexOf(OPEN, i)) >= 0) {
+            if (isBeginningOfCell(i)) {
+                i += OPEN.length();
+                continue;
+            }
             int stopAt = content.indexOf(CLOSE, i += OPEN.length());
             /*
              * At this point, we are inside a <code>...</code> element. The text begins at 'i',

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.IdentityHashMap;
 import org.opengis.util.GenericName;
 import org.opengis.util.InternationalString;
+import org.opengis.metadata.Identifier;
 import org.apache.sis.internal.feature.Resources;
 import org.apache.sis.util.Debug;
 
@@ -33,6 +34,7 @@ import org.opengis.feature.AttributeType
 import org.opengis.feature.FeatureType;
 import org.opengis.feature.FeatureAssociation;
 import org.opengis.feature.FeatureAssociationRole;
+import org.opengis.feature.PropertyNotFoundException;
 
 
 /**
@@ -378,35 +380,62 @@ public class DefaultAssociationRole exte
 
     /**
      * Returns the name of the property to use as a title for the associated feature, or {@code null} if none.
-     * This method searches for the first attribute having a value class assignable to {@link CharSequence}.
+     * This method applies the following heuristic rules:
+     *
+     * <ul>
+     *   <li>If associated feature has a property named {@code "sis:identifier"}, then this method returns that name.</li>
+     *   <li>Otherwise if the associated feature has a mandatory property of type {@link CharSequence}, {@link GenericName}
+     *       or {@link Identifier}, then this method returns the name of that property.</li>
+     *   <li>Otherwise if the associated feature has an optional property of type {@link CharSequence}, {@link GenericName}
+     *       or {@link Identifier}, then this method returns the name of that property.</li>
+     *   <li>Otherwise this method returns {@code null}.</li>
+     * </ul>
+     *
+     * This method should be used only for display purpose, not as a reliable or stable way to get the identifier.
+     * The heuristic rules implemented in this method may change in any future Apache SIS version.
      */
     static String getTitleProperty(final FeatureAssociationRole role) {
         if (role instanceof DefaultAssociationRole) {
-            String p = ((DefaultAssociationRole) role).titleProperty; // No synchronization - not a big deal if computed twice.
+            String p = ((DefaultAssociationRole) role).titleProperty;       // No synchronization - not a big deal if computed twice.
             if (p != null) {
                 return p.isEmpty() ? null : p;
             }
-            p = searchTitleProperty(role);
+            p = searchTitleProperty(role.getValueType());
             ((DefaultAssociationRole) role).titleProperty = (p != null) ? p : "";
             return p;
         }
-        return searchTitleProperty(role);
+        return searchTitleProperty(role.getValueType());
     }
 
     /**
      * Implementation of {@link #getTitleProperty(FeatureAssociationRole)} for first search,
      * or for non-SIS {@code FeatureAssociationRole} implementations.
      */
-    private static String searchTitleProperty(final FeatureAssociationRole role) {
-        for (final PropertyType type : role.getValueType().getProperties(true)) {
+    private static String searchTitleProperty(final FeatureType ft) {
+        String fallback = null;
+        try {
+            return ft.getProperty("sis:identifier").getName().toString();
+        } catch (PropertyNotFoundException e) {
+            // Ignore.
+        }
+        for (final PropertyType type : ft.getProperties(true)) {
             if (type instanceof AttributeType<?>) {
                 final AttributeType<?> pt = (AttributeType<?>) type;
-                if (pt.getMaximumOccurs() != 0 && CharSequence.class.isAssignableFrom(pt.getValueClass())) {
-                    return pt.getName().toString();
+                final Class<?> valueClass = pt.getValueClass();
+                if (CharSequence.class.isAssignableFrom(valueClass) ||
+                    GenericName .class.isAssignableFrom(valueClass) ||
+                    Identifier.class.isAssignableFrom(valueClass))
+                {
+                    final String name = pt.getName().toString();
+                    if (pt.getMaximumOccurs() != 0) {
+                        return name;
+                    } else if (fallback == null) {
+                        fallback = name;
+                    }
                 }
             }
         }
-        return null;
+        return fallback;
     }
 
     /**

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=1799452&r1=1799451&r2=1799452&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 Jun 21 14:11:39 2017
@@ -713,27 +713,59 @@ public class DefaultFeatureType extends
      */
     private static boolean isAssignableIgnoreName(final PropertyType base, final PropertyType other) {
         if (base != other) {
+            /*
+             * If the base property is an attribute, then the overriding property shall be either an attribute
+             * or a parameterless operation producing an attribute.  The parameterless operation is considered
+             * has having a [1…1] cardinality.
+             */
             if (base instanceof AttributeType<?>) {
-                if (!(other instanceof AttributeType<?>)) {
+                final AttributeType<?> p0 = (AttributeType<?>) base;
+                final AttributeType<?> p1;
+                if (other instanceof AttributeType<?>) {
+                    p1 = (AttributeType<?>) other;
+                } else if (isParameterlessOperation(other)) {
+                    final IdentifiedType result = ((Operation) other).getResult();
+                    if (result instanceof AttributeType<?>) {
+                        p1 = (AttributeType<?>) result;
+                    } else {
+                        return false;
+                    }
+                } else {
                     return false;
                 }
-                final AttributeType<?> p0 = (AttributeType<?>) base;
-                final AttributeType<?> p1 = (AttributeType<?>) other;
-                if (!p0.getValueClass().isAssignableFrom(p1.getValueClass()) ||
-                     p0.getMinimumOccurs() > p1.getMinimumOccurs() ||
-                     p0.getMaximumOccurs() < p1.getMaximumOccurs())
+                final int minOccurs, maxOccurs;
+                if (!p0.getValueClass().isAssignableFrom(p1.getValueClass())    ||
+                    (minOccurs = p0.getMinimumOccurs()) > p1.getMinimumOccurs() ||
+                    (maxOccurs = p0.getMaximumOccurs()) < p1.getMaximumOccurs() ||
+                    (p1 != other && (minOccurs > 1 || maxOccurs < 1)))             // [1…1] cardinality for operations.
                 {
                     return false;
                 }
             }
+            /*
+             * Unconditionally test for associations even if we executed the previous block for attributes,
+             * because an implementation could implement both AttributeType and AssociationRole interfaces.
+             * This is not recommended, but if it happen we want a behavior as consistent as possible.
+             */
             if (base instanceof FeatureAssociationRole) {
-                if (!(other instanceof FeatureAssociationRole)) {
+                final FeatureAssociationRole p0 = (FeatureAssociationRole) base;
+                final FeatureAssociationRole p1;
+                if (other instanceof FeatureAssociationRole) {
+                    p1 = (FeatureAssociationRole) other;
+                } else if (isParameterlessOperation(other)) {
+                    final IdentifiedType result = ((Operation) other).getResult();
+                    if (result instanceof FeatureAssociationRole) {
+                        p1 = (FeatureAssociationRole) result;
+                    } else {
+                        return false;
+                    }
+                } else {
                     return false;
                 }
-                final FeatureAssociationRole p0 = (FeatureAssociationRole) base;
-                final FeatureAssociationRole p1 = (FeatureAssociationRole) other;
-                if (p0.getMinimumOccurs() > p1.getMinimumOccurs() ||
-                    p0.getMaximumOccurs() < p1.getMaximumOccurs())
+                final int minOccurs, maxOccurs;
+                if ((minOccurs = p0.getMinimumOccurs()) > p1.getMinimumOccurs() ||
+                    (maxOccurs = p0.getMaximumOccurs()) < p1.getMaximumOccurs() ||
+                    (p1 != other && (minOccurs > 1 || maxOccurs < 1)))             // [1…1] cardinality for operations.
                 {
                     return false;
                 }
@@ -743,17 +775,26 @@ public class DefaultFeatureType extends
                     return false;
                 }
             }
+            /*
+             * Operations can be overridden by other operations having the same parameters.
+             * In the special case of parameterless operations, can also be overridden by
+             * AttributeType or FeatureAssociationRole.
+             */
             if (base instanceof Operation) {
-                if (!(other instanceof Operation)) {
-                    return false;
-                }
                 final Operation p0 = (Operation) base;
-                final Operation p1 = (Operation) other;
-                if (!Objects.equals(p0.getParameters(), p1.getParameters())) {
+                final IdentifiedType r1;
+                if (other instanceof Operation) {
+                    final Operation p1 = (Operation) other;
+                    if (!Objects.equals(p0.getParameters(), p1.getParameters())) {
+                        return false;
+                    }
+                    r1 = p1.getResult();
+                } else if (isParameterlessOperation(base)) {
+                    r1 = other;
+                } else {
                     return false;
                 }
                 final IdentifiedType r0 = p0.getResult();
-                final IdentifiedType r1 = p1.getResult();
                 if (r0 != r1) {
                     if (r0 instanceof FeatureType) {
                         if (!(r1 instanceof FeatureType) || !((FeatureType) r0).isAssignableFrom((FeatureType) r1)) {
@@ -765,6 +806,11 @@ public class DefaultFeatureType extends
                             return false;
                         }
                     }
+                    if (r0 instanceof Operation) {
+                        if (!(r1 instanceof Operation) || !isAssignableIgnoreName((Operation) r0, (Operation) r1)) {
+                            return false;
+                        }
+                    }
                 }
             }
         }

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Set;
 import java.util.EnumSet;
 import java.util.Iterator;
+import java.util.Collection;
 import java.util.Locale;
 import java.util.TimeZone;
 import java.io.IOException;
@@ -35,6 +36,7 @@ import org.opengis.util.GenericName;
 import org.apache.sis.io.TableAppender;
 import org.apache.sis.io.TabularFormat;
 import org.apache.sis.util.Deprecable;
+import org.apache.sis.util.Characters;
 import org.apache.sis.util.CharSequences;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.resources.Errors;
@@ -54,7 +56,6 @@ import org.opengis.feature.FeatureType;
 import org.opengis.feature.FeatureAssociation;
 import org.opengis.feature.FeatureAssociationRole;
 import org.opengis.feature.Operation;
-import org.apache.sis.util.Characters;
 
 
 /**
@@ -374,6 +375,7 @@ public class FeatureFormat extends Tabul
         final List<String>  remarks = new ArrayList<>();
         for (final PropertyType propertyType : featureType.getProperties(true)) {
             Object value = null;
+            int cardinality = -1;
             if (feature != null) {
                 if (!(propertyType instanceof AttributeType<?>) &&
                     !(propertyType instanceof FeatureAssociationRole) &&
@@ -383,16 +385,21 @@ public class FeatureFormat extends Tabul
                 }
                 value = feature.getPropertyValue(propertyType.getName().toString());
                 if (value == null) {
-                    if (propertyType instanceof AttributeType &&
-                            ((AttributeType) propertyType).getMinimumOccurs() == 0)
+                    if (propertyType instanceof AttributeType
+                            && ((AttributeType) propertyType).getMinimumOccurs() == 0)
                     {
-                        continue;                                       // If no value, skip the full row.
+                        continue;                           // If optional and no value, skip the full row.
                     }
-                    if (propertyType instanceof FeatureAssociationRole &&
-                            ((FeatureAssociationRole) propertyType).getMinimumOccurs() == 0)
+                    if (propertyType instanceof FeatureAssociationRole
+                            && ((FeatureAssociationRole) propertyType).getMinimumOccurs() == 0)
                     {
-                        continue;                                       // If no value, skip the full row.
+                        continue;                           // If optional and no value, skip the full row.
                     }
+                    cardinality = 0;
+                } else if (value instanceof Collection<?>) {
+                    cardinality = ((Collection<?>) value).size();
+                } else {
+                    cardinality = 1;
                 }
             } else if (propertyType instanceof AttributeType<?>) {
                 value = ((AttributeType<?>) propertyType).getDefaultValue();
@@ -461,7 +468,17 @@ public class FeatureFormat extends Tabul
                         break;
                     }
                     case CARDINALITY: {
+                        table.setCellAlignment(TableAppender.ALIGN_RIGHT);
+                        if (cardinality >= 0) {
+                            table.append(getFormat(Integer.class).format(cardinality, buffer, dummyFP));
+                            buffer.setLength(0);
+                        }
                         if (maximumOccurs >= 0) {
+                            if (cardinality >= 0) {
+                                table.append(' ')
+                                     .append((cardinality >= minimumOccurs && cardinality <= maximumOccurs) ? '∈' : '∉')
+                                     .append(' ');
+                            }
                             final Format format = getFormat(Integer.class);
                             table.append('[').append(format.format(minimumOccurs, buffer, dummyFP)).append(" … ");
                             buffer.setLength(0);
@@ -476,26 +493,28 @@ public class FeatureFormat extends Tabul
                         break;
                     }
                     case VALUE: {
-                        final Format format = getFormat(valueClass);                        // Null if valueClass is null.
+                        table.setCellAlignment(TableAppender.ALIGN_LEFT);
+                        final Format format = getFormat(valueClass);                            // Null if valueClass is null.
                         final Iterator<?> it = CollectionsExt.toCollection(value).iterator();
                         String separator = "";
                         int length = 0;
                         while (it.hasNext()) {
                             value = it.next();
                             if (value != null) {
-                                if (format != null && valueClass.isInstance(value)) {       // Null safe of getFormat(valueClass) contract.
-                                    value = format.format(value, buffer, dummyFP);
-                                } else if (value instanceof Feature && propertyType instanceof FeatureAssociationRole) {
+                                if (propertyType instanceof FeatureAssociationRole) {
                                     final String p = DefaultAssociationRole.getTitleProperty((FeatureAssociationRole) propertyType);
                                     if (p != null) {
                                         value = ((Feature) value).getPropertyValue(p);
                                         if (value == null) continue;
                                     }
+                                } else if (format != null && valueClass.isInstance(value)) {    // Null safe because of getFormat(valueClass) contract.
+                                    value = format.format(value, buffer, dummyFP);
                                 }
                                 length = formatValue(value, table.append(separator), length);
                                 buffer.setLength(0);
-                                separator = ", ";
                                 if (length < 0) break;      // Value is too long, abandon remaining iterations.
+                                separator = ", ";
+                                length += 2;
                             }
                         }
                         break;

Modified: sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -70,8 +70,11 @@ final class LinkOperation extends Abstra
      *
      * @see FeatureOperations#link(Map, PropertyType)
      */
-    LinkOperation(final Map<String,?> identification, final PropertyType referent) {
+    LinkOperation(final Map<String,?> identification, PropertyType referent) {
         super(identification);
+        if (referent instanceof LinkOperation) {
+            referent = ((LinkOperation) referent).result;
+        }
         result = referent;
         referentName = referent.getName().toString();
     }

Modified: sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureFormatTest.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -70,12 +70,12 @@ public final strictfp class FeatureForma
                 "┌──────────────┬─────────────────────┬─────────────┬───────────────┬────────────────────────────┐\n" +
                 "│ Name         │ Type                │ Cardinality │ Default value │ Characteristics            │\n" +
                 "├──────────────┼─────────────────────┼─────────────┼───────────────┼────────────────────────────┤\n" +
-                "│ city         │ String              │ [1 … 1]     │ Utopia        │                            │\n" +
-                "│ population   │ Integer             │ [1 … 1]     │               │                            │\n" +
-                "│ region       │ InternationalString │ [1 … 1]     │               │                            │\n" +
-                "│ isGlobal     │ Boolean             │ [1 … 1]     │               │                            │\n" +
-                "│ universities │ String              │ [0 … ∞]     │               │                            │\n" +
-                "│ temperature  │ Float               │ [1 … 1]     │               │ accuracy = 0.1, units = °C │\n" +
+                "│ city         │ String              │     [1 … 1] │ Utopia        │                            │\n" +
+                "│ population   │ Integer             │     [1 … 1] │               │                            │\n" +
+                "│ region       │ InternationalString │     [1 … 1] │               │                            │\n" +
+                "│ isGlobal     │ Boolean             │     [1 … 1] │               │                            │\n" +
+                "│ universities │ String              │     [0 … ∞] │               │                            │\n" +
+                "│ temperature  │ Float               │     [1 … 1] │               │ accuracy = 0.1, units = °C │\n" +
                 "└──────────────┴─────────────────────┴─────────────┴───────────────┴────────────────────────────┘\n", text);
     }
 
@@ -98,11 +98,11 @@ public final strictfp class FeatureForma
                 "┌────────────┬─────────┬─────────────┬─────────────────────┐\n" +
                 "│ Name       │ Type    │ Cardinality │ Default value       │\n" +
                 "├────────────┼─────────┼─────────────┼─────────────────────┤\n" +
-                "│ city       │ String  │ [1 … 1]     │ Utopia              │\n" +
-                "│ population │ Integer │ [1 … 1]     │                     │\n" +
-                "│ someId     │ String  │ [1 … 1]     │ = city              │\n" +
-                "│ anotherId  │ String  │ [1 … 1]     │ = <city:population> │\n" +
-                "│ new city   │ String  │ [1 … 1]     │ = create(founder)   │\n" +
+                "│ city       │ String  │     [1 … 1] │ Utopia              │\n" +
+                "│ population │ Integer │     [1 … 1] │                     │\n" +
+                "│ someId     │ String  │     [1 … 1] │ = city              │\n" +
+                "│ anotherId  │ String  │     [1 … 1] │ = <city:population> │\n" +
+                "│ new city   │ String  │     [1 … 1] │ = create(founder)   │\n" +
                 "└────────────┴─────────┴─────────────┴─────────────────────┘\n", text);
     }
 
@@ -132,9 +132,9 @@ public final strictfp class FeatureForma
                 "┌────────────┬─────────┬─────────────┬───────────────┬─────────────┐\n" +
                 "│ Name       │ Type    │ Cardinality │ Default value │ Remarks     │\n" +
                 "├────────────┼─────────┼─────────────┼───────────────┼─────────────┤\n" +
-                "│ city       │ String  │ [1 … 1]     │ Utopia        │             │\n" +
-                "│ population │ Integer │ [1 … 1]     │               │             │\n" +
-                "│ highway    │ String  │ [0 … 2]     │               │ Deprecated¹ │\n" +
+                "│ city       │ String  │     [1 … 1] │ Utopia        │             │\n" +
+                "│ population │ Integer │     [1 … 1] │               │             │\n" +
+                "│ highway    │ String  │     [0 … 2] │               │ Deprecated¹ │\n" +
                 "└────────────┴─────────┴─────────────┴───────────────┴─────────────┘\n" +
                 "¹ Replaced by pedestrian areas.\n", text);
     }
@@ -159,12 +159,12 @@ public final strictfp class FeatureForma
                 "┌──────────────┬─────────────────────┬─────────────┬──────────────┬─────────────────┐\n" +
                 "│ Name         │ Type                │ Cardinality │ Value        │ Characteristics │\n" +
                 "├──────────────┼─────────────────────┼─────────────┼──────────────┼─────────────────┤\n" +
-                "│ city         │ String              │ [1 … 1]     │ Tokyo        │                 │\n" +
-                "│ population   │ Integer             │ [1 … 1]     │ 13,185,502   │                 │\n" +
-                "│ region       │ InternationalString │ [1 … 1]     │              │                 │\n" +
-                "│ isGlobal     │ Boolean             │ [1 … 1]     │              │                 │\n" +
-                "│ universities │ String              │ [0 … ∞]     │ Waseda, Keio │                 │\n" +
-                "│ temperature  │ Float               │ [1 … 1]     │              │ accuracy, units │\n" +
+                "│ city         │ String              │ 1 ∈ [1 … 1] │ Tokyo        │                 │\n" +
+                "│ population   │ Integer             │ 1 ∈ [1 … 1] │ 13,185,502   │                 │\n" +
+                "│ region       │ InternationalString │ 0 ∉ [1 … 1] │              │                 │\n" +
+                "│ isGlobal     │ Boolean             │ 0 ∉ [1 … 1] │              │                 │\n" +
+                "│ universities │ String              │ 2 ∈ [0 … ∞] │ Waseda, Keio │                 │\n" +
+                "│ temperature  │ Float               │ 0 ∉ [1 … 1] │              │ accuracy, units │\n" +
                 "└──────────────┴─────────────────────┴─────────────┴──────────────┴─────────────────┘\n", text);
     }
 
@@ -192,9 +192,9 @@ public final strictfp class FeatureForma
                 "┌────────────┬─────────┬─────────────┬───────────┐\n" +
                 "│ Name       │ Type    │ Cardinality │ Value     │\n" +
                 "├────────────┼─────────┼─────────────┼───────────┤\n" +
-                "│ city       │ String  │ [1 … 1]     │ Paderborn │\n" +
-                "│ population │ Integer │ [1 … 1]     │ 143,174   │\n" +
-                "│ twin town  │ City    │ [0 … 1]     │ Le Mans   │\n" +
+                "│ city       │ String  │ 1 ∈ [1 … 1] │ Paderborn │\n" +
+                "│ population │ Integer │ 1 ∈ [1 … 1] │ 143,174   │\n" +
+                "│ twin town  │ City    │ 1 ∈ [0 … 1] │ Le Mans   │\n" +
                 "└────────────┴─────────┴─────────────┴───────────┘\n", text);
     }
 }

Modified: sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -17,10 +17,14 @@
 package org.apache.sis.feature.builder;
 
 import java.util.Iterator;
+import java.util.Collections;
 import com.esri.core.geometry.Geometry;
 import com.esri.core.geometry.Point;
+import org.apache.sis.feature.AbstractOperation;
+import org.opengis.geometry.Envelope;
 import org.apache.sis.internal.feature.AttributeConvention;
 import org.apache.sis.feature.DefaultFeatureTypeTest;
+import org.apache.sis.feature.FeatureOperations;
 import org.apache.sis.referencing.crs.HardCodedCRS;
 import org.apache.sis.test.DependsOnMethod;
 import org.apache.sis.test.DependsOn;
@@ -33,7 +37,9 @@ import static org.junit.Assert.*;
 // Branch-dependent imports
 import org.opengis.feature.AttributeType;
 import org.opengis.feature.FeatureType;
+import org.opengis.feature.IdentifiedType;
 import org.opengis.feature.PropertyType;
+import org.opengis.feature.Operation;
 
 
 /**
@@ -288,4 +294,56 @@ public final strictfp class FeatureTypeB
         assertNotSame("Should return a new FeatureType since we changed an attribute.",
                       city, builder.build());
     }
+
+    /**
+     * Tests overriding the "sis:envelope" property. This may happen when the user wants to specify
+     * envelope himself instead than relying on the automatically computed value.
+     */
+    @Test
+    public void testEnvelopeOverride() {
+        FeatureTypeBuilder builder = new FeatureTypeBuilder().setName("CoverageRecord").setAbstract(true);
+        builder.addAttribute(Geometry.class).setName(AttributeConvention.GEOMETRY_PROPERTY).addRole(AttributeRole.DEFAULT_GEOMETRY);
+        final FeatureType parentType = builder.build();
+
+        builder = new FeatureTypeBuilder().setName("Record").setSuperTypes(parentType);
+        builder.addAttribute(Envelope.class).setName(AttributeConvention.ENVELOPE_PROPERTY);
+        final FeatureType childType = builder.build();
+
+        final Iterator<? extends PropertyType> it = childType.getProperties(true).iterator();
+        assertPropertyEquals("sis:envelope", Envelope.class, it.next());
+        assertPropertyEquals("sis:geometry", Geometry.class, it.next());
+        assertFalse(it.hasNext());
+    }
+
+    /**
+     * Tests overriding an attribute by an operation.
+     * This is the converse of {@link #testEnvelopeOverride()}.
+     */
+    @Test
+    public void testOverrideByOperation() {
+        FeatureTypeBuilder builder = new FeatureTypeBuilder().setName("Parent").setAbstract(true);
+        final AttributeType<Integer> pa = builder.addAttribute(Integer.class).setName("A").build();
+        builder.addAttribute(Integer.class).setName("B");
+        final FeatureType parentType = builder.build();
+
+        builder = new FeatureTypeBuilder().setName("Child").setSuperTypes(parentType);
+        builder.addProperty(FeatureOperations.link(Collections.singletonMap(AbstractOperation.NAME_KEY, "B"), pa));
+        final FeatureType childType = builder.build();
+
+        final Iterator<? extends PropertyType> it = childType.getProperties(true).iterator();
+        assertPropertyEquals("A", Integer.class, it.next());
+        assertPropertyEquals("B", Integer.class, it.next());
+        assertFalse(it.hasNext());
+    }
+
+    /**
+     * Verifies that the given property is an attribute with the given name and value class.
+     */
+    private static void assertPropertyEquals(final String name, final Class<?> valueClass, IdentifiedType property) {
+        assertEquals("name", name, property.getName().toString());
+        if (property instanceof Operation) {
+            property = ((Operation) property).getResult();
+        }
+        assertEquals("valueClass", valueClass, ((AttributeType<?>) property).getValueClass());
+    }
 }

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Dependencies.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Dependencies.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Dependencies.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Dependencies.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -29,7 +29,10 @@ import java.lang.annotation.RetentionPol
  * be declared, but the dependency graph shall not contain cycle.
  *
  * <div class="note"><b>Example:</b>
- *
+ * {@code ResponsibleParty.individualName} is now deprecated and replaced by the first {@code Individual.name} value
+ * found in {@code Responsibility.party} list. Consequently, the {@code DefaultResponsibleParty.getIndividualName()}
+ * method is annotated with {@code @Dependencies("getParties")} where {@code getParties()} is a method inherited from
+ * the parent class.
  * </div>
  *
  * @author  Martin Desruisseaux (Geomatys)

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultApplicationSchemaInformation.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -26,6 +26,14 @@ import org.opengis.metadata.citation.Onl
 
 /**
  * Information about the application schema used to build the dataset.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_ApplicationSchemaInformation}
+ * {@code   ├─name……………………………………………………………} Name of the application schema used.
+ * {@code   │   ├─title………………………………………………} Name by which the cited resource is known.
+ * {@code   │   └─date…………………………………………………} Reference date for the cited resource.
+ * {@code   ├─schemaLanguage…………………………………} Identification of the schema language used.
+ * {@code   └─constraintLanguage………………………} Formal language used in Application Schema.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -39,6 +39,23 @@ import static org.apache.sis.internal.me
 /**
  * New metadata element, not found in ISO 19115, which is required to describe geographic data.
  * Metadata elements are contained in a {@linkplain DefaultMetadataExtensionInformation metadata extension information}.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_ExtendedElementInformation}
+ * {@code   ├─name………………………………………………………} Name of the extended metadata element.
+ * {@code   ├─definition………………………………………} Definition of the extended element.
+ * {@code   ├─obligation………………………………………} Obligation of the extended element.
+ * {@code   ├─condition…………………………………………} Condition under which the extended element is mandatory.
+ * {@code   ├─dataType……………………………………………} Code which identifies the kind of value provided in the extended element.
+ * {@code   ├─maximumOccurrence……………………} Maximum occurrence of the extended element.
+ * {@code   ├─domainValue……………………………………} Valid values that can be assigned to the extended element.
+ * {@code   ├─parentEntity…………………………………} Name of the metadata entity(s) under which this extended metadata element may appear.
+ * {@code   ├─rule………………………………………………………} Specifies how the extended element relates to other existing elements and entities.
+ * {@code   └─source…………………………………………………} Name of the person or organisation creating the extended element.
+ * {@code       ├─party…………………………………………} Information about the parties.
+ * {@code       │   └─name…………………………………} Name of the party.
+ * {@code       └─role……………………………………………} Function performed by the responsible party.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultFeatureTypeList.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -24,6 +24,11 @@ import org.opengis.metadata.FeatureTypeL
 
 /**
  * List of names of feature types with the same spatial representation (same as spatial attributes).
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_FeatureTypeList}
+ * {@code   ├─spatialObject………………} Instance of a type defined in the spatial schema.
+ * {@code   └─spatialSchemaName……} Name of the spatial schema used.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultIdentifier.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -28,6 +28,11 @@ import org.apache.sis.internal.util.Cita
 
 /**
  * Value uniquely identifying an object within a namespace.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Identifier}
+ * {@code   └─code……………} Alphanumeric value identifying an instance in the namespace.</div>
+ *
  * One or more {@code Identifier} instances can be associated to some metadata objects like
  * {@linkplain org.apache.sis.metadata.iso.acquisition.DefaultOperation operation},
  * {@linkplain org.apache.sis.metadata.iso.acquisition.DefaultPlatform platform},

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -73,6 +73,33 @@ import org.apache.sis.xml.Namespaces;
 
 /**
  * Root entity which defines metadata about a resource or resources.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_Metadata}
+ * {@code   ├─language…………………………………………………} Language used for documenting metadata.
+ * {@code   ├─characterSet………………………………………} Full name of the character coding standard used for the metadata set.
+ * {@code   ├─contact……………………………………………………} Parties responsible for the metadata information.
+ * {@code   │   ├─party………………………………………………} Information about the parties.
+ * {@code   │   │   └─name………………………………………} Name of the party.
+ * {@code   │   └─role…………………………………………………} Function performed by the responsible party.
+ * {@code   ├─identificationInfo………………………} Basic information about the resource(s) to which the metadata applies.
+ * {@code   │   ├─citation………………………………………} Citation data for the resource(s).
+ * {@code   │   │   ├─title……………………………………} Name by which the cited resource is known.
+ * {@code   │   │   └─date………………………………………} Reference date for the cited resource.
+ * {@code   │   ├─abstract………………………………………} Brief narrative summary of the content of the resource(s).
+ * {@code   │   ├─extent……………………………………………} Bounding polygon, vertical, and temporal extent of the dataset.
+ * {@code   │   │   ├─description……………………} The spatial and temporal extent for the referring object.
+ * {@code   │   │   ├─geographicElement……} Geographic component of the extent of the referring object.
+ * {@code   │   │   ├─temporalElement…………} Temporal component of the extent of the referring object.
+ * {@code   │   │   └─verticalElement…………} Vertical component of the extent of the referring object.
+ * {@code   │   └─topicCategory…………………………} Main theme(s) of the dataset.
+ * {@code   ├─dateInfo…………………………………………………} Date(s) associated with the metadata.
+ * {@code   ├─metadataScope……………………………………} The scope or type of resource for which metadata is provided.
+ * {@code   │   └─resourceScope…………………………} Resource scope
+ * {@code   └─parentMetadata…………………………………} Identification of the parent metadata record.
+ * {@code       ├─title………………………………………………} Name by which the cited resource is known.
+ * {@code       └─date…………………………………………………} Reference date for the cited resource.</div>
  *
  * <div class="section">Localization</div>
  * When this object is marshalled as an ISO 19139 compliant XML document, the value

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadataScope.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -27,6 +27,10 @@ import org.apache.sis.util.iso.Types;
 
 /**
  * Information about the scope of the resource.
+ * The following property is mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_MetadataScope}
+ * {@code   └─resourceScope……} Resource scope</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultPortrayalCatalogueReference.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -26,6 +26,12 @@ import org.opengis.metadata.PortrayalCat
 
 /**
  * Information identifying the portrayal catalogue used.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MD_PortrayalCatalogueReference}
+ * {@code   └─portrayalCatalogueCitation……} Bibliographic reference to the portrayal catalogue cited.
+ * {@code       ├─title…………………………………………………} Name by which the cited resource is known.
+ * {@code       └─date……………………………………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEnvironmentalRecord.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -29,6 +29,13 @@ import static org.apache.sis.internal.me
 
 /**
  * Information about the environmental conditions during the acquisition.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_EnvironmentalRecord}
+ * {@code   ├─averageAirTemperature……………} Average air temperature along the flight pass during the photo flight.
+ * {@code   ├─maxRelativeHumidity…………………} Maximum relative humidity along the flight pass during the photo flight.
+ * {@code   ├─maxAltitude………………………………………} Maximum altitude during the photo flight.
+ * {@code   └─meteorologicalConditions……} Meteorological conditions in the photo flight area, in particular clouds, snow and wind.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultEvent.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -38,6 +38,15 @@ import static org.apache.sis.internal.me
 
 /**
  * Identification of a significant collection point within an operation.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Event}
+ * {@code   ├─identifier……} Event name or number.
+ * {@code   │   └─code…………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─trigger……………} Initiator of the event.
+ * {@code   ├─context……………} Meaning of the event.
+ * {@code   ├─sequence…………} Relative time ordering of the event.
+ * {@code   └─time……………………} Time the event occurred.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultInstrument.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -31,6 +31,12 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Designations for the measuring instruments.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Instrument}
+ * {@code   ├─identifier……} Unique identification of the instrument.
+ * {@code   │   └─code…………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   └─type……………………} Name of the type of instrument.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultObjective.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -35,6 +35,18 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Describes the characteristics, spatial and temporal extent of the intended object to be observed.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Objective}
+ * {@code   ├─identifier…………………………} Code used to identify the objective.
+ * {@code   │   └─code………………………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   └─objectiveOccurence……} Event or events associated with objective completion.
+ * {@code       ├─identifier………………} Event name or number.
+ * {@code       │   └─code……………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code       ├─trigger………………………} Initiator of the event.
+ * {@code       ├─context………………………} Meaning of the event.
+ * {@code       ├─sequence……………………} Relative time ordering of the event.
+ * {@code       └─time………………………………} Time the event occurred.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultOperation.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -36,6 +36,13 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Designations for the operation used to acquire the dataset.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Operation}
+ * {@code   ├─identifier…………………} Unique identification of the operation.
+ * {@code   │   └─code………………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─status……………………………} Status of the data acquisition.
+ * {@code   └─parentOperation……} Heritage of the operation.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlan.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -31,6 +31,13 @@ import org.apache.sis.metadata.iso.ISOMe
 
 /**
  * Designations for the planning information related to meeting the data acquisition requirements.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Plan}
+ * {@code   ├─status………………………………} Current status of the plan (pending, completed, etc.)
+ * {@code   └─citation…………………………} Identification of authority requesting target collection.
+ * {@code       ├─title………………………} Name by which the cited resource is known.
+ * {@code       └─date…………………………} Reference date for the cited resource.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatform.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -32,6 +32,15 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Designation of the platform used to acquire the dataset.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Platform}
+ * {@code   ├─identifier………………} Unique identification of the platform.
+ * {@code   │   └─code……………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─description……………} Narrative description of the platform supporting the instrument.
+ * {@code   └─instrument………………} Instrument(s) mounted on a platform.
+ * {@code       ├─identifier……} Unique identification of the instrument.
+ * {@code       └─type……………………} Name of the type of instrument.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultPlatformPass.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -30,6 +30,11 @@ import org.apache.sis.internal.jaxb.NonM
 
 /**
  * Identification of collection coverage.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_PlatformPass}
+ * {@code   └─identifier……} Unique name of the pass.
+ * {@code       └─code…………} Alphanumeric value identifying an instance in the namespace.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequestedDate.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -29,6 +29,11 @@ import static org.apache.sis.internal.me
 
 /**
  * Range of date validity.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_RequestedDate}
+ * {@code   ├─requestedDateOfCollection……} Preferred date and time of collection.
+ * {@code   └─latestAcceptableDate…………………} Latest date and time collection must be completed.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -37,6 +37,22 @@ import static org.apache.sis.internal.me
 
 /**
  * Requirement to be satisfied by the planned data acquisition.
+ * The following properties are mandatory or conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code MI_Requirement}
+ * {@code   ├─identifier………………………………………………………} Unique name, or code, for the requirement.
+ * {@code   │   └─code……………………………………………………………} Alphanumeric value identifying an instance in the namespace.
+ * {@code   ├─requestor…………………………………………………………} Origin of requirement.
+ * {@code   │   ├─party…………………………………………………………} Information about the parties.
+ * {@code   │   │   └─name…………………………………………………} Name of the party.
+ * {@code   │   └─role……………………………………………………………} Function performed by the responsible party.
+ * {@code   ├─recipient…………………………………………………………} Person(s), or body(ies), to receive results of requirement.
+ * {@code   ├─priority……………………………………………………………} Relative ordered importance, or urgency, of the requirement.
+ * {@code   ├─requestedDate………………………………………………} Required or preferred acquisition date and time.
+ * {@code   │   ├─requestedDateOfCollection……} Preferred date and time of collection.
+ * {@code   │   └─latestAcceptableDate…………………} Latest date and time collection must be completed.
+ * {@code   └─expiryDate………………………………………………………} Date and time after which collection is no longer valid.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/AbstractParty.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -33,6 +33,11 @@ import org.apache.sis.util.iso.Types;
 
 /**
  * Information about the individual and / or organization of the party.
+ * The following property is conditional (i.e. mandatory under some circumstances)
+ * in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_Party}
+ * {@code   └─name……} Name of the party.</div>
  *
  * <p><b>Limitations:</b></p>
  * <ul>

Modified: sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java?rev=1799452&r1=1799451&r2=1799452&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] (original)
+++ sis/branches/JDK7/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultCitation.java [UTF-8] Wed Jun 21 14:11:39 2017
@@ -44,6 +44,11 @@ import static org.apache.sis.internal.me
 
 /**
  * Standardized resource reference.
+ * The following properties are mandatory in a well-formed metadata according ISO 19115:
+ *
+ * <div class="preformat">{@code CI_Citation}
+ * {@code   ├─title………………………} Name by which the cited resource is known.
+ * {@code   └─date…………………………} Reference date for the cited resource.</div>
  *
  * <div class="section">Unified identifiers view</div>
  * The ISO 19115 model provides specific attributes for the {@linkplain #getISBN() ISBN} and



Mime
View raw message