Package elki.database

Class AbstractDatabase

  • All Implemented Interfaces:
    elki.database.Database
    Direct Known Subclasses:
    HashmapDatabase, ProxyDatabase, StaticArrayDatabase

    public abstract class AbstractDatabase
    extends java.lang.Object
    implements elki.database.Database
    Abstract base class for database API implementations. Provides default management of relations, indexes and events as well as default query matching.

    Note: when debugging index usage, set logging for this package to FINEST via -enableDebug elki.database=FINEST

    Since:
    0.1
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  AbstractDatabase.Par
      Parameterization class.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected DatabaseEventManager eventManager
      The event manager, collects events and fires them on demand.
      protected java.util.Collection<elki.index.IndexFactory<?>> indexFactories
      Index factories.
      protected java.util.List<elki.database.relation.Relation<?>> relations
      The relations we manage.
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractDatabase()
      Constructor.
    • Field Detail

      • eventManager

        protected final DatabaseEventManager eventManager
        The event manager, collects events and fires them on demand.
      • relations

        protected final java.util.List<elki.database.relation.Relation<?>> relations
        The relations we manage.
      • indexFactories

        protected final java.util.Collection<elki.index.IndexFactory<?>> indexFactories
        Index factories.
    • Constructor Detail

      • AbstractDatabase

        public AbstractDatabase()
        Constructor.
    • Method Detail

      • getBundle

        public elki.datasource.bundle.SingleObjectBundle getBundle​(elki.database.ids.DBIDRef id)
        Specified by:
        getBundle in interface elki.database.Database
      • getRelations

        public java.util.Collection<elki.database.relation.Relation<?>> getRelations()
        Specified by:
        getRelations in interface elki.database.Database
      • getRelation

        public <O> elki.database.relation.Relation<O> getRelation​(elki.data.type.TypeInformation restriction,
                                                                  java.lang.Object... hints)
                                                           throws elki.data.type.NoSupportedDataTypeException
        Specified by:
        getRelation in interface elki.database.Database
        Throws:
        elki.data.type.NoSupportedDataTypeException
      • addDataStoreListener

        public void addDataStoreListener​(elki.database.datastore.DataStoreListener l)
        Specified by:
        addDataStoreListener in interface elki.database.Database
      • removeDataStoreListener

        public void removeDataStoreListener​(elki.database.datastore.DataStoreListener l)
        Specified by:
        removeDataStoreListener in interface elki.database.Database
      • accumulateDataStoreEvents

        public void accumulateDataStoreEvents()
        Specified by:
        accumulateDataStoreEvents in interface elki.database.Database
      • flushDataStoreEvents

        public void flushDataStoreEvents()
        Specified by:
        flushDataStoreEvents in interface elki.database.Database
      • getLongName

        public java.lang.String getLongName()
      • getShortName

        public java.lang.String getShortName()
      • getLogger

        protected abstract elki.logging.Logging getLogger()
        Get the class logger.
        Returns:
        Class logger