Package org.apache.sis.util

## Interface Emptiable

- All Known Implementing Classes:
    `AbstractCompleteness`, `AbstractContentInformation`, `AbstractElement`, `AbstractEnvelope`, `AbstractGeographicExtent`, `AbstractGeolocationInformation`, `AbstractIdentification`, `AbstractLogicalConsistency`, `AbstractMetadata`, `AbstractParty`, `AbstractPositionalAccuracy`, `AbstractResult`, `AbstractSpatialRepresentation`, `AbstractTemporalAccuracy`, `AbstractThematicAccuracy`, `DefaultAbsoluteExternalPositionalAccuracy`, `DefaultAccuracyOfATimeMeasurement`, `DefaultAcquisitionInformation`, `DefaultAddress`, `DefaultAggregateInformation`, `DefaultAlgorithm`, `DefaultApplicationSchemaInformation`, `DefaultAssociatedResource`, `DefaultAttributeGroup`, `DefaultBand`, `DefaultBoundingPolygon`, `DefaultBrowseGraphic`, `DefaultCitation`, `DefaultCitationDate`, `DefaultCompletenessCommission`, `DefaultCompletenessOmission`, `DefaultConceptualConsistency`, `DefaultConformanceResult`, `DefaultConstraints`, `DefaultContact`, `DefaultCoupledResource`, `DefaultCoverageDescription`, `DefaultCoverageResult`, `DefaultDataFile`, `DefaultDataIdentification`, `DefaultDataQuality`, `DefaultDigitalTransferOptions`, `DefaultDimension`, `DefaultDistribution`, `DefaultDistributor`, `DefaultDomainConsistency`, `DefaultEnvironmentalRecord`, `DefaultEvent`, `DefaultExtendedElementInformation`, `DefaultExtent`, `DefaultFeatureCatalogueDescription`, `DefaultFeatureTypeInfo`, `DefaultFormat`, `DefaultFormatConsistency`, `DefaultGCP`, `DefaultGCPCollection`, `DefaultGeographicBoundingBox`, `DefaultGeographicDescription`, `DefaultGeometricObjects`, `DefaultGeorectified`, `DefaultGeoreferenceable`, `DefaultGriddedDataPositionalAccuracy`, `DefaultGridSpatialRepresentation`, `DefaultIdentifier`, `DefaultImageDescription`, `DefaultIndividual`, `DefaultInstrument`, `DefaultKeywordClass`, `DefaultKeywords`, `DefaultLegalConstraints`, `DefaultLineage`, `DefaultMaintenanceInformation`, `DefaultMedium`, `DefaultMetadata`, `DefaultMetadataExtensionInformation`, `DefaultMetadataScope`, `DefaultNominalResolution`, `DefaultNonQuantitativeAttributeAccuracy`, `DefaultObjective`, `DefaultOnlineResource`, `DefaultOperation`, `DefaultOperationChainMetadata`, `DefaultOperationMetadata`, `DefaultOrganisation`, `DefaultPlan`, `DefaultPlatform`, `DefaultPlatformPass`, `DefaultPortrayalCatalogueReference`, `DefaultProcessing`, `DefaultProcessStep`, `DefaultProcessStepReport`, `DefaultQuantitativeAttributeAccuracy`, `DefaultQuantitativeResult`, `DefaultRangeDimension`, `DefaultRangeElementDescription`, `DefaultRelativeInternalPositionalAccuracy`, `DefaultReleasability`, `DefaultRepresentativeFraction`, `DefaultRequestedDate`, `DefaultRequirement`, `DefaultResolution`, `DefaultResponsibility`, `DefaultResponsibleParty`, `DefaultSampleDimension`, `DefaultScope`, `DefaultScope`, `DefaultScopeDescription`, `DefaultSecurityConstraints`, `DefaultSeries`, `DefaultServiceIdentification`, `DefaultSource`, `DefaultSpatialTemporalExtent`, `DefaultStandardOrderProcess`, `DefaultTelephone`, `DefaultTemporalConsistency`, `DefaultTemporalExtent`, `DefaultTemporalValidity`, `DefaultThematicClassificationCorrectness`, `DefaultTopologicalConsistency`, `DefaultUsability`, `DefaultUsage`, `DefaultVectorSpatialRepresentation`, `DefaultVerticalExtent`, `Envelope2D`, `GeneralEnvelope`, `ImmutableEnvelope`, `ISOMetadata`, `MeasurementRange`, `ModifiableMetadata`, `NumberRange`, `Range`

      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 equals 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

  Defined in the `sis-utility` module

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isEmpty()` | Returns `true` if this instance is empty.

- - ### Method Detail

    - #### 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.