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);
}