Class ExpressionResolver
- java.lang.Object
-
- org.openjdk.jmc.agent.util.expression.ExpressionResolver
-
public class ExpressionResolver extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<?>
caller
private java.lang.String
expression
private java.util.Iterator<java.lang.String>
iterator
private ReferenceChain
referenceChain
private java.util.List<java.lang.String>
tokens
-
Constructor Summary
Constructors Modifier Constructor Description private
ExpressionResolver(java.lang.Class<?> caller, java.lang.String expression)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
enterClassState(java.lang.Class<?> targetClass)
private void
enterFieldReferenceState(java.lang.Class<?> memberingClass, java.lang.reflect.Field field, boolean fromStaticContext)
private void
enterIllegalState(java.lang.String msg)
private void
enterIllegalState(java.lang.Throwable throwable)
private void
enterInnerClassState(java.lang.Class<?> targetClass)
private void
enterNestedFieldReferenceState(java.lang.Class<?> enclosingClass, java.lang.reflect.Field field)
private void
enterNestMateClass(java.lang.Class<?> targetClass)
private void
enterOuterClassState(java.lang.Class<?> targetClass)
private void
enterPackageState(java.lang.Package pkg)
private void
enterSameClassState()
private void
enterStartState()
private void
enterSuperState(java.lang.Class<?> enclosingClass)
private void
enterThisState(java.lang.Class<?> enclosingClass)
static ReferenceChain
solve(java.lang.Class<?> caller, java.lang.String expression)
private boolean
tryEnterClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName)
private boolean
tryEnterClassState(java.lang.Package pkg, java.lang.String simpleClassName)
private boolean
tryEnterClassState(java.lang.String simpleClassName)
private boolean
tryEnterFieldReferenceState(java.lang.Class<?> memberingClass, java.lang.String fieldName, boolean fromStaticContext)
private boolean
tryEnterInnerClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName)
private boolean
tryEnterNestMateClass(java.lang.Class<?> currentClass, java.lang.String simpleClassName)
private boolean
tryEnterOuterClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName)
private boolean
tryEnterOuterClassState(java.lang.Package pkg, java.lang.String className)
private boolean
tryEnterOuterClassState(java.lang.String simpleClassName)
private boolean
tryEnterPackageState(java.lang.Package pkg, java.lang.String pqpnPrefixedExpression)
private boolean
tryEnterPackageState(java.lang.String fqpnPrefixedExpression)
private boolean
tryEnterSameClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName)
private boolean
tryEnterSameClassState(java.lang.Package pkg, java.lang.String simpleClassName)
private boolean
tryEnterSameClassState(java.lang.String simpleClassName)
private boolean
tryEnterSuperState(java.lang.Class<?> targetClass, java.lang.String superLiteral)
private boolean
tryEnterThisState(java.lang.Class<?> enclosingClass, java.lang.String thisLiteral)
private boolean
tryEntryNestedFieldReferenceState(java.lang.String fieldName)
-
-
-
Field Detail
-
caller
private final java.lang.Class<?> caller
-
expression
private final java.lang.String expression
-
tokens
private java.util.List<java.lang.String> tokens
-
iterator
private java.util.Iterator<java.lang.String> iterator
-
referenceChain
private ReferenceChain referenceChain
-
-
Method Detail
-
solve
public static ReferenceChain solve(java.lang.Class<?> caller, java.lang.String expression) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterStartState
private void enterStartState() throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterThisState
private boolean tryEnterThisState(java.lang.Class<?> enclosingClass, java.lang.String thisLiteral) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterThisState
private void enterThisState(java.lang.Class<?> enclosingClass) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterSuperState
private boolean tryEnterSuperState(java.lang.Class<?> targetClass, java.lang.String superLiteral) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterSuperState
private void enterSuperState(java.lang.Class<?> enclosingClass) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterFieldReferenceState
private boolean tryEnterFieldReferenceState(java.lang.Class<?> memberingClass, java.lang.String fieldName, boolean fromStaticContext) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterFieldReferenceState
private void enterFieldReferenceState(java.lang.Class<?> memberingClass, java.lang.reflect.Field field, boolean fromStaticContext) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEntryNestedFieldReferenceState
private boolean tryEntryNestedFieldReferenceState(java.lang.String fieldName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterNestedFieldReferenceState
private void enterNestedFieldReferenceState(java.lang.Class<?> enclosingClass, java.lang.reflect.Field field) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterOuterClassState
private boolean tryEnterOuterClassState(java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterOuterClassState
private boolean tryEnterOuterClassState(java.lang.Package pkg, java.lang.String className) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterOuterClassState
private boolean tryEnterOuterClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterOuterClassState
private void enterOuterClassState(java.lang.Class<?> targetClass) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterInnerClassState
private boolean tryEnterInnerClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterInnerClassState
private void enterInnerClassState(java.lang.Class<?> targetClass) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterNestMateClass
private boolean tryEnterNestMateClass(java.lang.Class<?> currentClass, java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterNestMateClass
private void enterNestMateClass(java.lang.Class<?> targetClass) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterSameClassState
private boolean tryEnterSameClassState(java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterSameClassState
private boolean tryEnterSameClassState(java.lang.Package pkg, java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterSameClassState
private boolean tryEnterSameClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterSameClassState
private void enterSameClassState() throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterClassState
private boolean tryEnterClassState(java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterClassState
private boolean tryEnterClassState(java.lang.Class<?> currentClass, java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterClassState
private boolean tryEnterClassState(java.lang.Package pkg, java.lang.String simpleClassName) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterClassState
private void enterClassState(java.lang.Class<?> targetClass) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterPackageState
private boolean tryEnterPackageState(java.lang.String fqpnPrefixedExpression) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
tryEnterPackageState
private boolean tryEnterPackageState(java.lang.Package pkg, java.lang.String pqpnPrefixedExpression) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterPackageState
private void enterPackageState(java.lang.Package pkg) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterIllegalState
private void enterIllegalState(java.lang.String msg) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
enterIllegalState
private void enterIllegalState(java.lang.Throwable throwable) throws IllegalSyntaxException
- Throws:
IllegalSyntaxException
-
-