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, DefaultFeatureTypeList, 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 collection or 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 need 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 and 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.

Copyright © 2010–2017 The Apache Software Foundation. All rights reserved.