com.sleepycat.persist.impl
Class Store

java.lang.Object
  extended by com.sleepycat.persist.impl.Store

public class Store
extends java.lang.Object

Base implementation for EntityStore and RawStore. The methods here correspond directly to those in EntityStore; see EntityStore documentation for details.

Author:
Mark Hayes

Nested Class Summary
static interface Store.SyncHook
          For unit testing.
 
Constructor Summary
Store(Environment env, java.lang.String storeName, StoreConfig config, boolean rawAccess)
           
 
Method Summary
 void close()
           
 void closeClass(java.lang.Class entityClass)
           
 void dumpCatalog()
           
 EvolveStats evolve(EvolveConfig config)
           
 StoreConfig getConfig()
           
 Environment getEnvironment()
           
 EntityModel getModel()
           
 Mutations getMutations()
           
 DatabaseConfig getPrimaryConfig(java.lang.Class entityClass)
           
<PK,E> PrimaryIndex<PK,E>
getPrimaryIndex(java.lang.Class<PK> primaryKeyClass, java.lang.String primaryKeyClassName, java.lang.Class<E> entityClass, java.lang.String entityClassName)
          A getPrimaryIndex with extra parameters for opening a raw store.
 SecondaryConfig getSecondaryConfig(java.lang.Class entityClass, java.lang.String keyName)
           
<SK,PK,E1,E2 extends E1>
SecondaryIndex<SK,PK,E2>
getSecondaryIndex(PrimaryIndex<PK,E1> primaryIndex, java.lang.Class<E2> entityClass, java.lang.String entityClassName, java.lang.Class<SK> keyClass, java.lang.String keyClassName, java.lang.String keyName)
          A getSecondaryIndex with extra parameters for opening a raw store.
 Sequence getSequence(java.lang.String name)
           
 SequenceConfig getSequenceConfig(java.lang.String name)
           
 java.lang.String getStoreName()
           
static java.util.Set<java.lang.String> getStoreNames(Environment env)
           
(package private) static java.lang.String makePriDbName(java.lang.String storePrefix, java.lang.String entityClsName)
           
(package private) static java.lang.String makeSecDbName(java.lang.String storePrefix, java.lang.String entityClsName, java.lang.String keyName)
           
(package private)  void openSecondaryIndexes(Transaction txn, EntityMetadata entityMeta, com.sleepycat.persist.impl.Store.PrimaryOpenState priOpenState)
          Opens any secondary indexes defined in the given entity metadata that are not already open.
 void setPrimaryConfig(java.lang.Class entityClass, DatabaseConfig config)
           
 void setSecondaryConfig(java.lang.Class entityClass, java.lang.String keyName, SecondaryConfig config)
           
 void setSequenceConfig(java.lang.String name, SequenceConfig config)
           
static void setSyncHook(Store.SyncHook hook)
          For unit testing.
 void sync()
           
 void truncateClass(java.lang.Class entityClass)
           
 void truncateClass(Transaction txn, java.lang.Class entityClass)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Store

public Store(Environment env,
             java.lang.String storeName,
             StoreConfig config,
             boolean rawAccess)
      throws DatabaseException
Throws:
DatabaseException
Method Detail

getEnvironment

public Environment getEnvironment()

getConfig

public StoreConfig getConfig()

getStoreName

public java.lang.String getStoreName()

dumpCatalog

public void dumpCatalog()

getStoreNames

public static java.util.Set<java.lang.String> getStoreNames(Environment env)
                                                     throws DatabaseException
Throws:
DatabaseException

getModel

public EntityModel getModel()

getMutations

public Mutations getMutations()

getPrimaryIndex

public <PK,E> PrimaryIndex<PK,E> getPrimaryIndex(java.lang.Class<PK> primaryKeyClass,
                                                 java.lang.String primaryKeyClassName,
                                                 java.lang.Class<E> entityClass,
                                                 java.lang.String entityClassName)
                                   throws DatabaseException
A getPrimaryIndex with extra parameters for opening a raw store. primaryKeyClass and entityClass are used for generic typing; for a raw store, these should always be Object.class and RawObject.class. primaryKeyClassName is used for consistency checking and should be null for a raw store only. entityClassName is used to identify the store and may not be null.

Throws:
DatabaseException

getSecondaryIndex

public <SK,PK,E1,E2 extends E1> SecondaryIndex<SK,PK,E2> getSecondaryIndex(PrimaryIndex<PK,E1> primaryIndex,
                                                                           java.lang.Class<E2> entityClass,
                                                                           java.lang.String entityClassName,
                                                                           java.lang.Class<SK> keyClass,
                                                                           java.lang.String keyClassName,
                                                                           java.lang.String keyName)
                                                      throws DatabaseException
A getSecondaryIndex with extra parameters for opening a raw store. keyClassName is used for consistency checking and should be null for a raw store only.

Throws:
DatabaseException

openSecondaryIndexes

void openSecondaryIndexes(Transaction txn,
                          EntityMetadata entityMeta,
                          com.sleepycat.persist.impl.Store.PrimaryOpenState priOpenState)
                    throws DatabaseException
Opens any secondary indexes defined in the given entity metadata that are not already open. This method is called when a new entity subclass is encountered when an instance of that class is stored, and the EntityStore.getSubclassIndex has not been previously called for that class. [#15247]

Throws:
DatabaseException

sync

public void sync()
          throws DatabaseException
Throws:
DatabaseException

truncateClass

public void truncateClass(java.lang.Class entityClass)
                   throws DatabaseException
Throws:
DatabaseException

truncateClass

public void truncateClass(Transaction txn,
                          java.lang.Class entityClass)
                   throws DatabaseException
Throws:
DatabaseException

closeClass

public void closeClass(java.lang.Class entityClass)
                throws DatabaseException
Throws:
DatabaseException

close

public void close()
           throws DatabaseException
Throws:
DatabaseException

getSequence

public Sequence getSequence(java.lang.String name)
                     throws DatabaseException
Throws:
DatabaseException

getSequenceConfig

public SequenceConfig getSequenceConfig(java.lang.String name)

setSequenceConfig

public void setSequenceConfig(java.lang.String name,
                              SequenceConfig config)

getPrimaryConfig

public DatabaseConfig getPrimaryConfig(java.lang.Class entityClass)

setPrimaryConfig

public void setPrimaryConfig(java.lang.Class entityClass,
                             DatabaseConfig config)

getSecondaryConfig

public SecondaryConfig getSecondaryConfig(java.lang.Class entityClass,
                                          java.lang.String keyName)

setSecondaryConfig

public void setSecondaryConfig(java.lang.Class entityClass,
                               java.lang.String keyName,
                               SecondaryConfig config)

makePriDbName

static java.lang.String makePriDbName(java.lang.String storePrefix,
                                      java.lang.String entityClsName)

makeSecDbName

static java.lang.String makeSecDbName(java.lang.String storePrefix,
                                      java.lang.String entityClsName,
                                      java.lang.String keyName)

evolve

public EvolveStats evolve(EvolveConfig config)
                   throws DatabaseException
Throws:
DatabaseException

setSyncHook

public static void setSyncHook(Store.SyncHook hook)
For unit testing.



Copyright 2004,2008 Oracle. All rights reserved.