class CachingGenerator extends java.lang.Object implements RuleMethodProcessor
Modifier and Type | Class and Description |
---|---|
static class |
CachingGenerator.Arguments |
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
cacheFieldName |
private ParserClassNode |
classNode |
private org.objectweb.asm.tree.AbstractInsnNode |
current |
private org.objectweb.asm.tree.InsnList |
instructions |
private RuleMethod |
method |
Constructor and Description |
---|
CachingGenerator() |
Modifier and Type | Method and Description |
---|---|
boolean |
appliesTo(ParserClassNode classNode,
RuleMethod method) |
private java.lang.String |
findUnusedCacheFieldName() |
private void |
generateArmProxyMatcher() |
private void |
generateCacheHitReturn() |
private void |
generateGetFromCache() |
private void |
generatePushNewParameterObjectArray(org.objectweb.asm.Type[] paramTypes) |
private void |
generatePushParameterAsObject(org.objectweb.asm.Type[] paramTypes,
int parameterNr) |
private void |
generateStoreInCache() |
private void |
generateStoreNewProxyMatcher() |
boolean |
hasField(java.lang.String fieldName) |
private void |
insert(org.objectweb.asm.tree.AbstractInsnNode instruction) |
void |
process(ParserClassNode classNode,
RuleMethod method) |
private void |
seekToReturnInstruction() |
private ParserClassNode classNode
private RuleMethod method
private org.objectweb.asm.tree.InsnList instructions
private org.objectweb.asm.tree.AbstractInsnNode current
private java.lang.String cacheFieldName
public boolean appliesTo(ParserClassNode classNode, RuleMethod method)
appliesTo
in interface RuleMethodProcessor
public void process(ParserClassNode classNode, RuleMethod method) throws java.lang.Exception
process
in interface RuleMethodProcessor
java.lang.Exception
private void generateCacheHitReturn()
private void generateGetFromCache()
private java.lang.String findUnusedCacheFieldName()
public boolean hasField(java.lang.String fieldName)
private void generatePushNewParameterObjectArray(org.objectweb.asm.Type[] paramTypes)
private void generatePushParameterAsObject(org.objectweb.asm.Type[] paramTypes, int parameterNr)
private void generateStoreNewProxyMatcher()
private void seekToReturnInstruction()
private void generateArmProxyMatcher()
private void generateStoreInCache()
private void insert(org.objectweb.asm.tree.AbstractInsnNode instruction)