Interface Emptiable

All Known Implementing Classes:
AbstractCompleteness, AbstractContentInformation, AbstractDataEvaluation, AbstractElement, AbstractEnvelope, AbstractGeographicExtent, AbstractGeolocationInformation, AbstractIdentification, AbstractLogicalConsistency, AbstractMetadata, AbstractMetaquality, AbstractParty, AbstractPositionalAccuracy, AbstractResult, AbstractSpatialRepresentation, AbstractTemporalAccuracy, AbstractTemporalQuality, AbstractThematicAccuracy, ArrayEnvelope, Bounds, Constraints, ConvertedRange, DataIdentification, DefaultAbsoluteExternalPositionalAccuracy, DefaultAccuracyOfATimeMeasurement, DefaultAcquisitionInformation, DefaultAddress, DefaultAggregateInformation, DefaultAggregationDerivation, DefaultAlgorithm, DefaultApplicationSchemaInformation, DefaultAssociatedResource, DefaultAttributeGroup, DefaultBand, DefaultBasicMeasure, DefaultBoundingPolygon, DefaultBrowseGraphic, DefaultCitation, DefaultCitationDate, DefaultCompletenessCommission, DefaultCompletenessOmission, DefaultConceptualConsistency, DefaultConfidence, DefaultConformanceResult, DefaultConstraints, DefaultContact, DefaultCoupledResource, DefaultCoverageDescription, DefaultCoverageResult, DefaultDataFile, DefaultDataIdentification, DefaultDataQuality, DefaultDescriptiveResult, DefaultDigitalTransferOptions, DefaultDimension, DefaultDistribution, DefaultDistributor, DefaultDomainConsistency, DefaultEnvironmentalRecord, DefaultEvaluationMethod, DefaultEvaluationReportInformation, DefaultEvent, DefaultExtendedElementInformation, DefaultExtent, DefaultFeatureCatalogueDescription, DefaultFeatureTypeInfo, DefaultFormat, DefaultFormatConsistency, DefaultFullInspection, DefaultGCP, DefaultGCPCollection, DefaultGeographicBoundingBox, DefaultGeographicDescription, DefaultGeometricObjects, DefaultGeorectified, DefaultGeoreferenceable, DefaultGriddedDataPositionalAccuracy, DefaultGridSpatialRepresentation, DefaultHomogeneity, DefaultIdentifier, DefaultImageDescription, DefaultIndirectEvaluation, DefaultIndividual, DefaultInstrument, DefaultKeywordClass, DefaultKeywords, DefaultLegalConstraints, DefaultLineage, DefaultMaintenanceInformation, DefaultMeasureDescription, DefaultMeasureReference, DefaultMedium, DefaultMetadata, DefaultMetadataExtensionInformation, DefaultMetadataScope, DefaultNominalResolution, DefaultNonQuantitativeAttributeAccuracy, DefaultNonQuantitativeAttributeCorrectness, DefaultObjective, DefaultOnlineResource, DefaultOperation, DefaultOperationChainMetadata, DefaultOperationMetadata, DefaultOrganisation, DefaultPlan, DefaultPlatform, DefaultPlatformPass, DefaultPortrayalCatalogueReference, DefaultProcessing, DefaultProcessStep, DefaultProcessStepReport, DefaultQualityMeasure, DefaultQuantitativeAttributeAccuracy, DefaultQuantitativeResult, DefaultRangeDimension, DefaultRangeElementDescription, DefaultRelativeInternalPositionalAccuracy, DefaultReleasability, DefaultRepresentativeFraction, DefaultRepresentativity, DefaultRequestedDate, DefaultRequirement, DefaultResolution, DefaultResponsibility, DefaultResponsibleParty, DefaultSampleBasedInspection, DefaultSampleDimension, DefaultScope, DefaultScope, DefaultScopeDescription, DefaultSecurityConstraints, DefaultSeries, DefaultServiceIdentification, DefaultSource, DefaultSourceReference, DefaultSpatialTemporalExtent, DefaultStandardOrderProcess, DefaultTelephone, DefaultTemporalConsistency, DefaultTemporalExtent, DefaultTemporalValidity, DefaultThematicClassificationCorrectness, DefaultTopologicalConsistency, DefaultUsability, DefaultUsage, DefaultVectorSpatialRepresentation, DefaultVerticalExtent, DomainRange, Envelope2D, EPSGParameterDomain, GeneralEnvelope, GeographicEnvelope, ImmutableEnvelope, ISOMetadata, ISOMetadata, LE_ProcessStep, LE_Source, LegalConstraints, MeasurementRange, MI_Band, MI_CoverageDescription, MI_Georectified, MI_Georeferenceable, MI_ImageDescription, MI_Metadata, ModifiableMetadata, NumberRange, OperationName, PositionalAccuracyConstant, Range, RS_Identifier, RTreeNode, SecurityConstraints, SpecializableTransform.SubArea, SubEnvelope

public interface Emptiable
Interface of classes for which empty instances may exist. This interface is typically used for filtering empty elements from a tree of objects. Some examples of emptiable classes are:
  • Range when the lower bounds is equal to the upper bounds and at least one bound is exclusive.
  • AbstractMetadata when no property value has been given to the metadata, or all properties are themselves empty.
  • AbstractEnvelope when the span, surface or volume inside the envelope is zero.
SIS collections do not implement this interface even if they provide a isEmpty() method, for consistency with collections in java.util and other libraries. This policy avoid duplicated calls to isEmpty() methods when the caller needs to check for both Collection and Emptiable interfaces.
Since:
0.4
Version:
0.4
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Returns true if this instance is empty.
  • Method Details

    • isEmpty

      boolean isEmpty()
      Returns true if this instance is empty. The definition of "emptiness" may vary between implementations. For example, DefaultGeographicBoundingBox.isEmpty() returns true if all values are NaN (i.e. uninitialized) while AbstractEnvelope.isEmpty() returns true if the geometric surface is zero.
      Returns:
      true if this instance is empty, or false otherwise.