jasco.runtime.inline
Class InlineJutta
java.lang.Object
jasco.runtime.cache.CombinedHooksFactory
jasco.runtime.inline.InlineJutta
public class InlineJutta
- extends CombinedHooksFactory
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 |
InlineJutta
public InlineJutta(javassist.CtClass clazz)
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