public abstract class AbstractAsmBdiClassGenerator extends java.lang.Object implements IBDIClassGenerator
Modifier and Type | Class and Description |
---|---|
static class |
AbstractAsmBdiClassGenerator.MethodBeliefs
Store which beliefs are accessed in a method.
|
Modifier and Type | Field and Description |
---|---|
protected NodeHelper |
nodehelper |
protected OpcodeHelper |
ophelper |
AGENT_FIELD_NAME, DYNAMIC_BELIEF_UPDATEMETHOD_PREFIX, GLOBALNAME_FIELD_NAME, INIT_EXPRESSIONS_METHOD_PREFIX
Constructor and Description |
---|
AbstractAsmBdiClassGenerator() |
Modifier and Type | Method and Description |
---|---|
protected void |
addBeliefEventsToConditions(org.objectweb.asm.tree.ClassNode cn,
java.lang.ClassLoader dummycl,
java.util.List<MCondition> conditions,
jadex.commons.collection.MultiCollection<java.lang.String,AbstractAsmBdiClassGenerator.MethodBeliefs> methodbeliefs,
BDIModel model) |
static void |
checkEnhanced(java.lang.Class<?> clazz)
Check if a bdi agent class was enhanced.
|
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
|
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.
|
abstract java.util.List<java.lang.Class<?>> |
generateBDIClass(java.lang.String clname,
BDIModel micromodel,
java.lang.ClassLoader cl)
Generate class, including inner classes.
|
protected boolean |
isAgentClass(org.objectweb.asm.tree.ClassNode classNode)
Check whether a given ClassNode is an Agent (or Capability) class.
|
protected boolean |
isAgentOrCapa(java.lang.String annotationDescription)
Check whether a given Annotation marks an Agent or Capability.
|
static boolean |
isEnhanced(java.lang.Class<?> clazz)
Returns whether a class is already enhanced.
|
protected boolean |
isGoal(java.lang.String annotationDescription)
Check whether a given Annotation marks a goal.
|
protected boolean |
isPlan(java.lang.String annotationDescription)
Check whether a given Annotation marks a plan.
|
protected boolean |
isPlanClass(org.objectweb.asm.tree.ClassNode classNode) |
protected boolean |
isPlanMethod(org.objectweb.asm.tree.MethodNode methodNode) |
protected abstract void |
replaceNativeGetter(java.lang.String iclname,
org.objectweb.asm.tree.MethodNode nativeGetter,
java.lang.String belname)
Replace native getter for abstract belief.
|
protected abstract void |
replaceNativeSetter(java.lang.String iclname,
org.objectweb.asm.tree.MethodNode nativeSetter,
java.lang.String belname)
Replace native setter for abstract belief.
|
protected abstract void |
transformArrayStores(org.objectweb.asm.tree.MethodNode mn,
BDIModel model,
java.lang.String iclname) |
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) |
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) |
protected OpcodeHelper ophelper
protected NodeHelper nodehelper
public abstract java.util.List<java.lang.Class<?>> generateBDIClass(java.lang.String clname, BDIModel micromodel, java.lang.ClassLoader cl)
IBDIClassGenerator
generateBDIClass
in interface IBDIClassGenerator
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)
cn
- iclname
- model
- protected void addBeliefEventsToConditions(org.objectweb.asm.tree.ClassNode cn, java.lang.ClassLoader dummycl, java.util.List<MCondition> conditions, jadex.commons.collection.MultiCollection<java.lang.String,AbstractAsmBdiClassGenerator.MethodBeliefs> methodbeliefs, BDIModel model)
cn
- dummycl
- conditions
- methodbeliefs
- model
- protected abstract void transformArrayStores(org.objectweb.asm.tree.MethodNode mn, BDIModel model, java.lang.String iclname)
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)
cn
- the class which contains the constructormn
- The Constructor method nodemodel
- tododyn
- list of dynamic beliefsprotected abstract void replaceNativeGetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode nativeGetter, java.lang.String belname)
iclname
- nativeSetter
- belname
- protected abstract void replaceNativeSetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode nativeSetter, java.lang.String belname)
iclname
- nativeSetter
- belname
- protected abstract void enhanceSetter(java.lang.String iclname, org.objectweb.asm.tree.MethodNode setter, java.lang.String belname)
iclname
- setter
- belname
- 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)
protected boolean isAgentClass(org.objectweb.asm.tree.ClassNode classNode)
classNode
- protected boolean isAgentOrCapa(java.lang.String annotationDescription)
annotationDescription
- description of the annotationprotected boolean isGoal(java.lang.String annotationDescription)
annotationDescription
- description of the annotationprotected boolean isPlan(java.lang.String annotationDescription)
annotationDescription
- description of the annotationprotected boolean isPlanClass(org.objectweb.asm.tree.ClassNode classNode)
classNode
- protected boolean isPlanMethod(org.objectweb.asm.tree.MethodNode methodNode)
methodNode
- public static boolean isEnhanced(java.lang.Class<?> clazz)
clazz
- public static void checkEnhanced(java.lang.Class<?> clazz)
java.lang.RuntimeException
- if was not enhanced.