Package jadex.bdi.model
Class ASMBDIClassGenerator
java.lang.Object
jadex.bdi.model.AbstractAsmBdiClassGenerator
jadex.bdi.model.ASMBDIClassGenerator
- All Implemented Interfaces:
IBDIClassGenerator
- Direct Known Subclasses:
ByteKeepingASMBDIClassGenerator
-
Nested Class Summary
Nested classes/interfaces inherited from class jadex.bdi.model.AbstractAsmBdiClassGenerator
AbstractAsmBdiClassGenerator.MethodBeliefs
-
Field Summary
Fields inherited from class jadex.bdi.model.AbstractAsmBdiClassGenerator
nodehelper, ophelper
Fields inherited from interface jadex.bdi.model.IBDIClassGenerator
AGENT_FIELD_NAME, DYNAMIC_BELIEF_UPDATEMETHOD_PREFIX, GLOBALNAME_FIELD_NAME, INIT_EXPRESSIONS_METHOD_PREFIX, INITARGS_FIELD_NAME
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
enhanceSetter
(String iclname, org.objectweb.asm.tree.MethodNode mn, String belname) Enhance setter method with unobserve oldvalue at the beginning and event call at the endfindBeliefs
(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, Map<String, org.objectweb.asm.tree.ClassNode> others) Find beliefs accessed in methods.findParameters
(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, Map<String, org.objectweb.asm.tree.ClassNode> others, MGoal mgoal) Find parameters accessed in methods.generateBDIClass
(String clname, BDIModel model, ClassLoader dummycl) Generate class.generateBDIClass
(String clname, BDIModel model, ClassLoader dummycl, Map<String, org.objectweb.asm.tree.ClassNode> done) Generate class.protected void
replaceNativeGetter
(String iclname, org.objectweb.asm.tree.MethodNode mn, String belname) Replace native getter for abstract belief.protected void
replaceNativeSetter
(String iclname, org.objectweb.asm.tree.MethodNode mn, String belname) Replace native setter for abstract belief.Class
<?> toClass
(String name, byte[] data, ClassLoader loader, ProtectionDomain domain) Transform byte Array into Class and define it in classloader.Class
<?> toClass
(String name, byte[] data, ClassLoader loader, ProtectionDomain domain, boolean redefine) Transform byte Array into Class and define it in classloader.protected void
transformArrayStores
(org.objectweb.asm.tree.MethodNode mn, BDIModel model, String iclname) Transform array store instructions for beliefs.protected void
transformConstructor
(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, List<String> tododyn, Map<String, org.objectweb.asm.tree.ClassNode> others) Methods inherited from class jadex.bdi.model.AbstractAsmBdiClassGenerator
addBeliefEventsToConditions, findMethodBelief, getGoal, isAgentClass, isAgentOrCapa, isGoal, isGoalClass, isPlan, isPlanClass, isPlanMethod, transformClassNode
-
Constructor Details
-
ASMBDIClassGenerator
public ASMBDIClassGenerator()
-
-
Method Details
-
generateBDIClass
public List<Class<?>> generateBDIClass(String clname, BDIModel model, ClassLoader dummycl) throws JadexBDIGenerationException Generate class.- Specified by:
generateBDIClass
in interfaceIBDIClassGenerator
- Specified by:
generateBDIClass
in classAbstractAsmBdiClassGenerator
- Returns:
- the List of classes generated.
- Throws:
JadexBDIGenerationException
-
generateBDIClass
public List<Class<?>> generateBDIClass(String clname, BDIModel model, ClassLoader dummycl, Map<String, org.objectweb.asm.tree.ClassNode> done) throws JadexBDIGenerationExceptionGenerate class.- Throws:
JadexBDIGenerationException
-
replaceNativeGetter
protected void replaceNativeGetter(String iclname, org.objectweb.asm.tree.MethodNode mn, String belname) Description copied from class:AbstractAsmBdiClassGenerator
Replace native getter for abstract belief.- Specified by:
replaceNativeGetter
in classAbstractAsmBdiClassGenerator
- Parameters:
iclname
-belname
-
-
replaceNativeSetter
protected void replaceNativeSetter(String iclname, org.objectweb.asm.tree.MethodNode mn, String belname) Description copied from class:AbstractAsmBdiClassGenerator
Replace native setter for abstract belief.- Specified by:
replaceNativeSetter
in classAbstractAsmBdiClassGenerator
- Parameters:
iclname
-mn
-belname
-
-
enhanceSetter
Description copied from class:AbstractAsmBdiClassGenerator
Enhance setter method with unobserve oldvalue at the beginning and event call at the end- Specified by:
enhanceSetter
in classAbstractAsmBdiClassGenerator
- Parameters:
iclname
-mn
-belname
-
-
transformConstructor
protected void transformConstructor(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, List<String> tododyn, Map<String, org.objectweb.asm.tree.ClassNode> others) - Specified by:
transformConstructor
in classAbstractAsmBdiClassGenerator
- Parameters:
cn
- the class which contains the constructormn
- The Constructor method nodemodel
-tododyn
- list of dynamic beliefs
-
transformArrayStores
protected void transformArrayStores(org.objectweb.asm.tree.MethodNode mn, BDIModel model, String iclname) Transform array store instructions for beliefs.- Specified by:
transformArrayStores
in classAbstractAsmBdiClassGenerator
-
toClass
Transform byte Array into Class and define it in classloader.- Returns:
- the loaded class or
null
, if the class is not valid, such as Map.entry "inner Classes".
-
toClass
public Class<?> toClass(String name, byte[] data, ClassLoader loader, ProtectionDomain domain, boolean redefine) Transform byte Array into Class and define it in classloader.- Returns:
- the loaded class or
null
, if the class is not valid, such as Map.entry "inner Classes".
-
findBeliefs
protected Set<String> findBeliefs(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, Map<String, org.objectweb.asm.tree.ClassNode> others) Find beliefs accessed in methods.- Specified by:
findBeliefs
in classAbstractAsmBdiClassGenerator
-
findParameters
protected Set<String> findParameters(org.objectweb.asm.tree.ClassNode cn, org.objectweb.asm.tree.MethodNode mn, BDIModel model, Map<String, org.objectweb.asm.tree.ClassNode> others, MGoal mgoal) Find parameters accessed in methods.- Specified by:
findParameters
in classAbstractAsmBdiClassGenerator
-