Package jadex.bdiv3
Class AbstractAsmBdiClassGenerator
- java.lang.Object
 - 
- jadex.bdiv3.AbstractAsmBdiClassGenerator
 
 
- 
- All Implemented Interfaces:
 IBDIClassGenerator
- Direct Known Subclasses:
 ASMBDIClassGenerator
public abstract class AbstractAsmBdiClassGenerator extends java.lang.Object implements IBDIClassGenerator
ASM Generator base class 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAbstractAsmBdiClassGenerator.MethodBeliefsStore which beliefs are accessed in a method. 
- 
Field Summary
Fields Modifier and Type Field Description protected NodeHelpernodehelperprotected OpcodeHelperophelper- 
Fields inherited from interface jadex.bdiv3.IBDIClassGenerator
AGENT_FIELD_NAME, DYNAMIC_BELIEF_UPDATEMETHOD_PREFIX, GLOBALNAME_FIELD_NAME, INIT_EXPRESSIONS_METHOD_PREFIX 
 - 
 
- 
Constructor Summary
Constructors Constructor Description AbstractAsmBdiClassGenerator() 
- 
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidaddBeliefEventsToConditions(org.objectweb.asm.tree.ClassNode cn, java.lang.ClassLoader dummycl, java.util.List<MCondition> conditions, MultiCollection<java.lang.String,AbstractAsmBdiClassGenerator.MethodBeliefs> methodbeliefs, MultiCollection<java.lang.String,AbstractAsmBdiClassGenerator.MethodBeliefs> methodparams, BDIModel model)static voidcheckEnhanced(java.lang.Class<?> clazz)Check if a bdi agent class was enhanced.protected abstract voidenhanceSetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode setter, java.lang.String belname)Enhance setter method with unobserve oldvalue at the beginning and event call at the endprotected abstract java.util.Set<java.lang.String>findBeliefs(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others)Find the beliefs used in a method.protected AbstractAsmBdiClassGenerator.MethodBeliefsfindMethodBelief(java.util.Collection<AbstractAsmBdiClassGenerator.MethodBeliefs> mbs, java.lang.reflect.Method m, java.lang.reflect.Constructor<?> c)protected abstract java.util.Set<java.lang.String>findParameters(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others, MGoal mgoal)Find the beliefs used in a method.abstract java.util.List<java.lang.Class<?>>generateBDIClass(java.lang.String clname, BDIModel micromodel, java.lang.ClassLoader cl)Generate class, including inner classes.protected MGoalgetGoal(org.objectweb.asm.tree.ClassNode cn, BDIModel model, java.lang.ClassLoader cl)Get a goal per class node.protected booleanisAgentClass(org.objectweb.asm.tree.ClassNode classNode)Check whether a given ClassNode is an Agent (or Capability) class.protected booleanisAgentOrCapa(java.lang.String annotationDescription)Check whether a given Annotation marks an Agent or Capability.static booleanisEnhanced(SClassReader.ClassFileInfo clazzfileinfo)Returns whether a class is already enhanced.static booleanisEnhanced(java.lang.Class<?> clazz)Returns whether a class is already enhanced.protected booleanisGoal(java.lang.String annotationDescription)Check whether a given Annotation marks a goal.protected booleanisGoalClass(org.objectweb.asm.tree.ClassNode classNode)protected booleanisPlan(java.lang.String annotationDescription)Check whether a given Annotation marks a plan.protected booleanisPlanClass(org.objectweb.asm.tree.ClassNode classNode)protected booleanisPlanMethod(org.objectweb.asm.tree.MethodNode methodNode)protected abstract voidreplaceNativeGetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode nativeGetter, java.lang.String belname)Replace native getter for abstract belief.protected abstract voidreplaceNativeSetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode nativeSetter, java.lang.String belname)Replace native setter for abstract belief.protected abstract voidtransformArrayStores(org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.lang.String iclname)protected voidtransformClassNode(org.objectweb.asm.tree.ClassNode cn, java.lang.String iclname, BDIModel model, java.lang.ClassLoader dummycl, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others)protected abstract voidtransformConstructor(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.util.List<java.lang.String> tododyn, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others) 
 - 
 
- 
- 
Field Detail
- 
ophelper
protected OpcodeHelper ophelper
 
- 
nodehelper
protected NodeHelper nodehelper
 
 - 
 
- 
Method Detail
- 
generateBDIClass
public abstract java.util.List<java.lang.Class<?>> generateBDIClass(java.lang.String clname, BDIModel micromodel, java.lang.ClassLoader cl) throws JadexBDIGenerationExceptionDescription copied from interface:IBDIClassGeneratorGenerate class, including inner classes.- Specified by:
 generateBDIClassin interfaceIBDIClassGenerator- Returns:
 - the List of classes generated.
 - Throws:
 JadexBDIGenerationException
 
- 
transformClassNode
protected void transformClassNode(org.objectweb.asm.tree.ClassNode cn, java.lang.String iclname, BDIModel model, java.lang.ClassLoader dummycl, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others)- Parameters:
 cn-iclname-model-
 
- 
getGoal
protected MGoal getGoal(org.objectweb.asm.tree.ClassNode cn, BDIModel model, java.lang.ClassLoader cl)
Get a goal per class node.- Parameters:
 cn-- Returns:
 
 
- 
addBeliefEventsToConditions
protected void addBeliefEventsToConditions(org.objectweb.asm.tree.ClassNode cn, java.lang.ClassLoader dummycl, java.util.List<MCondition> conditions, MultiCollection<java.lang.String,AbstractAsmBdiClassGenerator.MethodBeliefs> methodbeliefs, MultiCollection<java.lang.String,AbstractAsmBdiClassGenerator.MethodBeliefs> methodparams, BDIModel model)- Parameters:
 cn-dummycl-conditions-methodbeliefs-model-
 
- 
findMethodBelief
protected AbstractAsmBdiClassGenerator.MethodBeliefs findMethodBelief(java.util.Collection<AbstractAsmBdiClassGenerator.MethodBeliefs> mbs, java.lang.reflect.Method m, java.lang.reflect.Constructor<?> c)
- Parameters:
 mbs-m-c-- Returns:
 
 
- 
transformArrayStores
protected abstract void transformArrayStores(org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.lang.String iclname) 
- 
transformConstructor
protected abstract void transformConstructor(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.util.List<java.lang.String> tododyn, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others)- Parameters:
 cn- the class which contains the constructormn- The Constructor method nodemodel-tododyn- list of dynamic beliefs
 
- 
replaceNativeGetter
protected abstract void replaceNativeGetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode nativeGetter, java.lang.String belname)Replace native getter for abstract belief.- Parameters:
 iclname-nativeSetter-belname-
 
- 
replaceNativeSetter
protected abstract void replaceNativeSetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode nativeSetter, java.lang.String belname)Replace native setter for abstract belief.- Parameters:
 iclname-nativeSetter-belname-
 
- 
enhanceSetter
protected abstract void enhanceSetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode setter, java.lang.String belname)Enhance setter method with unobserve oldvalue at the beginning and event call at the end- Parameters:
 iclname-setter-belname-
 
- 
findBeliefs
protected abstract java.util.Set<java.lang.String> findBeliefs(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others)Find the beliefs used in a method. 
- 
findParameters
protected abstract java.util.Set<java.lang.String> findParameters(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.util.Map<java.lang.String,org.objectweb.asm.tree.ClassNode> others, MGoal mgoal)Find the beliefs used in a method. 
- 
isAgentClass
protected boolean isAgentClass(org.objectweb.asm.tree.ClassNode classNode)
Check whether a given ClassNode is an Agent (or Capability) class.- Parameters:
 classNode-- Returns:
 - true, if the given classNode is an Agent or Capability class.
 
 
- 
isAgentOrCapa
protected boolean isAgentOrCapa(java.lang.String annotationDescription)
Check whether a given Annotation marks an Agent or Capability.- Parameters:
 annotationDescription- description of the annotation- Returns:
 - true, if the given annotationDescription marks an Agent or Capability class.
 
 
- 
isGoal
protected boolean isGoal(java.lang.String annotationDescription)
Check whether a given Annotation marks a goal.- Parameters:
 annotationDescription- description of the annotation- Returns:
 - true, if the given annotationDescription marks a goal.
 
 
- 
isPlan
protected boolean isPlan(java.lang.String annotationDescription)
Check whether a given Annotation marks a plan.- Parameters:
 annotationDescription- description of the annotation- Returns:
 - true, if the given annotationDescription marks a plan.
 
 
- 
isPlanClass
protected boolean isPlanClass(org.objectweb.asm.tree.ClassNode classNode)
- Parameters:
 classNode-- Returns:
 
 
- 
isGoalClass
protected boolean isGoalClass(org.objectweb.asm.tree.ClassNode classNode)
- Parameters:
 classNode-- Returns:
 
 
- 
isPlanMethod
protected boolean isPlanMethod(org.objectweb.asm.tree.MethodNode methodNode)
- Parameters:
 methodNode-- Returns:
 
 
- 
isEnhanced
public static boolean isEnhanced(java.lang.Class<?> clazz)
Returns whether a class is already enhanced.- Parameters:
 clazz-- Returns:
 - true, if already enhanced, else false.
 
 
- 
isEnhanced
public static boolean isEnhanced(SClassReader.ClassFileInfo clazzfileinfo)
Returns whether a class is already enhanced.- Parameters:
 clazz- The clazz info.- Returns:
 - true, if already enhanced, else false.
 
 
- 
checkEnhanced
public static void checkEnhanced(java.lang.Class<?> clazz)
Check if a bdi agent class was enhanced.- Throws:
 java.lang.RuntimeException- if was not enhanced.
 
 - 
 
 -