jasco.runtime.cache
Class CombinedHooksFactory

java.lang.Object
  extended by jasco.runtime.cache.CombinedHooksFactory
Direct Known Subclasses:
InlineJutta

public class CombinedHooksFactory
extends java.lang.Object


Field Summary
protected static javassist.ClassPool classPool
           
static int DYNAMIC_CONTEXT
           
static CombinedHooks EMPTY_CONBINED_HOOKS
           
static int NO_CONTEXT
           
static int STATIC_CONTEXT
           
 
Constructor Summary
CombinedHooksFactory()
           
 
Method Summary
protected  java.lang.String accessField(java.lang.String field)
           
protected  java.lang.String accessFieldHook(HookElement hook)
           
protected  java.lang.String accessFieldHook(HookElement hook, boolean forConstructor)
           
protected  void addCachedResult(CachedAspectRep rep, CombinedHooks hooks)
           
protected  void addField(java.lang.String f, javassist.CtClass clz)
           
protected  void addFieldImpl(java.lang.String f, javassist.CtClass clz)
           
protected  java.lang.String castAdviceArgs(java.lang.String adviceType, java.lang.String resultName)
           
protected  CombinedHooks checkForPredef(java.util.Vector hooks)
           
protected  java.lang.String computeAfterThrowingExceptionType(java.util.Vector hooks)
           
protected  java.lang.String computeAroundThrowingExceptionType(java.util.Vector hooks)
           
protected  HookContextProperty computeContext(java.util.Vector hooks)
           
protected  void computeInit(java.util.Vector replaceVector, java.util.Vector genericReplaceVector, HookContextProperty requiredHooksContext, boolean testReplaces)
           
protected  java.lang.String computeThrowingExceptionType(java.util.Vector hooks, java.lang.String adviceType)
           
 java.lang.String defineOutput(JascoMethod newMethod, HookContextProperty requiredHooksContext)
           
protected  java.lang.String doReturn(java.lang.String var, boolean noReplace, HookContextProperty requiredHooksContext)
           
 java.lang.String generateAdviceArgs(java.lang.String adviceType, HookElement applicableHook)
           
 java.lang.String generateAdviceArgs(java.lang.String adviceType, java.util.Vector applicableHooks, boolean testReplaces)
           
 CombinedHooks generateCachedAspectJavassist(java.util.Vector thehooks, JascoMethod originalMethod)
           
protected  void generateConstructorCode(java.lang.String cname, java.util.Vector hooks, JascoMethod originalMethod, javassist.CtClass fieldClass, CachedAspectRep cachedAspectRep)
           
protected  java.lang.String generateFactoryAspectsForDynamicHookElements(DynamicHookElement el, java.lang.String assignStartCode)
           
protected  java.lang.String generateFactoryInit(DynamicHookElement element, javassist.CtClass fieldClass, int index)
           
protected  boolean generateInvokeCode(java.util.Vector hooks, JascoMethod originalMethod, javassist.CtClass fieldClass, CachedAspectRep cachedAspectRep)
           
protected  java.lang.String generateInvokeInitCode(java.util.Vector hooks, HookContextProperty requiredHooksContext, boolean noReplace, boolean testReplaces)
           
protected  java.lang.String generateOriginalMethodInvoke(JascoMethod method)
           
protected  java.lang.String generateOriginalMethodInvokeNoReplace(JascoMethod method, HookContextProperty requiredHooksContext, boolean outputDefined)
           
protected  java.lang.String generateReplaceSequence(HookContextProperty requiredHooksContext, java.util.Vector replaceVector, boolean testReplaces, javassist.CtClass fieldClass, boolean outputDefined)
           
protected  CombinedHooks getCachedResult(java.lang.String icode, java.lang.String ccode)
           
static CombinedHooksFactory getDefault()
           
protected  java.lang.String getFactoryName(HookElement el)
           
protected  java.lang.String getHookElementName(HookElement el)
           
protected  java.lang.String getHookName(HookElement hook)
           
protected static long getNextClassId()
           
protected  boolean hasCustomNonCachableAspectFactories(java.util.Vector hooks)
           
protected  java.lang.String moreInvokeCode(IHook hook, java.lang.String accessHook, java.lang.String conditionboolean)
           
 boolean requiresInvocationThrowingReturning(java.lang.String adviceType, IHook theHook)
          only for returning/throwing advices, might be that there is no advice declared
protected  void setClearLinkedHooks()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classPool

protected static final javassist.ClassPool classPool

NO_CONTEXT

public static final int NO_CONTEXT
See Also:
Constant Field Values

STATIC_CONTEXT

public static final int STATIC_CONTEXT
See Also:
Constant Field Values

DYNAMIC_CONTEXT

public static final int DYNAMIC_CONTEXT
See Also:
Constant Field Values

EMPTY_CONBINED_HOOKS

public static final CombinedHooks EMPTY_CONBINED_HOOKS
Constructor Detail

CombinedHooksFactory

public CombinedHooksFactory()
Method Detail

getNextClassId

protected static long getNextClassId()

setClearLinkedHooks

protected void setClearLinkedHooks()

getDefault

public static CombinedHooksFactory getDefault()

getHookName

protected java.lang.String getHookName(HookElement hook)

accessField

protected java.lang.String accessField(java.lang.String field)

accessFieldHook

protected java.lang.String accessFieldHook(HookElement hook)

accessFieldHook

protected java.lang.String accessFieldHook(HookElement hook,
                                           boolean forConstructor)

checkForPredef

protected CombinedHooks checkForPredef(java.util.Vector hooks)

addFieldImpl

protected void addFieldImpl(java.lang.String f,
                            javassist.CtClass clz)
                     throws java.lang.Exception
Throws:
java.lang.Exception

addField

protected void addField(java.lang.String f,
                        javassist.CtClass clz)
                 throws java.lang.Exception
Throws:
java.lang.Exception

generateConstructorCode

protected void generateConstructorCode(java.lang.String cname,
                                       java.util.Vector hooks,
                                       JascoMethod originalMethod,
                                       javassist.CtClass fieldClass,
                                       CachedAspectRep cachedAspectRep)
                                throws java.lang.Exception
Throws:
java.lang.Exception

getHookElementName

protected java.lang.String getHookElementName(HookElement el)

getFactoryName

protected java.lang.String getFactoryName(HookElement el)

generateFactoryInit

protected java.lang.String generateFactoryInit(DynamicHookElement element,
                                               javassist.CtClass fieldClass,
                                               int index)
                                        throws java.lang.Exception
Parameters:
element -
fieldClass -
Returns:
Throws:
java.lang.Exception

generateFactoryAspectsForDynamicHookElements

protected java.lang.String generateFactoryAspectsForDynamicHookElements(DynamicHookElement el,
                                                                        java.lang.String assignStartCode)

computeContext

protected HookContextProperty computeContext(java.util.Vector hooks)

hasCustomNonCachableAspectFactories

protected boolean hasCustomNonCachableAspectFactories(java.util.Vector hooks)

generateInvokeCode

protected boolean generateInvokeCode(java.util.Vector hooks,
                                     JascoMethod originalMethod,
                                     javassist.CtClass fieldClass,
                                     CachedAspectRep cachedAspectRep)
                              throws java.lang.Exception
Throws:
java.lang.Exception

moreInvokeCode

protected java.lang.String moreInvokeCode(IHook hook,
                                          java.lang.String accessHook,
                                          java.lang.String conditionboolean)

computeAfterThrowingExceptionType

protected final java.lang.String computeAfterThrowingExceptionType(java.util.Vector hooks)

computeAroundThrowingExceptionType

protected final java.lang.String computeAroundThrowingExceptionType(java.util.Vector hooks)

computeThrowingExceptionType

protected java.lang.String computeThrowingExceptionType(java.util.Vector hooks,
                                                        java.lang.String adviceType)

generateAdviceArgs

public java.lang.String generateAdviceArgs(java.lang.String adviceType,
                                           HookElement applicableHook)

requiresInvocationThrowingReturning

public boolean requiresInvocationThrowingReturning(java.lang.String adviceType,
                                                   IHook theHook)
only for returning/throwing advices, might be that there is no advice declared

Parameters:
adviceType -
Returns:

generateAdviceArgs

public java.lang.String generateAdviceArgs(java.lang.String adviceType,
                                           java.util.Vector applicableHooks,
                                           boolean testReplaces)

defineOutput

public java.lang.String defineOutput(JascoMethod newMethod,
                                     HookContextProperty requiredHooksContext)
                              throws java.lang.Exception
Throws:
java.lang.Exception

castAdviceArgs

protected java.lang.String castAdviceArgs(java.lang.String adviceType,
                                          java.lang.String resultName)

generateReplaceSequence

protected java.lang.String generateReplaceSequence(HookContextProperty requiredHooksContext,
                                                   java.util.Vector replaceVector,
                                                   boolean testReplaces,
                                                   javassist.CtClass fieldClass,
                                                   boolean outputDefined)
                                            throws java.lang.Exception
Throws:
java.lang.Exception

generateInvokeInitCode

protected java.lang.String generateInvokeInitCode(java.util.Vector hooks,
                                                  HookContextProperty requiredHooksContext,
                                                  boolean noReplace,
                                                  boolean testReplaces)
                                           throws java.lang.Exception
Throws:
java.lang.Exception

generateOriginalMethodInvokeNoReplace

protected java.lang.String generateOriginalMethodInvokeNoReplace(JascoMethod method,
                                                                 HookContextProperty requiredHooksContext,
                                                                 boolean outputDefined)
                                                          throws java.lang.Exception
Throws:
java.lang.Exception

generateOriginalMethodInvoke

protected java.lang.String generateOriginalMethodInvoke(JascoMethod method)
                                                 throws java.lang.Exception
Throws:
java.lang.Exception

doReturn

protected java.lang.String doReturn(java.lang.String var,
                                    boolean noReplace,
                                    HookContextProperty requiredHooksContext)
                             throws java.lang.Exception
Throws:
java.lang.Exception

generateCachedAspectJavassist

public CombinedHooks generateCachedAspectJavassist(java.util.Vector thehooks,
                                                   JascoMethod originalMethod)
                                            throws java.lang.Exception
Throws:
java.lang.Exception

addCachedResult

protected void addCachedResult(CachedAspectRep rep,
                               CombinedHooks hooks)

getCachedResult

protected CombinedHooks getCachedResult(java.lang.String icode,
                                        java.lang.String ccode)

computeInit

protected void computeInit(java.util.Vector replaceVector,
                           java.util.Vector genericReplaceVector,
                           HookContextProperty requiredHooksContext,
                           boolean testReplaces)