org.objectweb.jonas_ejb.container.jorm
Class MedorFactory

java.lang.Object
  extended by org.objectweb.jonas_ejb.container.JFactory
      extended by org.objectweb.jonas_ejb.container.JEntityFactory
          extended by org.objectweb.jonas_ejb.container.jorm.JormFactory
              extended by org.objectweb.jonas_ejb.container.jorm.MedorFactory
All Implemented Interfaces:
javax.ejb.TimerService, BeanFactory, org.objectweb.jorm.api.PClassMapping, org.objectweb.jorm.api.PClassMappingCtrl
Direct Known Subclasses:
RdbFactory

public abstract class MedorFactory
extends JormFactory

This class does the initialisation of Medor and permits to access to the query. The optimisation of the query tree is done during the first time that it is used.

Author:
S.Chassande-Barrioz

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.objectweb.jorm.api.PClassMapping
org.objectweb.jorm.api.PClassMapping.ReferenceConfigurator
 
Field Summary
protected  org.objectweb.medor.optim.api.ExecPlanGenerator indexesGenerator
           
protected  org.objectweb.jorm.metainfo.api.Manager miManager
           
protected  boolean optimizeAtInit
           
protected  org.objectweb.medor.optim.api.QueryTransformer queryTransformer
          This field references the query transformer which must be used to optimize the medor requests.
 
Fields inherited from class org.objectweb.jonas_ejb.container.jorm.JormFactory
ecd, mapped, mapper, relNonInit
 
Fields inherited from class org.objectweb.jonas_ejb.container.JEntityFactory
bctxlist, cmp2, datasource, hardLimit, home, instanceCount, localhome, lockPolicy, prefetch, readTimeout, reentrant, shared, txlist
 
Fields inherited from class org.objectweb.jonas_ejb.container.JFactory
beanclass, cont, dd, ejb10Env, ejbname, ejbTimeoutSignature, isClusterReplicated, JNDICtx, maxCacheSize, minPoolSize, myTimerService, naming, passivationDir, stopped, timerTxAttr, tm, txbeanmanaged, wm
 
Fields inherited from interface org.objectweb.jorm.api.PClassMapping
CLEANUP_DONOTHING, CLEANUP_REMOVEALL, CLEANUP_REMOVEDATA, CREATE_STRUCTURE_IF_NEEDED
 
Constructor Summary
MedorFactory()
           
 
Method Summary
 org.objectweb.medor.tuple.api.TupleCollection evaluate(java.lang.Object conn, int methodIndex, org.objectweb.medor.expression.api.ParameterOperand[] parameters)
          It evaluate an optimized medor request according to the specified parameters To evalute the medor request the query evaluator is used.
 org.objectweb.medor.eval.api.QueryEvaluator getOptimizedRequest(MethodCmp2Desc methodDesc)
          It retrieves a medor request which is evaluable and optimized.
 void init(EntityDesc ed, JContainer c, java.lang.String mapperName)
          Initialization of the factory.
 
Methods inherited from class org.objectweb.jonas_ejb.container.jorm.JormFactory
configurePnc, createNewContext, decodePK, encodePK, getConnection, getJEntitySwitch, getMapper, initGenClassPrefetch, newGCMInstance, releaseConnection, setMapper, stop
 
Methods inherited from class org.objectweb.jonas_ejb.container.JEntityFactory
bindEJB, calculateAutomaticPk, checkTransaction, createNewInstance, createTimer, createTimer, createTimer, createTimer, dirtyInstances, dummyFinderException, existEJB, getCacheSize, getCurrentWaiters, getDataSource, getDeadlockTimeout, getEJB, getEntityCounters, getHome, getInactivityTimeout, getJContext, getLocalHome, getLockPolicy, getMaxWaitTime, getPassivationTimeout, getPoolSize, getReadTimeout, getSelectForUpdate, getTimers, getTimerService, init, initInstancePool, isCMP2, isDeadLocked, isHardLimit, isPrefetch, isReentrant, isShared, rebindEJB, reduceCache, registerContext, registerEJB, releaseJContext, releaseJContext, removeEJB, removeTxListener, setDeadlockTimeout, setInactivityTimeout, setMaxWaitTime, setPassivationTimeout, storeInstances, syncDirty, syncForFind, syncForSelect, synchronizeEntities, tooManyInstances, unregisterContext
 
Methods inherited from class org.objectweb.jonas_ejb.container.JFactory
checkJonasVersion, checkSecurity, checkTransactionContainer, getContainer, getDeploymentDescriptor, getEjb10Environment, getEJBName, getEjbTimeoutSignature, getEnv, getInitialContext, getMaxCacheSize, getMinPoolSize, getPassivationDir, getTimerTxAttribute, getTransactionManager, getWorkManager, init, isClassAvailable, isStopped, isTxBeanManaged, myClassLoader, postInvoke, postInvokeRemote, preInvoke, preInvokeRemote, resetComponentContext, restartTimers, setComponentContext, stopContainer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.objectweb.jorm.api.PClassMapping
addAssociation, classDefined, configureRefFields, createPBinding, exist, getAssociationTable, getClassName, getClassPNameCoder, getDecodedPName, getGenClassMapping, getGenClassMapping, getIndexesTable, getMetaInfo, getPBinder, getPMapper, getPNameCoder, getPNameCoder, getPNameIterator, getPNameIterator, getProjectName, getPType, getSubPCMs, init, init, isConform, match, read, read, read, resolve, setPBinder, write
 
Methods inherited from interface org.objectweb.jorm.api.PClassMappingCtrl
setClassPNameCoder, setGenClassMapping, setGenClassMapping, setPNameCoder, setPNameCoder, setProjectName
 

Field Detail

queryTransformer

protected org.objectweb.medor.optim.api.QueryTransformer queryTransformer
This field references the query transformer which must be used to optimize the medor requests.


miManager

protected org.objectweb.jorm.metainfo.api.Manager miManager

indexesGenerator

protected org.objectweb.medor.optim.api.ExecPlanGenerator indexesGenerator

optimizeAtInit

protected boolean optimizeAtInit
Constructor Detail

MedorFactory

public MedorFactory()
Method Detail

getOptimizedRequest

public org.objectweb.medor.eval.api.QueryEvaluator getOptimizedRequest(MethodCmp2Desc methodDesc)
                                                                throws org.objectweb.medor.api.MedorException
It retrieves a medor request which is evaluable and optimized. The method index is translate into a request index, then the found request is optimized if it is not already.

Parameters:
methodDesc - is the MethodCmp2Desc of the finder or select method.
Returns:
the QueryTree optimized which is associated to the method index
Throws:
org.objectweb.medor.api.MedorException

evaluate

public org.objectweb.medor.tuple.api.TupleCollection evaluate(java.lang.Object conn,
                                                              int methodIndex,
                                                              org.objectweb.medor.expression.api.ParameterOperand[] parameters)
                                                       throws org.objectweb.medor.api.MedorException
It evaluate an optimized medor request according to the specified parameters To evalute the medor request the query evaluator is used.

Parameters:
conn - is the connection handle
methodIndex - is method index which permits to find a medor request.
parameters - is the parameters (key=parameter name / value=parameter value)
Returns:
TupleCollection is the result of the request
Throws:
org.objectweb.medor.api.MedorException

init

public void init(EntityDesc ed,
                 JContainer c,
                 java.lang.String mapperName)
Description copied from class: JormFactory
Initialization of the factory. This is called just after the newInstance() from the JContainer (addBean method)

Overrides:
init in class JormFactory