Class RDBMSTopicMapStore

java.lang.Object
net.ontopia.topicmaps.impl.utils.AbstractTopicMapStore
net.ontopia.topicmaps.impl.rdbms.RDBMSTopicMapStore
All Implemented Interfaces:
AutoCloseable, TopicMapStoreIF

public class RDBMSTopicMapStore extends AbstractTopicMapStore
PUBLIC: The rdbms topic map store implementation.

  • Field Details

    • types

      protected static final Class[] types
    • topicmap_id

      protected long topicmap_id
    • storage

      protected RDBMSStorage storage
    • propfile

      protected String propfile
    • properties

      protected Map<String,String> properties
    • transaction

      protected RDBMSTopicMapTransaction transaction
    • storage_local

      protected boolean storage_local
  • Constructor Details

    • RDBMSTopicMapStore

      public RDBMSTopicMapStore() throws IOException
      PUBLIC: Creates a new topic map store without a specified database property file. A new topic map is created in the repository with this constructor at the time the topic map is accessed.
      Throws:
      IOException
    • RDBMSTopicMapStore

      public RDBMSTopicMapStore(long topicmap_id) throws IOException
      PUBLIC: Creates a new topic map store without a specified database property file. The store references an existing topic map with the specified id.
      Throws:
      IOException
    • RDBMSTopicMapStore

      public RDBMSTopicMapStore(String propfile) throws IOException
      PUBLIC: Creates a new topic map store with the database property file set. A new topic map is created in the repository with this constructor at the time the topic map is accessed.
      Parameters:
      propfile - Path reference to a Java properties file.
      Throws:
      IOException
    • RDBMSTopicMapStore

      public RDBMSTopicMapStore(String propfile, long topicmap_id) throws IOException
      PUBLIC: Creates a new topic map store with the database property file set. The store references an existing topic map with the specified id.
      Parameters:
      propfile - Path reference to a Java properties file.
      topicmap_id - The ID of the topic map in the database.
      Throws:
      IOException
    • RDBMSTopicMapStore

      public RDBMSTopicMapStore(Map<String,String> properties) throws IOException
      PUBLIC: Creates a new topic map store with the specified database properties. A new topic map is created in the repository with this constructor at the time the topic map is accessed.
      Throws:
      IOException
      Since:
      1.2.4
    • RDBMSTopicMapStore

      public RDBMSTopicMapStore(Map<String,String> properties, long topicmap_id) throws IOException
      PUBLIC: Creates a new topic map store with the specified database properties. The store references an existing topic map with the specified id.
      Throws:
      IOException
      Since:
      1.2.4
    • RDBMSTopicMapStore

      public RDBMSTopicMapStore(StorageIF storage)
      INTERNAL:
    • RDBMSTopicMapStore

      public RDBMSTopicMapStore(StorageIF storage, long topicmap_id)
      INTERNAL:
  • Method Details

    • getStorage

      public RDBMSStorage getStorage()
      INTERNAL: Returns the proxy storage implementation used by the topic map store.
    • getImplementation

      public int getImplementation()
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Returns the topic map implementation identifier.
      Returns:
      TopicMapStoreIF.IN_MEMORY_IMPLEMENTATION or TopicMapStoreIF.RDBMS_IMPLEMENTATION flags.
    • isTransactional

      public boolean isTransactional()
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Returns true if the store supports transactions.
      Returns:
      Boolean: true if transactional, false if not.
    • getBaseAddress

      public LocatorIF getBaseAddress()
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Gets a locator of the topic map in the store. This can be used as a locator for the topic map as a whole. The locator can be resolved to a store that holds the topic map.
      Specified by:
      getBaseAddress in interface TopicMapStoreIF
      Overrides:
      getBaseAddress in class AbstractTopicMapStore
      Returns:
      A locator to the topic map in the store; an object implementing LocatorIF.
    • setBaseAddress

      public void setBaseAddress(LocatorIF base_address)
      Description copied from interface: TopicMapStoreIF
      EXPERIMENTAL: Sets the persistent base address of the store.
    • setBaseAddressOverride

      public void setBaseAddressOverride(LocatorIF base_address)
      INTERNAL: Sets the apparent base address of the store. The value of this field is not considered persistent and may for that reason be transaction specific.
    • getTransactionIF

      public TransactionIF getTransactionIF()
    • getTransaction

      public TopicMapTransactionIF getTransaction()
      Specified by:
      getTransaction in class AbstractTopicMapStore
    • getTopicMap

      public TopicMapIF getTopicMap()
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Gets the topic map that is accessible through the root transaction of the store.
      Specified by:
      getTopicMap in interface TopicMapStoreIF
      Overrides:
      getTopicMap in class AbstractTopicMapStore
      Returns:
      The topic map in the root transaction; an object implementing TopicMapIF. This method is a shorthand for getTransaction().getTopicMap(). If the store is not open when this method is called it will be opened automatically.

    • commit

      public void commit()
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Commits and deactivates the top-level transaction. This method is a shorthand for getTransaction().commit().
      Specified by:
      commit in interface TopicMapStoreIF
      Overrides:
      commit in class AbstractTopicMapStore
    • abort

      public void abort()
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Aborts and deactivates the top-level transaction; all changes made inside the root transaction are lost. This method is a shorthand for getTransaction().abort().
      Specified by:
      abort in interface TopicMapStoreIF
      Overrides:
      abort in class AbstractTopicMapStore
    • clear

      public void clear()
    • delete

      protected boolean delete(RDBMSTopicMapReference ref)
    • delete

      public void delete(boolean force) throws NotRemovableException
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Deletes the TopicMapIF from the data store. The store is closed after the topic map has been deleted. A deleted store cannot be reopened.

      If the force flag is false and the topic map contains any objects, i.e. topics and associations, a NotRemovableException will be thrown. The topic map will not be modified or closed if this is so.

      If the force flag is true, the topic map will be deleted even if it contains any objects.

      Note: if you're retrieved the store via a TopicMapReferenceIF then call delete(boolean) on the reference instead.

      Specified by:
      delete in interface TopicMapStoreIF
      Overrides:
      delete in class AbstractTopicMapStore
      Throws:
      NotRemovableException
    • getProperty

      public String getProperty(String name)
      INTERNAL: Gets the value of the specified store property.
    • finalize

      protected void finalize()
      Overrides:
      finalize in class Object
    • close

      public void close()
      Description copied from interface: TopicMapStoreIF
      PUBLIC: Closes the store and aborts the transaction if active.
    • close

      public void close(boolean returnStore)
      Specified by:
      close in class AbstractTopicMapStore
    • validate

      public boolean validate()
      Overrides:
      validate in class AbstractTopicMapStore
    • evictObject

      public void evictObject(String object_id)
      INTERNAL: Evicts the given object from the shared RDBMS caches.
      Since:
      3.3.0
    • clearCache

      public void clearCache()
      INTERNAL: Empties the shared RDBMS caches.
      Since:
      2.2.1
    • writeReport

      public void writeReport(String filename, boolean dumpCaches) throws IOException
      EXPERIMENTAL: Writes a cache statistics report to the given file.
      Parameters:
      filename - the name of the file to write the report to
      dumpCaches - whether to include detailed cache dumps
      Throws:
      IOException
      Since:
      2.2.1
    • writeReport

      public void writeReport(Writer out, boolean dumpCaches) throws IOException
      EXPERIMENTAL: Writes a cache statistics report to the given writer.
      Parameters:
      out - the writer to write the report to
      dumpCaches - whether to include detailed cache dumps
      Throws:
      IOException
      Since:
      2.2.1
    • writeIdentityMap

      public void writeIdentityMap(Writer out, boolean dump) throws IOException
      EXPERIMENTAL: Dumps the identity map to the given writer.
      Parameters:
      out - the writer to write the report to
      Throws:
      IOException
      Since:
      3.0
    • prefetchObjectsById

      public boolean prefetchObjectsById(Collection<String> object_ids)
    • prefetchFieldsById

      public boolean prefetchFieldsById(Collection<String> object_ids, int field)
    • getIdentityForObjectId

      protected IdentityIF getIdentityForObjectId(TransactionIF txn, String object_id)
    • prefetch

      public boolean prefetch(int type, int field, boolean traverse, Collection objects)
    • prefetch

      public boolean prefetch(int type, int[] fields, boolean[] traverse, Collection objects)
    • prefetchRolesByType

      public void prefetchRolesByType(Collection players, TopicIF rtype, TopicIF atype)
    • getLongId

      public long getLongId()
    • getLongId

      public long getLongId(TMObjectIF o)
    • flush

      public void flush()
    • getConnection

      public Connection getConnection()
    • getConnectionFactory

      public ConnectionFactoryIF getConnectionFactory(boolean readonly)
    • getQueryString

      public String getQueryString(String name)
    • merged

      public void merged(TMObjectIF source, TMObjectIF target)
      INTERNAL: Called by MergeUtils to notify transaction of a performed merge.
      Parameters:
      source -
      target -
    • getEventManager

      public EventManagerIF getEventManager()
      Specified by:
      getEventManager in class AbstractTopicMapStore