abstract class MetadataBackedDataStore extends DataStore with HasGeoMesaMetadata[String] with HasGeoMesaFeatureReader with DistributedLocking with LazyLogging

Abstract base class for data store implementations using metadata to track schemas

Linear Supertypes
LazyLogging, DistributedLocking, HasGeoMesaFeatureReader, HasGeoMesaMetadata[String], DataStore, DataAccess[SimpleFeatureType, SimpleFeature], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MetadataBackedDataStore
  2. LazyLogging
  3. DistributedLocking
  4. HasGeoMesaFeatureReader
  5. HasGeoMesaMetadata
  6. DataStore
  7. DataAccess
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new MetadataBackedDataStore(config: NamespaceConfig)

Abstract Value Members

  1. abstract def acquireDistributedLock(key: String, timeOut: Long): Option[Closeable]

    Gets and acquires a distributed lock based on the key.

    Gets and acquires a distributed lock based on the key. Make sure that you 'release' the lock in a finally block.

    key

    key to lock on - equivalent to a path in zookeeper

    timeOut

    how long to wait to acquire the lock, in millis

    returns

    the lock, if obtained

    Attributes
    protected
    Definition Classes
    DistributedLocking
  2. abstract def acquireDistributedLock(key: String): Closeable

    Gets and acquires a distributed lock based on the key.

    Gets and acquires a distributed lock based on the key. Make sure that you 'release' the lock in a finally block.

    key

    key to lock on - equivalent to a path in zookeeper

    returns

    the lock

    Attributes
    protected
    Definition Classes
    DistributedLocking
  3. abstract def getFeatureSource(arg0: String): SimpleFeatureSource
    Definition Classes
    DataStore
    Annotations
    @throws( classOf[java.io.IOException] )
  4. abstract def metadata: GeoMesaMetadata[String]
    Definition Classes
    HasGeoMesaMetadata
  5. abstract def onSchemaCreated(sft: SimpleFeatureType): Unit

    Called after schema metadata has been persisted.

    Called after schema metadata has been persisted. Allows for creating tables, etc

    sft

    simple feature type

    Attributes
    protected
  6. abstract def onSchemaDeleted(sft: SimpleFeatureType): Unit

    Called after deleting schema metadata.

    Called after deleting schema metadata. Allows for deleting tables, etc

    sft

    simple feature type

    Attributes
    protected
  7. abstract def onSchemaUpdated(sft: SimpleFeatureType, previous: SimpleFeatureType): Unit

    Called after schema metadata has been persisted.

    Called after schema metadata has been persisted. Allows for creating tables, etc

    sft

    simple feature type

    previous

    previous feature type before changes

    Attributes
    protected
  8. abstract def preSchemaCreate(sft: SimpleFeatureType): Unit

    Called just before persisting schema metadata.

    Called just before persisting schema metadata. Allows for validation or configuration of user data

    sft

    simple feature type

    Attributes
    protected
    Annotations
    @throws( classOf[IllegalArgumentException] )
    Exceptions thrown

    java.lang.IllegalArgumentException if schema is invalid and shouldn't be written

  9. abstract def preSchemaUpdate(sft: SimpleFeatureType, previous: SimpleFeatureType): Unit

    Called just before updating schema metadata.

    Called just before updating schema metadata. Allows for validation or configuration of user data

    sft

    simple feature type

    previous

    previous feature type before changes

    Attributes
    protected
    Annotations
    @throws( classOf[IllegalArgumentException] )
    Exceptions thrown

    java.lang.IllegalArgumentException if schema is invalid and shouldn't be updated

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def acquireCatalogLock(): Closeable

    Acquires a distributed lock for all data stores sharing this catalog table.

    Acquires a distributed lock for all data stores sharing this catalog table. Make sure that you 'release' the lock in a finally block.

    Attributes
    protected[geomesa]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  7. def createSchema(schema: SimpleFeatureType): Unit

    Validates the schema and writes metadata to catalog.If the schema already exists, continue without error.

    Validates the schema and writes metadata to catalog.If the schema already exists, continue without error.

    This method uses distributed locking to ensure a schema is only created once.

    schema

    type to create

    Definition Classes
    MetadataBackedDataStore → DataAccess
    See also

    org.geotools.data.DataAccess#createSchema(org.geotools.api.feature.type.FeatureType)

  8. def dispose(): Unit

    Cleanup any open connections, etc.

    Cleanup any open connections, etc. Equivalent to java.io.Closeable.close()

    Definition Classes
    MetadataBackedDataStore → DataAccess
    See also

    org.geotools.data.DataAccess#dispose()

  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  12. def getFeatureReader(query: Query, transaction: Transaction): SimpleFeatureReader

    query

    query to execute

    transaction

    transaction to use (currently ignored)

    returns

    feature reader

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#getFeatureReader(org.geotools.api.data.Query, org.geotools.api.data.Transaction)

  13. def getFeatureSource(typeName: Name): SimpleFeatureSource

    typeName

    simple feature type name

    returns

    featureStore, suitable for reading and writing

    Definition Classes
    MetadataBackedDataStore → DataStore → DataAccess
    See also

    org.geotools.api.data.DataStore#getFeatureSource(java.lang.String)

  14. def getFeatureWriter(typeName: String, filter: Filter, transaction: Transaction): FlushableFeatureWriter

    Create a general purpose writer that is capable of updates and deletes.

    Create a general purpose writer that is capable of updates and deletes. Does not allow inserts.

    typeName

    feature type name

    filter

    cql filter to select features for update/delete

    transaction

    transaction (currently ignored)

    returns

    feature writer

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#getFeatureWriter(java.lang.String, org.geotools.api.filter.Filter, org.geotools.api.data.Transaction)

  15. def getFeatureWriter(typeName: String, transaction: Transaction): FlushableFeatureWriter

    Create a general purpose writer that is capable of updates and deletes.

    Create a general purpose writer that is capable of updates and deletes. Does not allow inserts. Will return all existing features.

    typeName

    feature type name

    transaction

    transaction (currently ignored)

    returns

    feature writer

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#getFeatureWriter(java.lang.String, org.geotools.api.data.Transaction)

  16. def getFeatureWriterAppend(typeName: String, transaction: Transaction): FlushableFeatureWriter

    Creates a feature writer only for writing - does not allow updates or deletes.

    Creates a feature writer only for writing - does not allow updates or deletes.

    typeName

    feature type name

    transaction

    transaction (currently ignored)

    returns

    feature writer

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#getFeatureWriterAppend(java.lang.String, org.geotools.api.data.Transaction)

  17. def getInfo(): ServiceInfo

    returns

    service info

    Definition Classes
    MetadataBackedDataStore → DataAccess
    See also

    org.geotools.data.DataAccess#getInfo()

  18. def getLockingManager(): LockingManager

    We always return null, which indicates that we are handling transactions ourselves.

    We always return null, which indicates that we are handling transactions ourselves.

    returns

    locking manager - null

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#getLockingManager()

  19. def getNames(): List[Name]

    returns

    existing simple feature type names

    Definition Classes
    MetadataBackedDataStore → DataAccess
    See also

    org.geotools.data.DataAccess#getNames()

  20. def getSchema(typeName: String): SimpleFeatureType

    typeName

    feature type name

    returns

    feature type, or null if it does not exist

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#getSchema(java.lang.String)

  21. def getSchema(name: Name): SimpleFeatureType

    name

    feature type name

    returns

    feature type, or null if it does not exist

    Definition Classes
    MetadataBackedDataStore → DataAccess
    See also

    org.geotools.data.DataAccess#getSchema(org.geotools.api.feature.type.Name)

  22. def getTypeNames(): Array[String]

    returns

    existing simple feature type names

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#getTypeNames()

  23. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  24. val interceptors: QueryInterceptorFactory
    Attributes
    protected[geomesa]
  25. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  26. lazy val logger: Logger
    Attributes
    protected
    Definition Classes
    LazyLogging
    Annotations
    @transient()
  27. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  28. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  29. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  30. def removeSchema(typeName: Name): Unit

    typeName

    simple feature type name

    Definition Classes
    MetadataBackedDataStore → DataAccess
    See also

    org.geotools.data.DataAccess#removeSchema(org.geotools.api.feature.type.Name)

  31. def removeSchema(typeName: String): Unit

    Deletes the schema metadata

    Deletes the schema metadata

    typeName

    simple feature type name

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#removeSchema(java.lang.String)

  32. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  33. def toString(): String
    Definition Classes
    AnyRef → Any
  34. def updateSchema(typeName: Name, schema: SimpleFeatureType): Unit

    Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data

    Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data

    Other modifications are not supported.

    typeName

    simple feature type name

    schema

    new simple feature type

    Definition Classes
    MetadataBackedDataStore → DataAccess
    See also

    org.geotools.data.DataAccess#updateSchema(org.geotools.api.feature.type.Name, org.geotools.api.feature.type.FeatureType)

  35. def updateSchema(typeName: String, sft: SimpleFeatureType): Unit

    Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data

    Allows the following modifications to the schema: renaming the feature type renaming attributes appending new attributes enabling/disabling indices through RichSimpleFeatureType.setIndexVersion modifying keywords through user-data

    Other modifications are not supported.

    typeName

    simple feature type name

    sft

    new simple feature type

    Definition Classes
    MetadataBackedDataStore → DataStore
    See also

    org.geotools.api.data.DataStore#updateSchema(java.lang.String, org.geotools.api.feature.simple.SimpleFeatureType)

  36. def validateSchemaUpdate(existing: SimpleFeatureType, schema: SimpleFeatureType): Either[UnsupportedOperationException, Compatible]

    Validate a call to updateSchema, throwing errors on failed validation

    Validate a call to updateSchema, throwing errors on failed validation

    existing

    existing schema

    schema

    updated sft

    returns

    validation result

    Attributes
    protected
  37. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  39. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  40. def withLock[T](key: String, timeOut: Long, fn: ⇒ T, fallback: ⇒ T): T

    Execute a function wrapped in a lock

    Execute a function wrapped in a lock

    T

    result type

    key

    key to lock on

    timeOut

    how long to wait to acquire the lock, in millis

    fn

    function to run with the lock

    fallback

    function to run if the lock could not be acquired

    Attributes
    protected
    Definition Classes
    DistributedLocking
  41. def withLock[T](key: String, timeOut: Long, fn: ⇒ T): T

    Execute a function wrapped in a lock

    Execute a function wrapped in a lock

    T

    result type

    key

    key to lock on

    timeOut

    how long to wait to acquire the lock, in millis

    fn

    function to run with the lock

    Attributes
    protected
    Definition Classes
    DistributedLocking
  42. def withLock[T](key: String, fn: ⇒ T): T

    Execute a function wrapped in a lock

    Execute a function wrapped in a lock

    T

    result type

    key

    key to lock on

    fn

    function to run with the lock

    Attributes
    protected
    Definition Classes
    DistributedLocking

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from LazyLogging

Inherited from DistributedLocking

Inherited from HasGeoMesaFeatureReader

Inherited from HasGeoMesaMetadata[String]

Inherited from DataStore

Inherited from DataAccess[SimpleFeatureType, SimpleFeature]

Inherited from AnyRef

Inherited from Any

Ungrouped