This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch geoapi-4.0 in repository https://gitbox.apache.org/repos/asf/sis.git
The following commit(s) were added to refs/heads/geoapi-4.0 by this push: new 4e00076bb8 Copy the title of the first component in the main metadata. 4e00076bb8 is described below commit 4e00076bb871e44147693efe8e0ee55fd172053e Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Mon Dec 11 19:25:47 2023 +0100 Copy the title of the first component in the main metadata. --- .../apache/sis/storage/base/MetadataBuilder.java | 57 +++++++++++++++------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java index e0799a4824..2ffaaa2e51 100644 --- a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java +++ b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java @@ -242,6 +242,7 @@ public class MetadataBuilder { * Returns the information about the series, or aggregate dataset, of which the dataset is a part. */ private DefaultSeries series() { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultCitation citation = citation(); DefaultSeries series = DefaultSeries.castOrCopy(citation.getSeries()); if (series == null) { @@ -1193,6 +1194,7 @@ public class MetadataBuilder { public final void addTitle(final CharSequence title) { final InternationalString i18n = trim(title); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultCitation citation = citation(); final InternationalString current = citation.getTitle(); if (current == null) { @@ -1247,6 +1249,7 @@ public class MetadataBuilder { public final void addEdition(final CharSequence version) { final InternationalString i18n = trim(version); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultCitation citation = citation(); citation.setEdition(append(citation.getEdition(), i18n)); } @@ -1323,6 +1326,7 @@ public class MetadataBuilder { public final void addAbstract(final CharSequence description) { final InternationalString i18n = trim(description); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultDataIdentification identification = identification(); identification.setAbstract(append(identification.getAbstract(), i18n)); } @@ -1344,6 +1348,7 @@ public class MetadataBuilder { public final void addPurpose(final CharSequence intention) { final InternationalString i18n = trim(intention); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultDataIdentification identification = identification(); identification.setPurpose(append(identification.getPurpose(), i18n)); } @@ -1380,6 +1385,7 @@ public class MetadataBuilder { public final void addSupplementalInformation(final CharSequence info) { final InternationalString i18n = trim(info); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultDataIdentification identification = identification(); identification.setSupplementalInformation(append(identification.getSupplementalInformation(), i18n)); } @@ -2081,14 +2087,14 @@ parse: for (int i = 0; i < length;) { addReferenceSystem(crs); } if (grid.isDefined(GridGeometry.EXTENT)) { - final GridExtent extent = grid.getExtent(); - final int dimension = extent.getDimension(); + final GridExtent gex = grid.getExtent(); + final int dimension = gex.getDimension(); for (int i=0; i<dimension; i++) { - final Optional<DimensionNameType> axisType = extent.getAxisType(i); + final Optional<DimensionNameType> axisType = gex.getAxisType(i); if (axisType.isPresent()) { setAxisName(i, axisType.get()); } - setAxisSize(i, extent.getSize(i)); + setAxisSize(i, gex.getSize(i)); } } if (addResolution && grid.isDefined(GridGeometry.RESOLUTION)) { @@ -2163,6 +2169,7 @@ parse: for (int i = 0; i < length;) { */ public final void setPointInPixel(final PixelOrientation value) { if (value != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultGridSpatialRepresentation gridRepresentation = gridRepresentation(); if (gridRepresentation instanceof DefaultGeorectified) { ((DefaultGeorectified) gridRepresentation).setPointInPixel(value); @@ -2194,6 +2201,7 @@ parse: for (int i = 0; i < length;) { final boolean controlPointAvailability, final boolean orientationParameterAvailability) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultGridSpatialRepresentation gridRepresentation = gridRepresentation(); gridRepresentation.setTransformationParameterAvailable(transformationParameterAvailability); if (gridRepresentation instanceof DefaultGeorectified) { @@ -2216,6 +2224,7 @@ parse: for (int i = 0; i < length;) { */ public final void addGeolocation(final GeolocationInformation info) { if (info != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultGridSpatialRepresentation gridRepresentation = gridRepresentation(); if (gridRepresentation instanceof DefaultGeoreferenceable) { addIfNotPresent(((DefaultGeoreferenceable) gridRepresentation).getGeolocationInformation(), info); @@ -2240,6 +2249,7 @@ parse: for (int i = 0; i < length;) { */ public final void addControlPoints(final DirectPosition geographicCoordinates, final Element accuracyReport) { if (geographicCoordinates != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultGridSpatialRepresentation gridRepresentation = gridRepresentation(); final Collection<GCP> points; if (gridRepresentation instanceof DefaultGeorectified) { @@ -2479,6 +2489,7 @@ parse: for (int i = 0; i < length;) { public final void addBandDescription(final CharSequence description) { final InternationalString i18n = trim(description); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultSampleDimension sampleDimension = sampleDimension(); sampleDimension.setDescription(append(sampleDimension.getDescription(), i18n)); } @@ -2525,6 +2536,7 @@ parse: for (int i = 0; i < length;) { */ public final void addMinimumSampleValue(final double value) { if (!Double.isNaN(value)) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultSampleDimension sampleDimension = sampleDimension(); final Double current = sampleDimension.getMinValue(); if (current == null || value < current) { @@ -2550,6 +2562,7 @@ parse: for (int i = 0; i < length;) { */ public final void addMaximumSampleValue(final double value) { if (!Double.isNaN(value)) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultSampleDimension sampleDimension = sampleDimension(); final Double current = sampleDimension.getMaxValue(); if (current == null || value > current) { @@ -2872,6 +2885,7 @@ parse: for (int i = 0; i < length;) { public final void addLineage(final CharSequence statement) { final InternationalString i18n = trim(statement); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultLineage lineage = lineage(); lineage.setStatement(append(lineage.getStatement(), i18n)); } @@ -3116,14 +3130,15 @@ parse: for (int i = 0; i < length;) { public final void addFormatName(final CharSequence value) { final InternationalString i18n = trim(value); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultFormat format = format(); - DefaultCitation citation = DefaultCitation.castOrCopy(format.getFormatSpecificationCitation()); - if (citation == null) { - citation = new DefaultCitation(i18n); + DefaultCitation c = DefaultCitation.castOrCopy(format.getFormatSpecificationCitation()); + if (c == null) { + c = new DefaultCitation(i18n); } else { - addIfNotPresent(citation.getAlternateTitles(), i18n); + addIfNotPresent(c.getAlternateTitles(), i18n); } - format.setFormatSpecificationCitation(citation); + format.setFormatSpecificationCitation(c); } } @@ -3145,13 +3160,14 @@ parse: for (int i = 0; i < length;) { public final void setFormatEdition(final CharSequence value) { final InternationalString i18n = trim(value); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultFormat format = format(); - DefaultCitation citation = DefaultCitation.castOrCopy(format.getFormatSpecificationCitation()); - if (citation == null) { - citation = new DefaultCitation(); - format.setFormatSpecificationCitation(citation); + DefaultCitation c = DefaultCitation.castOrCopy(format.getFormatSpecificationCitation()); + if (c == null) { + c = new DefaultCitation(); + format.setFormatSpecificationCitation(c); } - citation.setEdition(i18n); + c.setEdition(i18n); } } @@ -3174,6 +3190,7 @@ parse: for (int i = 0; i < length;) { public final void addCompression(final CharSequence value) { final InternationalString i18n = trim(value); if (i18n != null) { + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultFormat format = format(); format.setFileDecompressionTechnique(append(format.getFileDecompressionTechnique(), i18n)); } @@ -3220,7 +3237,7 @@ parse: for (int i = 0; i < length;) { * Aggregate metadata should be set before to invoke this method, in particular: * * <ul> - * <li>The aggregated resource {@linkplain #addTitle title}.</li> + * <li>The aggregated resource {@linkplain #addTitle(CharSequence) title}.</li> * <li>The {@linkplain #addFormatName format} (may not be the same than component format).</li> * </ul> * @@ -3234,7 +3251,7 @@ parse: for (int i = 0; i < length;) { * <li>All Coordinate Reference System information are added without duplicated values.</li> * <li>Some citation information are merged in a single citation. * The following information are ignored because considered too specific to the component:<ul> - * <li>titles</li> + * <li>titles (except if no title has been set, in which case the first title is used)</li> * <li>identifiers</li> * <li>series (includes page numbers).</li> * </ul></li> @@ -3261,8 +3278,12 @@ parse: for (int i = 0; i < length;) { for (final Identification info : component.getIdentificationInfo()) { final Citation c = info.getCitation(); if (c != null) { - // Title, identifiers and series are assumed to not apply (see Javadoc). + // Title (except first one), identifiers and series are assumed to not apply (see Javadoc). + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultCitation citation = citation(); + if (citation.getTitle() == null) { + citation.setTitle(c.getTitle()); + } for (Responsibility r : c.getCitedResponsibleParties()) { addIfNotPresent(citation.getCitedResponsibleParties(), r); } @@ -3271,6 +3292,7 @@ parse: for (int i = 0; i < length;) { } citation.getPresentationForms().addAll(c.getPresentationForms()); } + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultDataIdentification identification = identification(); for (Extent e : info.getExtents()) { addIfNotPresent(identification.getExtents(), e); @@ -3291,6 +3313,7 @@ parse: for (int i = 0; i < length;) { identification.getTopicCategories().addAll(info.getTopicCategories()); identification.getSpatialRepresentationTypes().addAll(info.getSpatialRepresentationTypes()); } + @SuppressWarnings("LocalVariableHidesMemberVariable") final DefaultMetadata metadata = metadata(); for (ContentInformation info : component.getContentInfo()) { addIfNotPresent(metadata.getContentInfo(), info);