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.


Nested Class Summary
static interface Store.SyncHook
          For unit testing.
 
Field Summary
static java.lang.String NAME_SEPARATOR
           
 
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()
           
 java.lang.String[] parseDbName(java.lang.String wholeName)
          Parses a whole DB name and returns an array of 2 strings where element 0 is the file name (always null for JE, always non-null for DB core) and element 1 is the logical DB name (always non-null for JE, may be null for DB core).
static java.lang.String[] parseDbName(java.lang.String wholeName, DatabaseNamer namer)
          Allows passing a namer to a static method for testing.
 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 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
 

Field Detail

NAME_SEPARATOR

public static final java.lang.String NAME_SEPARATOR
See Also:
Constant Field Values
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()

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

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)

parseDbName

public java.lang.String[] parseDbName(java.lang.String wholeName)
Parses a whole DB name and returns an array of 2 strings where element 0 is the file name (always null for JE, always non-null for DB core) and element 1 is the logical DB name (always non-null for JE, may be null for DB core).


parseDbName

public static java.lang.String[] parseDbName(java.lang.String wholeName,
                                             DatabaseNamer namer)
Allows passing a namer to a static method for testing.


evolve

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

setSyncHook

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