sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From desruisse...@apache.org
Subject svn commit: r1740152 [1/8] - in /sis/branches/JDK6: ./ core/sis-feature/ core/sis-feature/src/main/java/org/apache/sis/feature/ core/sis-feature/src/main/java/org/apache/sis/internal/ core/sis-feature/src/main/java/org/apache/sis/internal/feature/ core...
Date Wed, 20 Apr 2016 14:53:33 GMT
Author: desruisseaux
Date: Wed Apr 20 14:53:31 2016
New Revision: 1740152

URL: http://svn.apache.org/viewvc?rev=1740152&view=rev
Log:
Merge from the JDK7 branch. This merge excludes the sis-xmlstore module and filter package (delayed to after the SIS 0.7 release).

Added:
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/InvalidFeatureException.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/InvalidFeatureException.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/
      - copied from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/internal/
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/internal/
      - copied from r1740146, sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/internal/
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_ParametricDatum.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CD_ParametricDatum.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_ParametricCS.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CS_ParametricCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/CoordinateOperations.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/CoordinateOperations.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/SignReversalComment.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/SignReversalComment.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeodeticOperation.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeodeticOperation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic2Dto3D.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic2Dto3D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic3DtoVertical.txt
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic3DtoVertical.txt
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Interpolation1D.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Interpolation1D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Providers.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Providers.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultParametricCS.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultParametricCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultParametricDatum.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultParametricDatum.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationFinder.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationRegistry.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/SubOperationInfo.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/SubOperationInfo.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ProviderMock.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ProviderMock.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ProvidersTest.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ProvidersTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/CoordinateOperationFinderTest.java
      - copied, changed from r1740146, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/CoordinateOperationFinderTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/CoordinateOperationRegistryTest.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/CoordinateOperationRegistryTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactoryTest.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactoryTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1DTest.java
      - copied unchanged from r1740146, sis/branches/JDK7/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1DTest.java
Removed:
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/CoordinateOperations.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationInference.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/AllProvidersTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/MockProvider.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/CoordinateOperationInferenceTest.java
Modified:
    sis/branches/JDK6/   (props changed)
    sis/branches/JDK6/core/sis-feature/pom.xml
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Builder.java
    sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureTypeBuilder.java
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/FeaturesTest.java
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/LinkOperationTest.java
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/SingletonAttributeTest.java
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/internal/feature/AttributeConventionTest.java
    sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisDirections.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/WKTKeywords.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Initializer.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/AbstractParser.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/Formatter.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
    sis/branches/JDK6/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ImmutableIdentifier.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/geometry/ArrayEnvelope.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelope2D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelopes.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralDirectPosition.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralEnvelope.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/geometry/SubEnvelope.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/jaxb/referencing/CC_OperationMethod.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/GeodeticObjectBuilder.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/Legacy.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/PositionalAccuracyConstant.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ReferencingUtilities.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/ServicesForMetadata.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AbridgedMolodensky.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AbstractProvider.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Affine.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/CoordinateFrameRotation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/CoordinateFrameRotation2D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/CoordinateFrameRotation3D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricTranslation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricTranslation2D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricTranslation3D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic3Dto2D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicOffsets.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicOffsets2D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LongitudeRotation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MolodenskyInterpolation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PositionVector7Param.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PositionVector7Param2D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PositionVector7Param3D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/VerticalOffset.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/AuthorityFactories.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/CRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeocentricCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeodeticCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeographicCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultProjectedCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/package-info.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/CoordinateSystems.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/CommonAuthorityFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticAuthorityFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/GeodeticObjectFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/IdentifiedObjectFinder.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/MultiAuthoritiesFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/InstallationScriptProvider.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/TableInfo.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractCoordinateOperation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CRSPair.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationContext.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultCoordinateOperationFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/AffineTransforms2D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/Matrices.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/MatrixSIS.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/package-info.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractMathTransform1D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearTransform1D.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/MathTransforms.java
    sis/branches/JDK6/core/sis-referencing/src/main/java/org/apache/sis/referencing/package-info.java
    sis/branches/JDK6/core/sis-referencing/src/main/resources/META-INF/services/org.opengis.referencing.operation.OperationMethod
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/ReferencingUtilitiesTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/PoleRotationMock.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/SeismicBinGridMock.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/TopocentricConversionMock.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/GeodeticObjectParserTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/io/wkt/WKTParserTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/DefaultProjectedCRSTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/crs/HardCodedCRS.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedAxes.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/cs/HardCodedCS.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/factory/sql/EPSGDataFormatter.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperationTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultConversionTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/DefaultTransformationTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/matrix/MatricesTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/matrix/NonSquareMatrixTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/CoordinateSystemTransformTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactoryTest.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/ReferencingAssert.java
    sis/branches/JDK6/core/sis-referencing/src/test/java/org/apache/sis/test/suite/ReferencingTestSuite.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/converter/StringConverter.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/CollectionsExt.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/LazySet.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/LocalizedException.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/internal/util/LocalizedParseException.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/math/MathFunctions.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/Classes.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/collection/Containers.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/DefaultRecord.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/iso/Types.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Errors_fr.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/IndexedResourceBundle.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Messages_fr.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/util/resources/Vocabulary_fr.properties
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/xml/Pooled.java
    sis/branches/JDK6/core/sis-utility/src/main/java/org/apache/sis/xml/PooledTemplate.java
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/internal/util/LazySetTest.java
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/math/MathFunctionsTest.java
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestRunner.java
    sis/branches/JDK6/core/sis-utility/src/test/java/org/apache/sis/test/TestUtilities.java
    sis/branches/JDK6/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
    sis/branches/JDK6/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/csv/StoreTest.java

Propchange: sis/branches/JDK6/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Apr 20 14:53:31 2016
@@ -1,4 +1,4 @@
 /sis/branches/Android:1430670-1480699
-/sis/branches/JDK7:1394913-1737089
-/sis/branches/JDK8:1584960-1737071
+/sis/branches/JDK7:1394913-1740146
+/sis/branches/JDK8:1584960-1740143
 /sis/trunk:1394364-1508466,1519089-1519674

Modified: sis/branches/JDK6/core/sis-feature/pom.xml
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/pom.xml?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/pom.xml (original)
+++ sis/branches/JDK6/core/sis-feature/pom.xml Wed Apr 20 14:53:31 2016
@@ -132,6 +132,20 @@ Representations of geographic features.
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.sis.core</groupId>
+      <artifactId>sis-metadata</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sis.core</groupId>
+      <artifactId>sis-referencing</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
 </project>

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -104,7 +104,7 @@ public abstract class AbstractAttribute<
     /**
      * Creates a new attribute of the given type.
      *
-     * @param type Information about the attribute (base Java class, domain of values, <i>etc.</i>).
+     * @param type  information about the attribute (base Java class, domain of values, <i>etc.</i>).
      *
      * @see #create(AttributeType)
      */
@@ -116,9 +116,9 @@ public abstract class AbstractAttribute<
      * Creates a new attribute of the given type initialized to the
      * {@linkplain DefaultAttributeType#getDefaultValue() default value}.
      *
-     * @param  <V>  The type of attribute values.
-     * @param  type Information about the attribute (base Java class, domain of values, <i>etc.</i>).
-     * @return The new attribute.
+     * @param  <V>   the type of attribute values.
+     * @param  type  information about the attribute (base Java class, domain of values, <i>etc.</i>).
+     * @return the new attribute.
      *
      * @see DefaultAttributeType#newInstance()
      */
@@ -133,9 +133,9 @@ public abstract class AbstractAttribute<
      * Creates a new attribute of the given type initialized to the given value.
      * Note that a {@code null} value may not be the same as the default value.
      *
-     * @param  <V>   The type of attribute values.
-     * @param  type  Information about the attribute (base Java class, domain of values, <i>etc.</i>).
-     * @param  value The initial value (may be {@code null}).
+     * @param  <V>    the type of attribute values.
+     * @param  type   information about the attribute (base Java class, domain of values, <i>etc.</i>).
+     * @param  value  the initial value (may be {@code null}).
      * @return The new attribute.
      */
     static <V> AbstractAttribute<V> create(final AttributeType<V> type, final Object value) {
@@ -148,8 +148,8 @@ public abstract class AbstractAttribute<
     /**
      * Invoked on serialization for saving the {@link #characteristics} field.
      *
-     * @param  out The output stream where to serialize this attribute.
-     * @throws IOException If an I/O error occurred while writing.
+     * @param  out  the output stream where to serialize this attribute.
+     * @throws IOException if an I/O error occurred while writing.
      */
     private void writeObject(final ObjectOutputStream out) throws IOException {
         out.defaultWriteObject();
@@ -165,9 +165,9 @@ public abstract class AbstractAttribute<
     /**
      * Invoked on deserialization for restoring the {@link #characteristics} field.
      *
-     * @param  in The input stream from which to deserialize an attribute.
-     * @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 an attribute.
+     * @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();
@@ -186,7 +186,7 @@ public abstract class AbstractAttribute<
      * Returns the name of this attribute as defined by its {@linkplain #getType() type}.
      * This convenience method delegates to {@link AttributeType#getName()}.
      *
-     * @return The attribute name specified by its type.
+     * @return the attribute name specified by its type.
      */
     @Override
     public GenericName getName() {
@@ -196,7 +196,7 @@ public abstract class AbstractAttribute<
     /**
      * Returns information about the attribute (base Java class, domain of values, <i>etc.</i>).
      *
-     * @return Information about the attribute.
+     * @return information about the attribute.
      */
     @Override
     public AttributeType<V> getType() {
@@ -208,7 +208,7 @@ public abstract class AbstractAttribute<
      * the common case where the {@linkplain DefaultAttributeType#getMaximumOccurs() maximum number}
      * of attribute values is restricted to 1 or 0.
      *
-     * @return The attribute value (may be {@code null}).
+     * @return the attribute value (may be {@code null}).
      * @throws MultiValuedPropertyException if this attribute contains more than one value.
      *
      * @see AbstractFeature#getPropertyValue(String)
@@ -224,7 +224,7 @@ public abstract class AbstractAttribute<
      * <p>The default implementation returns a collection which will delegate its work to
      * {@link #getValue()} and {@link #setValue(Object)}.</p>
      *
-     * @return The attribute values in a <cite>live</cite> collection.
+     * @return the attribute values in a <cite>live</cite> collection.
      */
     @Override
     public Collection<V> getValues() {
@@ -240,12 +240,14 @@ public abstract class AbstractAttribute<
      * and also because some rules may be temporarily broken while constructing a feature.
      * A more exhaustive verification can be performed by invoking the {@link #quality()} method.
      *
-     * @param value The new value, or {@code null} for removing all values from this attribute.
+     * @param  value  the new value, or {@code null} for removing all values from this attribute.
+     * @throws InvalidPropertyValueException if this method verifies argument validity and the given value
+     *         does not met the attribute constraints.
      *
      * @see AbstractFeature#setPropertyValue(String, Object)
      */
     @Override
-    public abstract void setValue(final V value);
+    public abstract void setValue(final V value) throws InvalidPropertyValueException;
 
     /**
      * Sets the attribute values. All previous values are replaced by the given collection.
@@ -253,7 +255,7 @@ public abstract class AbstractAttribute<
      * <p>The default implementation ensures that the given collection contains at most one element,
      * then delegates to {@link #setValue(Object)}.</p>
      *
-     * @param  values The new values.
+     * @param  values  the new values.
      * @throws InvalidPropertyValueException if the given collection contains too many elements.
      */
     @Override
@@ -332,7 +334,7 @@ public abstract class AbstractAttribute<
      *     }</li>
      * </ol>
      *
-     * @return Other attribute types that describes this attribute type, or an empty map if none.
+     * @return other attribute types that describes this attribute type, or an empty map if none.
      *
      * @see DefaultAttributeType#characteristics()
      */
@@ -342,7 +344,7 @@ public abstract class AbstractAttribute<
         if (characteristics == null) {
             characteristics = newCharacteristicsMap();
         }
-        return characteristics;     // Intentionally modifiable
+        return characteristics;                                 // Intentionally modifiable
     }
 
     /**
@@ -437,7 +439,7 @@ public abstract class AbstractAttribute<
      * }
      * </div>
      *
-     * @return Reports on all constraint violations found.
+     * @return reports on all constraint violations found.
      *
      * @see AbstractFeature#quality()
      */
@@ -457,7 +459,7 @@ public abstract class AbstractAttribute<
      *     └─ characteristics: units=°C, accuracy=0.1
      * }
      *
-     * @return A string representation of this attribute for debugging purpose.
+     * @return a string representation of this attribute for debugging purpose.
      */
     @Debug
     @Override
@@ -482,7 +484,7 @@ public abstract class AbstractAttribute<
      * are <strong>not</strong> cloned.
      * However subclasses may choose to do otherwise.
      *
-     * @return A clone of this attribute.
+     * @return a clone of this attribute.
      * @throws CloneNotSupportedException if this attribute, the {@linkplain #getValue() value}
      *         or one of its {@linkplain #characteristics() characteristics} can not be cloned.
      */

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -74,7 +74,7 @@ import org.opengis.feature.Operation;
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.6
+ * @version 0.7
  * @module
  *
  * @see DefaultFeatureType#newInstance()
@@ -229,7 +229,7 @@ public abstract class AbstractFeature im
     final Object getOperationValue(final String name) {
         final Operation operation = (Operation) type.getProperty(name);
         if (operation instanceof LinkOperation) {
-            return getPropertyValue(((LinkOperation) operation).propertyName);
+            return getPropertyValue(((LinkOperation) operation).referentName);
         }
         final Property result = operation.apply(this, null);
         if (result instanceof Attribute<?>) {
@@ -247,7 +247,7 @@ public abstract class AbstractFeature im
     final void setOperationValue(final String name, final Object value) {
         final Operation operation = (Operation) type.getProperty(name);
         if (operation instanceof LinkOperation) {
-            setPropertyValue(((LinkOperation) operation).propertyName, value);
+            setPropertyValue(((LinkOperation) operation).referentName, value);
         } else {
             final Property result = operation.apply(this, null);
             if (result != null) {
@@ -271,7 +271,8 @@ public abstract class AbstractFeature im
         if (pt instanceof AttributeType<?>) {
             return getDefaultValue((AttributeType<?>) pt);
         } else if (pt instanceof FeatureAssociationRole) {
-            return null; // No default value for associations.
+            final int maximumOccurs = ((FeatureAssociationRole) pt).getMaximumOccurs();
+            return maximumOccurs > 1 ? Collections.EMPTY_LIST : null;       // No default value for associations.
         } else {
             throw unsupportedPropertyType(pt.getName());
         }
@@ -586,14 +587,14 @@ public abstract class AbstractFeature im
      * @param value The value, which shall be non-null.
      */
     private static ClassCastException illegalValueClass(final GenericName name, final Object value) {
-        return new ClassCastException(Errors.format(Errors.Keys.IllegalPropertyClass_2, name, value.getClass()));
+        return new ClassCastException(Errors.format(Errors.Keys.IllegalPropertyValueClass_2, name, value.getClass()));
     }
 
     /**
      * Returns the exception for a property value (usually a feature) of wrong type.
      */
     private static InvalidPropertyValueException illegalPropertyType(final GenericName name, final Object value) {
-        return new InvalidPropertyValueException(Errors.format(Errors.Keys.IllegalPropertyClass_2, name, value));
+        return new InvalidPropertyValueException(Errors.format(Errors.Keys.IllegalPropertyValueClass_2, name, value));
     }
 
     /**
@@ -646,20 +647,7 @@ public abstract class AbstractFeature im
      */
     public DataQuality quality() {
         final Validator v = new Validator(ScopeCode.FEATURE);
-        for (final PropertyType pt : type.getProperties(true)) {
-            final Property property = getProperty(pt.getName().toString());
-            final DataQuality quality;
-            if (property instanceof AbstractAttribute<?>) {
-                quality = ((AbstractAttribute<?>) property).quality();
-            } else if (property instanceof AbstractAssociation) {
-                quality = ((AbstractAssociation) property).quality();
-            } else {
-                continue;
-            }
-            if (quality != null) { // Should not be null, but let be safe.
-                v.quality.getReports().addAll(quality.getReports());
-            }
-        }
+        v.validate(type, this);
         return v.quality;
     }
 

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -162,7 +162,7 @@ public class AbstractIdentifiedType impl
      * is used only on a <cite>best effort</cite> basis. The locale is discarded after successful construction
      * since localizations are applied by the {@link InternationalString#toString(Locale)} method.</p>
      *
-     * @param  identification The name and other information to be given to this identified type.
+     * @param  identification  the name and other information to be given to this identified type.
      * @throws IllegalArgumentException if a property has an invalid value.
      */
     @SuppressWarnings("OverridableMethodCallDuringObjectConstruction")
@@ -178,7 +178,7 @@ public class AbstractIdentifiedType impl
             name = (GenericName) value;
         } else {
             throw new IllegalArgumentException(Errors.getResources(identification).getString(
-                    Errors.Keys.IllegalPropertyClass_2, NAME_KEY, value.getClass()));
+                    Errors.Keys.IllegalPropertyValueClass_2, NAME_KEY, value.getClass()));
         }
         definition  = Types.toInternationalString(identification, DEFINITION_KEY );
         designation = Types.toInternationalString(identification, DESIGNATION_KEY);

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -19,6 +19,7 @@ package org.apache.sis.feature;
 import java.util.Map;
 import java.util.Set;
 import java.util.Collections;
+import java.util.HashMap;
 import org.opengis.util.GenericName;
 import org.opengis.parameter.GeneralParameterDescriptor;
 import org.opengis.parameter.ParameterDescriptorGroup;
@@ -66,6 +67,12 @@ public abstract class AbstractOperation
     private static final long serialVersionUID = -179930765502963170L;
 
     /**
+     * The prefix for result identification entries in the {@code identification} map.
+     * This prefix is documented in {@link FeatureOperations} javadoc.
+     */
+    static final String RESULT_PREFIX = "result.";
+
+    /**
      * Constructs an operation from the given properties. The identification map is given unchanged to
      * the {@linkplain AbstractIdentifiedType#AbstractIdentifiedType(Map) super-class constructor}.
      *
@@ -76,6 +83,27 @@ public abstract class AbstractOperation
     }
 
     /**
+     * Returns a map that can be used for creating the {@link #getResult()} type.
+     * This method can be invoked for subclass constructor.
+     */
+    final Map<String,Object> resultIdentification(final Map<String,?> identification) {
+        final Map<String,Object> properties = new HashMap<String,Object>(6);
+        for (final Map.Entry<String,?> entry : identification.entrySet()) {
+            final String key = entry.getKey();
+            if (key != null && key.startsWith(RESULT_PREFIX)) {
+                properties.put(key.substring(RESULT_PREFIX.length()), entry.getValue());
+            }
+        }
+        if (properties.isEmpty()) {
+            properties.put(NAME_KEY,        super.getName());           // Do not invoke user-overrideable method.
+            properties.put(DEFINITION_KEY,  super.getDefinition());
+            properties.put(DESIGNATION_KEY, super.getDesignation());
+            properties.put(DESCRIPTION_KEY, super.getDescription());
+        }
+        return properties;
+    }
+
+    /**
      * Returns a description of the input parameters.
      *
      * @return Description of the input parameters.
@@ -123,6 +151,9 @@ public abstract class AbstractOperation
 
     /**
      * Returns the names of feature properties that this operation needs for performing its task.
+     * This method does not resolve transitive dependencies, i.e. if a dependency is itself an operation having
+     * other dependencies, the returned set will contain the name of that operation but not the names of that
+     * operation dependencies (unless they are the same that the direct dependencies of {@code this}).
      *
      * <div class="note"><b>Rational:</b>
      * this information is needed for writing the {@code SELECT} SQL statement to send to a database server.
@@ -140,7 +171,7 @@ public abstract class AbstractOperation
 
     /**
      * Returns a hash code value for this operation.
-     * The default implementation computes a hash code from the {@linkplain #getParameters() parameters}
+     * The default implementation computes a hash code from the {@linkplain #getParameters() parameters descriptor}
      * and {@linkplain #getResult() result type}.
      *
      * @return {@inheritDoc}
@@ -152,7 +183,7 @@ public abstract class AbstractOperation
 
     /**
      * Compares this operation with the given object for equality.
-     * The default implementation compares the {@linkplain #getParameters() parameters}
+     * The default implementation compares the {@linkplain #getParameters() parameters descriptor}
      * and {@linkplain #getResult() result type}.
      *
      * @return {@inheritDoc}

Copied: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java (from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java?p2=sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java&p1=sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java&r1=1740146&r2=1740152&rev=1740152&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -37,7 +37,6 @@ import org.apache.sis.referencing.CRS;
 import org.apache.sis.util.resources.Errors;
 
 // Branch-dependent imports
-import java.util.Objects;
 import org.opengis.feature.Attribute;
 import org.opengis.feature.AttributeType;
 import org.opengis.feature.Feature;
@@ -46,6 +45,7 @@ import org.opengis.feature.Operation;
 import org.opengis.feature.Property;
 import org.opengis.feature.PropertyType;
 import org.apache.sis.internal.jdk8.JDK8;
+import org.apache.sis.internal.jdk7.Objects;
 
 
 /**
@@ -137,7 +137,7 @@ final class EnvelopeOperation extends Ab
          * The map values will be the default Coordinate Reference System, or null if none.
          */
         boolean characterizedByCRS = false;
-        final Map<String,CoordinateReferenceSystem> names = new LinkedHashMap<>(4);
+        final Map<String,CoordinateReferenceSystem> names = new LinkedHashMap<String,CoordinateReferenceSystem>(4);
         for (IdentifiedType property : geometryAttributes) {
             if (AttributeConvention.isGeometryAttribute(property)) {
                 final GenericName name = property.getName();
@@ -200,7 +200,7 @@ final class EnvelopeOperation extends Ab
                 }
             }
         }
-        resultType = FeatureOperations.POOL.unique(new DefaultAttributeType<>(
+        resultType = FeatureOperations.POOL.unique(new DefaultAttributeType<Envelope>(
                 resultIdentification(identification), Envelope.class, 1, 1, null));
         this.crs = crs;
     }

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -220,12 +220,12 @@ header: for (int i=0; ; i++) {
                     if (propertyType instanceof AttributeType &&
                             ((AttributeType) propertyType).getMinimumOccurs() == 0)
                     {
-                        continue;   // If no value, skip the full row.
+                        continue;                                       // If no value, skip the full row.
                     }
                     if (propertyType instanceof FeatureAssociationRole &&
                             ((FeatureAssociationRole) propertyType).getMinimumOccurs() == 0)
                     {
-                        continue;   // If no value, skip the full row.
+                        continue;                                       // If no value, skip the full row.
                     }
                 }
             } else if (propertyType instanceof AttributeType<?>) {
@@ -323,7 +323,7 @@ header: for (int i=0; ; i++) {
                         Object c = attribute.getDefaultValue();
                         if (feature != null) {
                             final Property p = feature.getProperty(propertyType.getName().toString());
-                            if (p instanceof Attribute<?>) {  // Should always be true, but we are paranoiac.
+                            if (p instanceof Attribute<?>) {            // Should always be true, but we are paranoiac.
                                 c = ((Attribute<?>) p).characteristics().get(attribute.getName().toString());
                             }
                         }
@@ -344,11 +344,11 @@ header: for (int i=0; ; i++) {
      * Returns the display name for the given {@code GenericName}.
      */
     private String toString(final GenericName name) {
-        if (name == null) { // Should not be null, but let be safe.
+        if (name == null) {                                             // Should not be null, but let be safe.
             return "";
         }
         final InternationalString i18n = name.toInternationalString();
-        if (i18n != null) { // Should not be null, but let be safe.
+        if (i18n != null) {                                             // Should not be null, but let be safe.
             final String s = i18n.toString(displayLocale);
             if (s != null) {
                 return s;

Copied: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java (from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java?p2=sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java&p1=sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java&r1=1740146&r2=1740152&rev=1740152&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -114,7 +114,7 @@ public final class FeatureOperations ext
     /**
      * The pool of operations or operation dependencies created so far, for sharing exiting instances.
      */
-    static final WeakHashSet<PropertyType> POOL = new WeakHashSet<>(PropertyType.class);
+    static final WeakHashSet<PropertyType> POOL = new WeakHashSet<PropertyType>(PropertyType.class);
 
     /**
      * Do not allow instantiation of this class.

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -16,20 +16,29 @@
  */
 package org.apache.sis.feature;
 
+import org.opengis.util.InternationalString;
+import org.opengis.metadata.maintenance.ScopeCode;
+import org.opengis.metadata.quality.ConformanceResult;
+import org.opengis.metadata.quality.DataQuality;
+import org.opengis.metadata.quality.Element;
+import org.opengis.metadata.quality.Result;
 import org.apache.sis.util.Static;
 import org.apache.sis.util.resources.Errors;
 
 // Branch-dependent imports
 import org.opengis.feature.Attribute;
 import org.opengis.feature.AttributeType;
+import org.opengis.feature.Feature;
+import org.opengis.feature.InvalidPropertyValueException;
 
 
 /**
  * Static methods working on features or attributes.
  *
  * @author  Martin Desruisseaux (Geomatys)
+ * @author  Johann Sorel (Geomatys)
  * @since   0.5
- * @version 0.5
+ * @version 0.7
  * @module
  */
 public final class Features extends Static {
@@ -96,4 +105,56 @@ public final class Features extends Stat
         }
         return (Attribute<V>) attribute;
     }
+
+    /**
+     * Ensures that all characteristics and property values in the given feature are valid.
+     * An attribute is valid if it contains a number of values between the
+     * {@linkplain DefaultAttributeType#getMinimumOccurs() minimum} and
+     * {@linkplain DefaultAttributeType#getMaximumOccurs() maximum number of occurrences} (inclusive),
+     * all values are instances of the expected {@linkplain DefaultAttributeType#getValueClass() value class},
+     * and the attribute is compliant with any other restriction that the implementation may add.
+     *
+     * <p>This method gets a quality report as documented in the {@link AbstractFeature#quality()} method
+     * and verifies that all {@linkplain org.apache.sis.metadata.iso.quality.DefaultConformanceResult#pass()
+     * conformance tests pass}. If at least one {@code ConformanceResult.pass} attribute is false, then an
+     * {@code InvalidPropertyValueException} is thrown. Otherwise this method returns doing nothing.
+     *
+     * @param  feature  the feature to validate, or {@code null}.
+     * @throws InvalidPropertyValueException if the given feature is non-null and does not pass validation.
+     *
+     * @since 0.7
+     */
+    public static void validate(final Feature feature) throws InvalidPropertyValueException {
+        if (feature != null) {
+            /*
+             * Delegate to AbstractFeature.quality() if possible because the user may have overridden the method.
+             * Otherwise fallback on the same code than AbstractFeature.quality() default implementation.
+             */
+            final DataQuality quality;
+            if (feature instanceof AbstractFeature) {
+                quality = ((AbstractFeature) feature).quality();
+            } else {
+                final Validator v = new Validator(ScopeCode.FEATURE);
+                v.validate(feature.getType(), feature);
+                quality = v.quality;
+            }
+            /*
+             * Loop on quality elements and check conformance results.
+             * NOTE: other types of result are ignored for now, since those other
+             * types may require threshold and other informations to be evaluated.
+             */
+            for (Element element : quality.getReports()) {
+                for (Result result : element.getResults()) {
+                    if (result instanceof ConformanceResult) {
+                        if (Boolean.FALSE.equals(((ConformanceResult) result).pass())) {
+                            final InternationalString message = ((ConformanceResult) result).getExplanation();
+                            if (message != null) {
+                                throw new InvalidFeatureException(message);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
 }

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -82,18 +82,20 @@ final class LinkOperation extends Abstra
     /**
      * The name of the referenced attribute or feature association.
      */
-    final String propertyName;
+    final String referentName;
 
     /**
      * Creates a new link to the given attribute or association.
      *
-     * @param identification The name of the link, together with optional information.
-     * @param propertyType   The referenced attribute or feature association.
+     * @param identification  the name of the link, together with optional information.
+     * @param referent        the referenced attribute or feature association.
+     *
+     * @see FeatureOperations#link(Map, PropertyType)
      */
-    LinkOperation(final Map<String, ?> identification, final PropertyType propertyType) {
+    LinkOperation(final Map<String,?> identification, final PropertyType referent) {
         super(identification);
-        result = propertyType;
-        propertyName = propertyType.getName().toString();
+        result = referent;
+        referentName = referent.getName().toString();
     }
 
     /**
@@ -117,19 +119,36 @@ final class LinkOperation extends Abstra
      */
     @Override
     public Set<String> getDependencies() {
-        return Collections.singleton(propertyName);
+        return Collections.singleton(referentName);
     }
 
     /**
      * Returns the property from the referenced attribute of feature association.
      *
-     * @param  feature    The feature from which to get the property.
-     * @param  parameters Ignored.
-     * @return The property from the given feature.
+     * @param  feature     the feature from which to get the property.
+     * @param  parameters  ignored (can be {@code null}).
+     * @return the linked property from the given feature.
      */
     @Override
     public Property apply(final Feature feature, final ParameterValueGroup parameters) {
         ArgumentChecks.ensureNonNull("feature", feature);
-        return feature.getProperty(propertyName);
+        return feature.getProperty(referentName);
+    }
+
+    /**
+     * Computes a hash-code value for this operation.
+     */
+    @Override
+    public int hashCode() {
+        return super.hashCode() + referentName.hashCode();
+    }
+
+    /**
+     * Compares this operation with the given object for equality.
+     */
+    @Override
+    public boolean equals(final Object obj) {
+        // 'this.result' is compared (indirectly) by the super class.
+        return super.equals(obj) && referentName.equals(((LinkOperation) obj).referentName);
     }
 }

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -18,6 +18,7 @@ package org.apache.sis.feature;
 
 import java.util.Collection;
 import org.apache.sis.internal.util.CheckedArrayList;
+import org.apache.sis.util.collection.CheckedContainer;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.resources.Errors;
 
@@ -91,7 +92,7 @@ final class MultiValuedAttribute<V> exte
         if (values == null) {
             this.values = new CheckedArrayList<V>(valueClass);
         } else {
-            final Class<?> actual = ((CheckedArrayList<?>) values).getElementType();
+            final Class<?> actual = ((CheckedContainer<?>) values).getElementType();
             if (actual == valueClass) {
                 this.values = (CheckedArrayList<V>) values;
             } else {

Copied: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java (from r1740146, sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java?p2=sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java&p1=sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java&r1=1740146&r2=1740152&rev=1740152&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -32,7 +32,7 @@ import org.apache.sis.util.CharSequences
 import org.apache.sis.util.Classes;
 
 // Branch-dependent imports
-import java.util.Objects;
+import org.apache.sis.internal.jdk7.Objects;
 import org.opengis.feature.AttributeType;
 import org.opengis.feature.Feature;
 import org.opengis.feature.IdentifiedType;
@@ -160,7 +160,7 @@ final class StringJoinOperation extends
             attributeNames[i] = name.toString();
             converters[i] = ObjectConverters.find(String.class, ((AttributeType<?>) attributeType).getValueClass());
         }
-        resultType = FeatureOperations.POOL.unique(new DefaultAttributeType<>(
+        resultType = FeatureOperations.POOL.unique(new DefaultAttributeType<String>(
                 resultIdentification(identification), String.class, 1, 1, null));
         this.delimiter = delimiter;
         this.prefix = (prefix == null) ? "" : prefix;

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -22,6 +22,7 @@ import org.opengis.util.GenericName;
 import org.opengis.util.InternationalString;
 import org.opengis.metadata.Identifier;
 import org.opengis.metadata.maintenance.ScopeCode;
+import org.opengis.metadata.quality.DataQuality;
 import org.opengis.metadata.quality.EvaluationMethodType;
 import org.apache.sis.metadata.iso.quality.AbstractElement;
 import org.apache.sis.metadata.iso.quality.DefaultDataQuality;
@@ -32,10 +33,13 @@ import org.apache.sis.referencing.NamedI
 import org.apache.sis.util.resources.Errors;
 
 // Branch-dependent imports
+import org.opengis.feature.Property;
 import org.opengis.feature.PropertyType;
+import org.opengis.feature.Attribute;
 import org.opengis.feature.AttributeType;
 import org.opengis.feature.Feature;
 import org.opengis.feature.FeatureType;
+import org.opengis.feature.FeatureAssociation;
 import org.opengis.feature.FeatureAssociationRole;
 
 
@@ -44,7 +48,7 @@ import org.opengis.feature.FeatureAssoci
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @since   0.5
- * @version 0.5
+ * @version 0.7
  * @module
  */
 final class Validator {
@@ -110,6 +114,35 @@ final class Validator {
     }
 
     /**
+     * Implementation of {@link AbstractFeature#quality()}, also shared by {@link Features} static method.
+     *
+     * @param type     the type of the {@code feature} argument, provided explicitely for protecting from user overriding.
+     * @param feature  the feature to validate.
+     */
+    void validate(final FeatureType type, final Feature feature) {
+        for (final PropertyType pt : type.getProperties(true)) {
+            final Property property = feature.getProperty(pt.getName().toString());
+            final DataQuality pq;
+            if (property instanceof AbstractAttribute<?>) {
+                pq = ((AbstractAttribute<?>) property).quality();
+            } else if (property instanceof AbstractAssociation) {
+                pq = ((AbstractAssociation) property).quality();
+            } else if (property instanceof Attribute<?>) {
+                validateAny(((Attribute<?>) property).getType(), ((Attribute<?>) property).getValues());
+                continue;
+            } else if (property instanceof FeatureAssociation) {
+                validateAny(((FeatureAssociation) property).getRole(), ((FeatureAssociation) property).getValues());
+                continue;
+            } else {
+                continue;
+            }
+            if (pq != null) {                                          // Should not be null, but let be safe.
+                quality.getReports().addAll(pq.getReports());
+            }
+        }
+    }
+
+    /**
      * Verifies if the given value is valid for the given attribute type.
      * This method delegates to one of the {@code validate(…)} methods depending of the value type.
      */
@@ -135,10 +168,13 @@ final class Validator {
              * method signature. However in practice the call to Attribute.setValue(…) is sometime done after type erasure,
              * so we are better to check.
              */
-            if (!type.getValueClass().isInstance(value)) {
+            final Class<?> valueClass = type.getValueClass();
+            if (!valueClass.isInstance(value)) {
                 report = addViolationReport(report, type, Errors.formatInternational(
-                        Errors.Keys.IllegalPropertyClass_2, type.getName(), value.getClass()));
-                break; // Report only the first violation for now.
+                        Errors.Keys.IllegalPropertyValueClass_3, type.getName(), valueClass, value.getClass()));
+
+                // Report only the first violation for now.
+                break;
             }
         }
         verifyCardinality(report, type, type.getMinimumOccurs(), type.getMaximumOccurs(), values.size());
@@ -151,10 +187,13 @@ final class Validator {
         AbstractElement report = null;
         for (final Object value : values) {
             final FeatureType type = ((Feature) value).getType();
-            if (!role.getValueType().isAssignableFrom(type)) {
+            final FeatureType valueType = role.getValueType();
+            if (!valueType.isAssignableFrom(type)) {
                 report = addViolationReport(report, role, Errors.formatInternational(
-                        Errors.Keys.IllegalPropertyClass_2, role.getName(), type.getName()));
-                break; // Report only the first violation for now.
+                        Errors.Keys.IllegalPropertyValueClass_3, role.getName(), valueType.getName(), type.getName()));
+
+                // Report only the first violation for now.
+                break;
             }
         }
         verifyCardinality(report, role, role.getMinimumOccurs(), role.getMaximumOccurs(), values.size());

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Builder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Builder.java?rev=1740152&r1=1740146&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Builder.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Builder.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -42,7 +42,7 @@ abstract class Builder<T extends Builder
      * The feature name, definition, designation and description.
      * The name is mandatory; all other information are optional.
      */
-    final Map<String,Object> identification = new HashMap<>(4);
+    final Map<String,Object> identification = new HashMap<String,Object>(4);
 
     /**
      * Creates a new builder instance.

Modified: sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureTypeBuilder.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureTypeBuilder.java?rev=1740152&r1=1740146&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureTypeBuilder.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureTypeBuilder.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -143,9 +143,9 @@ public class FeatureTypeBuilder extends
      */
     public FeatureTypeBuilder(final NameFactory factory) {
         nameFactory  = factory;
-        properties   = new ArrayList<>();
-        superTypes   = new ArrayList<>();
-        idAttributes = new ArrayList<>();
+        properties   = new ArrayList<Property<?>>();
+        superTypes   = new ArrayList<FeatureType>();
+        idAttributes = new ArrayList<Property<?>>();
         idDelimiter  = ":";
         defaultMinimumOccurs = 1;
         defaultMaximumOccurs = 1;
@@ -277,7 +277,7 @@ public class FeatureTypeBuilder extends
      */
     public <V> Property<V> addIdentifier(final Class<V> valueClass) {
         ensureAttributeType(valueClass);
-        final Property<V> property = new Property<>(valueClass);
+        final Property<V> property = new Property<V>(valueClass);
         idAttributes.add(property);
         properties.add(property);
         return property;
@@ -303,7 +303,7 @@ public class FeatureTypeBuilder extends
             throw new IllegalStateException(errors().getString(Errors.Keys.PropertyAlreadyExists_2,
                     getDisplayName(), AttributeConvention.DEFAULT_GEOMETRY_PROPERTY));
         }
-        final Property<V> property = new Property<>(valueClass);
+        final Property<V> property = new Property<V>(valueClass);
         defaultGeometry = property;
         properties.add(property);
         return property;
@@ -325,7 +325,7 @@ public class FeatureTypeBuilder extends
      */
     public <V> Property<V> addAttribute(final Class<V> valueClass) {
         ensureAttributeType(valueClass);
-        final Property<V> property = new Property<>(valueClass);
+        final Property<V> property = new Property<V>(valueClass);
         properties.add(property);
         return property;
     }
@@ -354,7 +354,7 @@ public class FeatureTypeBuilder extends
      */
     public Property<Feature> addAssociation(final FeatureType type) {
         ArgumentChecks.ensureNonNull("type", type);
-        final Property<Feature> property = new Property<>(Feature.class, FeatureType.class, type);
+        final Property<Feature> property = new Property<Feature>(Feature.class, FeatureType.class, type);
         properties.add(property);
         return property;
     }
@@ -369,7 +369,7 @@ public class FeatureTypeBuilder extends
      */
     public Property<Feature> addAssociation(final GenericName type) {
         ArgumentChecks.ensureNonNull("type", type);
-        final Property<Feature> property = new Property<>(Feature.class, GenericName.class, type);
+        final Property<Feature> property = new Property<Feature>(Feature.class, GenericName.class, type);
         properties.add(property);
         return property;
     }
@@ -430,7 +430,7 @@ public class FeatureTypeBuilder extends
             this.valueClass = valueClass;
             minimumOccurs   = defaultMinimumOccurs;
             maximumOccurs   = defaultMaximumOccurs;
-            characteristics = new ArrayList<>();
+            characteristics = new ArrayList<Characteristic<?>>();
         }
 
         /**
@@ -445,7 +445,7 @@ public class FeatureTypeBuilder extends
             this.valueClass = valueClass;
             minimumOccurs   = defaultMinimumOccurs;
             maximumOccurs   = defaultMaximumOccurs;
-            characteristics = Collections.<Characteristic<?>>singletonList(new Characteristic<>(typeClass).setDefaultValue(type));
+            characteristics = Collections.<Characteristic<?>>singletonList(new Characteristic<C>(typeClass).setDefaultValue(type));
         }
 
         /**
@@ -579,7 +579,7 @@ public class FeatureTypeBuilder extends
                 throw new UnsupportedOperationException(errors().getString(Errors.Keys.IllegalOperationForValueClass_1, valueClass));
             }
             ArgumentChecks.ensureNonNull("type", type);
-            final Characteristic<C> characteristic = new Characteristic<>(type);
+            final Characteristic<C> characteristic = new Characteristic<C>(type);
             characteristics.add(characteristic);
             return characteristic;
         }
@@ -601,7 +601,7 @@ public class FeatureTypeBuilder extends
                 for (int i=0; i<chrts.length; i++) {
                     chrts[i] = characteristics.get(i).build();
                 }
-                property = new DefaultAttributeType<>(identification, valueClass, minimumOccurs, maximumOccurs, defaultValue, chrts);
+                property = new DefaultAttributeType<V>(identification, valueClass, minimumOccurs, maximumOccurs, defaultValue, chrts);
             }
             return property;
         }
@@ -669,7 +669,7 @@ public class FeatureTypeBuilder extends
          * Creates a new characteristic from the current setting.
          */
         final AttributeType<V> build() {
-            return new DefaultAttributeType<>(identification, valueClass, 0, 1, defaultValue);
+            return new DefaultAttributeType<V>(identification, valueClass, 0, 1, defaultValue);
         }
     }
 

Copied: sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java (from r1740146, sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java?p2=sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java&p1=sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java&r1=1740146&r2=1740152&rev=1740152&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/EnvelopeOperationTest.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -67,17 +67,17 @@ public final strictfp class EnvelopeOper
      * @return the feature for a school.
      */
     private static DefaultFeatureType school(final int defaultGeometry) throws FactoryException {
-        final DefaultAttributeType<?> standardCRS = new DefaultAttributeType<>(
+        final DefaultAttributeType<?> standardCRS = new DefaultAttributeType<CoordinateReferenceSystem>(
                 name(AttributeConvention.CRS_CHARACTERISTIC), CoordinateReferenceSystem.class, 1, 1, HardCodedCRS.WGS84_φλ);
 
-        final DefaultAttributeType<?> normalizedCRS = new DefaultAttributeType<>(
+        final DefaultAttributeType<?> normalizedCRS = new DefaultAttributeType<CoordinateReferenceSystem>(
                 name(AttributeConvention.CRS_CHARACTERISTIC), CoordinateReferenceSystem.class, 1, 1, HardCodedCRS.WGS84);
 
         final PropertyType[] attributes = {
-            new DefaultAttributeType<>(name("name"),          String.class,  1, 1, null),
-            new DefaultAttributeType<>(name("classes"),       Polygon.class, 1, 1, null, standardCRS),
-            new DefaultAttributeType<>(name("climbing wall"), Point.class,   1, 1, null, standardCRS),
-            new DefaultAttributeType<>(name("gymnasium"),     Polygon.class, 1, 1, null, normalizedCRS),
+            new DefaultAttributeType<String> (name("name"),          String.class,  1, 1, null),
+            new DefaultAttributeType<Polygon>(name("classes"),       Polygon.class, 1, 1, null, standardCRS),
+            new DefaultAttributeType<Point>  (name("climbing wall"), Point.class,   1, 1, null, standardCRS),
+            new DefaultAttributeType<Polygon>(name("gymnasium"),     Polygon.class, 1, 1, null, normalizedCRS),
             null,
             null
         };

Modified: sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/FeaturesTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/FeaturesTest.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/FeaturesTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/FeaturesTest.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -22,13 +22,18 @@ import org.junit.Test;
 
 import static org.junit.Assert.*;
 
+// Branch-dependent imports
+import org.opengis.feature.Feature;
+import org.opengis.feature.InvalidPropertyValueException;
+
 
 /**
  * Tests {@link Features}.
  *
  * @author  Martin Desruisseaux (Geomatys)
+ * @author  Johann Sorel (Geomatys)
  * @since   0.5
- * @version 0.5
+ * @version 0.7
  * @module
  */
 @DependsOn(SingletonAttributeTest.class)
@@ -68,4 +73,26 @@ public final strictfp class FeaturesTest
             assertTrue(message, message.contains("CharSequence"));
         }
     }
+
+    /**
+     * Tests {@link Features#validate(Feature)}.
+     */
+    @Test
+    public void testValidate() {
+        final Feature feature = DefaultFeatureTypeTest.city().newInstance();
+
+        // Should not pass validation.
+        try {
+            Features.validate(feature);
+            fail("Feature is invalid because of missing property “population”. Validation should have raised an exception.");
+        } catch (InvalidPropertyValueException ex) {
+            String message = ex.getMessage();
+            assertTrue(message, message.contains("city") || message.contains("population"));
+        }
+
+        // Should pass validation.
+        feature.setPropertyValue("city", "Utopia");
+        feature.setPropertyValue("population", 10);
+        Features.validate(feature);
+    }
 }

Modified: sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/LinkOperationTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/LinkOperationTest.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/LinkOperationTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/LinkOperationTest.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -42,8 +42,8 @@ public final strictfp class LinkOperatio
      * The feature contains the following properties:
      *
      * <ul>
-     *   <li>{@code city}       as a  {@link String}  (mandatory)</li>
-     *   <li>{@code population} as an {@link Integer} (mandatory)</li>
+     *   <li>{@code city}       as a  {@link String}  (mandatory).</li>
+     *   <li>{@code population} as an {@link Integer} (mandatory).</li>
      *   <li>{@code name} as a link to the {@code city} attribute.</li>
      * </ul>
      *
@@ -63,14 +63,14 @@ public final strictfp class LinkOperatio
     private static void run(final AbstractFeature feature) {
         assertEquals("Get directly",     "Utopia", feature.getPropertyValue("city"));
         assertEquals("Get through link", "Utopia", feature.getPropertyValue("name"));
-        feature.setPropertyValue("name", "Atlantide");  // Set through link.
+        feature.setPropertyValue("name", "Atlantide");                                          // Set through link.
         assertEquals("Get directly",     "Atlantide", feature.getPropertyValue("city"));
         assertEquals("Get through link", "Atlantide", feature.getPropertyValue("name"));
         assertSame(feature.getProperty("name"), feature.getProperty("name"));
     }
 
     /**
-     * Tests a dense type with operations.
+     * Tests a dense feature type with operations.
      */
     @Test
     public void testDenseFeature() {

Modified: sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/SingletonAttributeTest.java
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/SingletonAttributeTest.java?rev=1740152&r1=1740151&r2=1740152&view=diff
==============================================================================
--- sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/SingletonAttributeTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/SingletonAttributeTest.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -105,7 +105,7 @@ public final strictfp class SingletonAtt
         ((AbstractAttribute) attribute).setValue(4.5f);
         quality = attribute.quality();
         assertEquals("scope.level", ScopeCode.ATTRIBUTE, quality.getScope().getLevel());
-        assertDomainConsistencyEquals("population", "Property “population” does not accept instances of ‘Float’.",
+        assertDomainConsistencyEquals("population", "Expected an instance of ‘Integer’ for the “population” property, but got an instance of ‘Float’.",
                 (DomainConsistency) getSingleton(quality.getReports()));
     }
 

Copied: sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java (from r1740146, sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java)
URL: http://svn.apache.org/viewvc/sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java?p2=sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java&p1=sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java&r1=1740146&r2=1740152&rev=1740152&view=diff
==============================================================================
--- sis/branches/JDK7/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java [UTF-8] (original)
+++ sis/branches/JDK6/core/sis-feature/src/test/java/org/apache/sis/feature/StringJoinOperationTest.java [UTF-8] Wed Apr 20 14:53:31 2016
@@ -58,8 +58,8 @@ public final strictfp class StringJoinOp
      * @return The feature for a person.
      */
     private static DefaultFeatureType person() {
-        final PropertyType nameType = new DefaultAttributeType<>(name("name"), String.class, 1, 1, null);
-        final PropertyType ageType  = new DefaultAttributeType<>(name("age"), Integer.class, 1, 1, null);
+        final PropertyType nameType = new DefaultAttributeType<String> (name("name"), String.class, 1, 1, null);
+        final PropertyType ageType  = new DefaultAttributeType<Integer>(name("age"), Integer.class, 1, 1, null);
         final PropertyType cmpType  = FeatureOperations.compound(name("concat"), "/", "<<:", ":>>", nameType, ageType);
         return new DefaultFeatureType(name("person"), false, null, nameType, ageType, cmpType);
     }



Mime
View raw message