/** * Returns a SIS metadata implementation with the values of the given arbitrary implementation. * This method performs the first applicable action in the following choices: * * <ul> * <li>If the given object is {@code null}, then this method returns {@code null}.</li> * <li>Otherwise if the given object is already an instance of * {@code DefaultImageDescription}, then it is returned unchanged.</li> * <li>Otherwise a new {@code DefaultImageDescription} instance is created using the * {@linkplain #DefaultImageDescription(ImageDescription) copy constructor} * and returned. Note that this is a <cite>shallow</cite> copy operation, since the other * metadata contained in the given object are not recursively copied.</li> * </ul> * * @param object the object to get as a SIS implementation, or {@code null} if none. * @return a SIS implementation containing the values of the given object (may be the * given object itself), or {@code null} if the argument was null. */ public static DefaultImageDescription castOrCopy(final ImageDescription object) { if (object == null || object instanceof DefaultImageDescription) { return (DefaultImageDescription) object; } return new DefaultImageDescription(object); }
/** * Returns a SIS metadata implementation with the values of the given arbitrary implementation. * This method performs the first applicable action in the following choices: * * <ul> * <li>If the given object is {@code null}, then this method returns {@code null}.</li> * <li>Otherwise if the given object is already an instance of * {@code DefaultImageDescription}, then it is returned unchanged.</li> * <li>Otherwise a new {@code DefaultImageDescription} instance is created using the * {@linkplain #DefaultImageDescription(ImageDescription) copy constructor} * and returned. Note that this is a <cite>shallow</cite> copy operation, since the other * metadata contained in the given object are not recursively copied.</li> * </ul> * * @param object the object to get as a SIS implementation, or {@code null} if none. * @return a SIS implementation containing the values of the given object (may be the * given object itself), or {@code null} if the argument was null. */ public static DefaultImageDescription castOrCopy(final ImageDescription object) { if (object == null || object instanceof DefaultImageDescription) { return (DefaultImageDescription) object; } return new DefaultImageDescription(object); }
/** * Creates the coverage description object if it does not already exists, then returns it. * * @return the coverage description (never {@code null}). * @see #newCoverage(boolean) */ private DefaultCoverageDescription coverageDescription() { if (coverageDescription == null) { coverageDescription = electromagnetic ? new DefaultImageDescription() : new DefaultCoverageDescription(); } return coverageDescription; }
/** * Creates the coverage description object if it does not already exists, then returns it. * * @return the coverage description (never {@code null}). * @see #newCoverage(boolean) */ private DefaultCoverageDescription coverageDescription() { if (coverageDescription == null) { coverageDescription = electromagnetic ? new DefaultImageDescription() : new DefaultCoverageDescription(); } return coverageDescription; }
/** * Creates a metadata sample with content information of different kind in a different order * than the one created by {@link #createSample1()}. */ private static DefaultMetadata createSample2() { final DefaultFeatureCatalogueDescription features = new DefaultFeatureCatalogueDescription(); final DefaultImageDescription image = new DefaultImageDescription(); final DefaultMetadata metadata = new DefaultMetadata(); image.setProcessingLevelCode(new DefaultIdentifier("Level 2")); metadata.getContentInfo().add(image); features.setFeatureCatalogueCitations(Collections.singleton(new DefaultCitation("GPX file"))); features.setIncludedWithDataset(Boolean.TRUE); metadata.getContentInfo().add(features); metadata.getLanguages().add(Locale.FRENCH); return metadata; }
/** * Creates a metadata sample with 3 content information of different kind. */ private static DefaultMetadata createSample1() { final DefaultFeatureCatalogueDescription features = new DefaultFeatureCatalogueDescription(); final DefaultCoverageDescription coverage = new DefaultCoverageDescription(); final DefaultImageDescription image = new DefaultImageDescription(); final DefaultMetadata metadata = new DefaultMetadata(); features.setFeatureCatalogueCitations(Collections.singleton(new DefaultCitation("Shapefile"))); features.setIncludedWithDataset(Boolean.TRUE); metadata.getContentInfo().add(features); coverage.setProcessingLevelCode(new DefaultIdentifier("Level 1")); metadata.getContentInfo().add(coverage); image.setImagingCondition(ImagingCondition.CLOUD); image.setCloudCoverPercentage(0.8); metadata.getContentInfo().add(image); metadata.getLanguages().add(Locale.JAPANESE); metadata.getCharacterSets().add(StandardCharsets.UTF_16); return metadata; }
/** * Tests the formatting of a {@link DefaultImageDescription} object. */ @Test public void testImageDescription() { final DefaultImageDescription image = new DefaultImageDescription(); image.setAttributeGroups(Arrays.asList( new DefaultAttributeGroup(null, createBand(0.25, 0.26)), new DefaultAttributeGroup(null, createBand(0.28, 0.29)) )); final String text = format.format(image.asTreeTable()); assertMultilinesEquals( "Image description\n" + " ├─Attribute group (1 of 2)\n" + " │ └─Attribute\n" + " │ ├─Max value………………… 0.26\n" + " │ ├─Min value………………… 0.25\n" + " │ └─Units…………………………… centimetre\n" + " └─Attribute group (2 of 2)\n" + " └─Attribute\n" + " ├─Max value………………… 0.29\n" + " ├─Min value………………… 0.28\n" + " └─Units…………………………… centimetre\n", text); }
final DefaultImageDescription contentInfo = new DefaultImageDescription(); contentInfo.setCloudCoverPercentage(50.0); metadata.setContentInfo(singleton(contentInfo));