## org.jboss.ejb.plugins.jaws.jdbc
Class JDBCCommandFactory

    java.lang.Object
      |
      +--org.jboss.ejb.plugins.jaws.jdbc.JDBCCommandFactory

All Implemented Interfaces:
  JPMCommandFactory

public class JDBCCommandFactory
extends java.lang.Object
implements JPMCommandFactory

Command factory for the JAWS JDBC layer. This class is primarily responsible for creating instances of the JDBC implementations for the various JPM commands so that the JAWSPersistenceManager (actually an persistence store) can delegate to them in a decoupled manner.

This class also acts as the manager for the read-ahead buffer added in version 2.3/2.4. In order to manage this buffer, it must register itself with any transaction that is active when a finder is called so that the data that was read ahead can be discarded before completion of the transaction. The read ahead buffer is managed using Soft references, with a ReferenceQueue being used to tell when the VM has garbage collected an object so that we can keep the hashtables clean.

Version:
  $Revision: 1.10.2.3 $
Author:
  Justin Forder, danch (Dan Christopherson

Constructor Summary
`JDBCCommandFactory(EntityContainer container, Logger log)`

Method Summary
`JPMActivateEntityCommand` `createActivateEntityCommand()`
`JDBCBeanExistsCommand` `createBeanExistsCommand()` Singleton: multiple callers get references to the same command instance.
`JPMCreateEntityCommand` `createCreateEntityCommand()`
`JPMFindEntitiesCommand` `createDefinedFinderCommand(FinderMetaData f)`
`JPMDestroyCommand` `createDestroyCommand()`
`JPMFindEntitiesCommand` `createFindAllCommand(FinderMetaData f)`
`JPMFindEntitiesCommand` `createFindByCommand(java.lang.reflect.Method finderMethod, FinderMetaData f)`
`JPMFindEntitiesCommand` `createFindEntitiesCommand()` Singleton: multiple callers get references to the same command instance.
`JPMFindEntityCommand` `createFindEntityCommand()`
`JPMInitCommand` `createInitCommand()`
`JPMLoadEntitiesCommand` `createLoadEntitiesCommand()`
`JPMLoadEntityCommand` `createLoadEntityCommand()`
`JPMPassivateEntityCommand` `createPassivateEntityCommand()`
`JPMRemoveEntityCommand` `createRemoveEntityCommand()`
`JPMStartCommand` `createStartCommand()`
`JPMStopCommand` `createStopCommand()`
`JPMStoreEntityCommand` `createStoreEntityCommand()`
`EntityContainer` `getContainer()`
`boolean` `getDebug()`
`javax.naming.Context` `getJavaCtx()`
`Logger` `getLog()`
`JawsEntityMetaData` `getMetaData()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### JDBCCommandFactory

    public JDBCCommandFactory(EntityContainer container,
                              Logger log)
                       throws java.lang.Exception

Method Detail

### getContainer

    public EntityContainer getContainer()

### getJavaCtx

    public javax.naming.Context getJavaCtx()

### getMetaData

    public JawsEntityMetaData getMetaData()

### getLog

    public Logger getLog()

### getDebug

    public boolean getDebug()

### createBeanExistsCommand

    public JDBCBeanExistsCommand createBeanExistsCommand()

  Singleton: multiple callers get references to the same command instance.

### createFindAllCommand

    public JPMFindEntitiesCommand createFindAllCommand(FinderMetaData f)

### createDefinedFinderCommand

    public JPMFindEntitiesCommand createDefinedFinderCommand(FinderMetaData f)

### createFindByCommand

    public JPMFindEntitiesCommand createFindByCommand(java.lang.reflect.Method finderMethod,
                                                      FinderMetaData f)
                                               throws java.lang.IllegalArgumentException

### createInitCommand

    public JPMInitCommand createInitCommand()

  Specified by:
    `createInitCommand` in interface `JPMCommandFactory`

### createStartCommand

    public JPMStartCommand createStartCommand()

  Specified by:
    `createStartCommand` in interface `JPMCommandFactory`

### createStopCommand

    public JPMStopCommand createStopCommand()

  Specified by:
    `createStopCommand` in interface `JPMCommandFactory`

### createDestroyCommand

    public JPMDestroyCommand createDestroyCommand()

  Specified by:
    `createDestroyCommand` in interface `JPMCommandFactory`

### createFindEntityCommand

    public JPMFindEntityCommand createFindEntityCommand()

  Specified by:
    `createFindEntityCommand` in interface `JPMCommandFactory`

### createFindEntitiesCommand

    public JPMFindEntitiesCommand createFindEntitiesCommand()

  Singleton: multiple callers get references to the same command instance.
  Specified by:
    `createFindEntitiesCommand` in interface `JPMCommandFactory`

### createCreateEntityCommand

    public JPMCreateEntityCommand createCreateEntityCommand()

  Specified by:
    `createCreateEntityCommand` in interface `JPMCommandFactory`

### createRemoveEntityCommand

    public JPMRemoveEntityCommand createRemoveEntityCommand()

  Specified by:
    `createRemoveEntityCommand` in interface `JPMCommandFactory`

### createLoadEntityCommand

    public JPMLoadEntityCommand createLoadEntityCommand()

  Specified by:
    `createLoadEntityCommand` in interface `JPMCommandFactory`

### createLoadEntitiesCommand

    public JPMLoadEntitiesCommand createLoadEntitiesCommand()

  Specified by:
    `createLoadEntitiesCommand` in interface `JPMCommandFactory`

### createStoreEntityCommand

    public JPMStoreEntityCommand createStoreEntityCommand()

  Specified by:
    `createStoreEntityCommand` in interface `JPMCommandFactory`

### createActivateEntityCommand

    public JPMActivateEntityCommand createActivateEntityCommand()

  Specified by:
    `createActivateEntityCommand` in interface `JPMCommandFactory`

### createPassivateEntityCommand

    public JPMPassivateEntityCommand createPassivateEntityCommand()

  Specified by:
    `createPassivateEntityCommand` in interface `JPMCommandFactory`

Copyright © 2000 The JBoss Organization. All Rights Reserved.