Enum IdentifiedObjectFinder.Domain

All Implemented Interfaces:
Serializable, Comparable<Identified­Object­Finder​.Domain>, Constable
Enclosing class:
Identified­Object­Finder

public static enum IdentifiedObjectFinder.Domain extends Enum<IdentifiedObjectFinder.Domain>
The domain of the search (for example whether to include deprecated objects in the search).
Since:
0.7
See Also:

Defined in the sis-referencing module

  • Enum Constant Details

    • DECLARATION

      public static final IdentifiedObjectFinder.Domain DECLARATION
      Fast lookup based only on embedded identifiers and names. If those identification information does not allow to locate an object in the factory, then the search will return an empty set.
      Example: if Identified­Object­Finder​.find(Identified­Object) is invoked with an object having the "4326" identifier, then the find(…) method will invoke factory.create­Geographic­CRS("4326") and compare the object from the factory with the object to search. If the objects do not match, then another attempt will be done using the object name. If using name does not work neither, then find(…) method makes no other attempt and returns an empty set.
    • VALID_DATASET

      public static final IdentifiedObjectFinder.Domain VALID_DATASET
      Lookup based on valid (non-deprecated) objects known to the factory. First, a fast lookup is performed based on DECLARATION. If the fast lookup gave no result, then a more extensive search is performed by scanning the content of the dataset.
      Example: if Identified­Object­Finder​.find(Identified­Object) is invoked with an object equivalent to the WGS84 geographic CRS but does not declare the "4326" identifier and does not have the "WGS 84" name, then the search based on DECLARATION will give no result. The find(…) method will then scan the dataset for geographic CRS using equivalent datum and coordinate system. This may be a costly operation.
      This is the default domain of Identified­Object­Finder.
    • EXHAUSTIVE_VALID_DATASET

      public static final IdentifiedObjectFinder.Domain EXHAUSTIVE_VALID_DATASET
      Lookup unconditionally based on all valid (non-deprecated) objects known to the factory. This is similar to VALID_DATASET except that the fast DECLARATION lookup is skipped. Instead, a potentially costly scan of the database is unconditionally performed (unless the result is already in the cache).

      This domain can be useful when the search ignores axis order. If axis order is not ignored, then this domain usually has no advantage over VALID_DATASET (unless the geodetic dataset contains duplicated entries) to justify the performance cost.

      Use case: the EPSG database sometime contains two definitions for almost identical geographic CRS, one with (latitude, longitude) axis order and one with reverse order (e.g. EPSG::4171 versus EPSG::7084). It is sometime useful to know all variants of a given CRS. The VALID_DATASET domain may not give a complete set because the "fast lookup by identifier" optimization may prevent Identified­Object­Finder to scan the rest of the database. This EXHAUSTIVE_VALID_DATASET domain forces such scan.
      Since:
      1.2
    • ALL_DATASET

      public static final IdentifiedObjectFinder.Domain ALL_DATASET
      Lookup based on all objects (both valid and deprecated) known to the factory. This is the same search than VALID_DATASET except that deprecated objects are included in the search.
  • Method Details

    • values

      public static IdentifiedObjectFinder.Domain[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static IdentifiedObjectFinder.Domain valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      Illegal­Argument­Exception - if this enum type has no constant with the specified name
      Null­Pointer­Exception - if the argument is null