jasco.runtime.inline
Class InlineJutta

java.lang.Object
  extended by jasco.runtime.cache.CombinedHooksFactory
      extended by jasco.runtime.inline.InlineJutta

public class InlineJutta
extends CombinedHooksFactory


Field Summary
 
Fields inherited from class jasco.runtime.cache.CombinedHooksFactory
classPool, DYNAMIC_CONTEXT, NO_CONTEXT, STATIC_CONTEXT
 
Constructor Summary
InlineJutta(javassist.CtClass clazz)
           
 
Method Summary
protected  java.lang.String accessField(java.lang.String field)
           
protected  void addField(java.lang.String f, javassist.CtClass clz)
           
protected  void addFieldClassInstance(javassist.CtClass fieldClass)
           
protected  boolean allHooksHaveSameArgs(java.util.Vector hooks, java.lang.String adviceType)
          Checks whether all hooks have the same expected jp args and jp return type
protected  java.lang.String castAdviceArgs(java.lang.String adviceType)
           
protected  boolean castReturn()
           
protected  HookContextProperty computeAdviceContext(java.lang.String adviceType, java.util.Vector advices)
           
protected  void computeInit(java.util.Vector replaceVector, 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)
           
protected  java.lang.reflect.Method findReflectMethod(Cutpoint hook, java.lang.String adviceType)
          finds the most specific advice method, if only default method is available, null is returned
 java.lang.String generateAdviceArgs(java.lang.String adviceType, java.util.Vector advices)
           
protected  java.lang.String generateInvokeInitCode(java.util.Vector hooks, HookContextProperty requiredHooksContext, boolean noReplace, boolean testReplaces)
           
protected  java.lang.String generateNonReplaceAdviceArgs(HookContextProperty requiredContext, java.lang.String adviceType, Cutpoint hook)
           
protected  java.lang.String generateOriginalMethodInvokeNoReplace(JascoMethod method, HookContextProperty requiredHooksContext, boolean outputDefined)
           
protected  java.lang.String generateReplaceAdviceArgs(HookContextProperty requiredContext, java.lang.String adviceType, java.util.Vector hooks)
           
protected  java.lang.String generateReplaceSequence(HookContextProperty requiredHooksContext, java.util.Vector replaceVector, boolean testReplaces, javassist.CtClass fieldClass, boolean outputDefined)
           
protected  java.lang.String getFieldClassName()
           
protected  JascoMethod getJascoMethod()
           
protected  javassist.CtMethod getOrigMethod()
           
protected  java.lang.String getSimpleFieldClassName()
           
protected  java.lang.String getThisInstance()
           
protected  boolean hooksExactlyDefineArgs(java.util.Vector hooks, java.lang.String adviceType)
          prereq: all hooks have the same args and return type!!!
protected  javassist.CtMethod initCtMethod(JascoMethod method)
           
protected  boolean inlineReplaceCompilingPossible(java.util.Vector hooks, HookContextProperty requiredHooksContext, boolean testReplaces)
           
protected  void makeFieldsStaticPublic(javassist.CtClass clazz)
           
protected  java.lang.String moreInvokeCode(Cutpoint hook, java.lang.String accessHook, java.lang.String conditionboolean)
           
 byte[] process(JascoMethod originalMethod, java.util.Vector orighooks, java.lang.ClassLoader loader)
           
protected  void saveInlineCode(java.util.Vector hooks, javassist.CtMethod method)
           
 
Methods inherited from class jasco.runtime.cache.CombinedHooksFactory
accessFieldHook, addCachedResult, addFieldImpl, checkForPredef, computeAfterThrowingExceptionType, computeAroundThrowingExceptionType, computeContext, generateAdviceArgs, generateCachedAspectJavassist, generateConstructorCode, generateInvokeCode, generateOriginalMethodInvoke, getCachedResult, getDefault, getHookName, getNextClassId, setClearLinkedHooks, setClearProceedCheck
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InlineJutta

public InlineJutta(javassist.CtClass clazz)
Method Detail

accessField

protected java.lang.String accessField(java.lang.String field)
Overrides:
accessField in class CombinedHooksFactory

getFieldClassName

protected java.lang.String getFieldClassName()

getSimpleFieldClassName

protected java.lang.String getSimpleFieldClassName()

getOrigMethod

protected javassist.CtMethod getOrigMethod()

getJascoMethod

protected JascoMethod getJascoMethod()

process

public byte[] process(JascoMethod originalMethod,
                      java.util.Vector orighooks,
                      java.lang.ClassLoader loader)
               throws java.lang.Exception
Throws:
java.lang.Exception

computeInit

protected void computeInit(java.util.Vector replaceVector,
                           HookContextProperty requiredHooksContext,
                           boolean testReplaces)
Overrides:
computeInit in class CombinedHooksFactory

saveInlineCode

protected void saveInlineCode(java.util.Vector hooks,
                              javassist.CtMethod method)

addFieldClassInstance

protected void addFieldClassInstance(javassist.CtClass fieldClass)
                              throws java.lang.Exception
Throws:
java.lang.Exception

generateReplaceSequence

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

castReturn

protected boolean castReturn()

inlineReplaceCompilingPossible

protected boolean inlineReplaceCompilingPossible(java.util.Vector hooks,
                                                 HookContextProperty requiredHooksContext,
                                                 boolean testReplaces)

getThisInstance

protected java.lang.String getThisInstance()

generateInvokeInitCode

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

computeAdviceContext

protected HookContextProperty computeAdviceContext(java.lang.String adviceType,
                                                   java.util.Vector advices)

generateAdviceArgs

public java.lang.String generateAdviceArgs(java.lang.String adviceType,
                                           java.util.Vector advices)
Overrides:
generateAdviceArgs in class CombinedHooksFactory

hooksExactlyDefineArgs

protected boolean hooksExactlyDefineArgs(java.util.Vector hooks,
                                         java.lang.String adviceType)
prereq: all hooks have the same args and return type!!! checks whether hooks have the same return type and expected jp arguments as the jp method itself

Parameters:
hooks -
adviceType -
Returns:

allHooksHaveSameArgs

protected boolean allHooksHaveSameArgs(java.util.Vector hooks,
                                       java.lang.String adviceType)
Checks whether all hooks have the same expected jp args and jp return type

Parameters:
hooks -
adviceType -
Returns:

generateReplaceAdviceArgs

protected java.lang.String generateReplaceAdviceArgs(HookContextProperty requiredContext,
                                                     java.lang.String adviceType,
                                                     java.util.Vector hooks)

castAdviceArgs

protected java.lang.String castAdviceArgs(java.lang.String adviceType)
Overrides:
castAdviceArgs in class CombinedHooksFactory

generateNonReplaceAdviceArgs

protected java.lang.String generateNonReplaceAdviceArgs(HookContextProperty requiredContext,
                                                        java.lang.String adviceType,
                                                        Cutpoint hook)

findReflectMethod

protected java.lang.reflect.Method findReflectMethod(Cutpoint hook,
                                                     java.lang.String adviceType)
finds the most specific advice method, if only default method is available, null is returned

Parameters:
hook -
adviceType -
Returns:

computeThrowingExceptionType

protected java.lang.String computeThrowingExceptionType(java.util.Vector hooks,
                                                        java.lang.String adviceType)
Overrides:
computeThrowingExceptionType in class CombinedHooksFactory

defineOutput

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

generateOriginalMethodInvokeNoReplace

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

doReturn

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

initCtMethod

protected javassist.CtMethod initCtMethod(JascoMethod method)
                                   throws java.lang.Exception
Throws:
java.lang.Exception

makeFieldsStaticPublic

protected void makeFieldsStaticPublic(javassist.CtClass clazz)
                               throws java.lang.Exception
Throws:
java.lang.Exception

addField

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

moreInvokeCode

protected java.lang.String moreInvokeCode(Cutpoint hook,
                                          java.lang.String accessHook,
                                          java.lang.String conditionboolean)
Overrides:
moreInvokeCode in class CombinedHooksFactory