Package com.tonic.analysis.query.eval
Evaluation of a query's conditions against a subject.
-
Interface Summary Interface Description AttributeRegistry.Attribute Resolves a scalar value from a subject.AttributeRegistry.Selector Expands a subject into a stream of sub-subjects (honoring the step's index/wildcard).Subject The polymorphic evaluation cursor. -
Class Summary Class Description ArgValueResolver Resolves an argument of a call to its declared type, kind and (when a constant feeds the operand) literal value.AttributeRegistry Maps(SubjectKind, keyword)to a resolver - either a scalarAttributeRegistry.Attributeor a sub-subjectAttributeRegistry.Selector.AttributeRegistry.Entry A registered resolver: exactly one ofscalar/streamis non-null.ConditionEvaluator DefaultAttributes Registers the static (bytecode-level) query vocabulary.EvalContext Per-subject evaluation scope with lazy, cached views of a method so repeated accessors (everyarg(n),instructions,line) share one decode/analysis.EvidenceCollector Accumulates the bytecode locations that satisfied a query, so results stay navigable.EvidenceCollector.Hit A single matched location.Subject.ArgSubject Subject.BootstrapArgSubject A non-dynamic static bootstrap argument, identified by its constant-pool index.Subject.CallSubject An invocation site;invokeimplementsInvokeInsn.Subject.ClassSubject Subject.DynamicSubject A dynamic site: an invokedynamic call site (site == "indy"), aCONSTANT_Dynamicload, or a nested condy bootstrap argument.Subject.FieldAccessSubject A field read/write site;instructionis a GetField/PutField instruction.Subject.InstructionSubject Subject.MethodSubject Subject.ParamSubject A declared method parameter, identified by position;typeis its descriptor from the method signature. -
Enum Summary Enum Description SubjectKind The type of entity an evaluation is currently bound to.