package cst
- Alphabetic
- Public
- Protected
Type Members
- final case class Annotation(name: Option[QualifiedName], elementValuePairs: List[ElementValuePair], elementValue: Option[ElementValue]) extends CST with Product with Serializable
- final case class AnnotationElementValue(annotation: Annotation) extends ElementValue with Product with Serializable
- class AnyReturnMethodDeclaration extends MethodDeclaration
- final case class ApexConstructorDeclaration(_modifiers: ModifierResults, qualifiedName: QualifiedName, parameters: ArraySeq[FormalParameter], thisType: ThisType, block: Block) extends ClassBodyDeclaration with ApexConstructorLike with Product with Serializable
- final case class ApexFieldDeclaration(thisType: ThisType, _modifiers: ModifierResults, typeName: TypeName, variableDeclarator: VariableDeclarator, isEnumConstant: Boolean = false) extends ClassBodyDeclaration with ApexFieldLike with Product with Serializable
- final case class ApexInitializerBlock(_modifiers: ModifierResults, block: Block, thisType: ThisType) extends ClassBodyDeclaration with ApexBlockLike with Product with Serializable
- class ApexMethodDeclaration extends ClassBodyDeclaration with ApexMethodLike with Referenceable
- final case class ApexPropertyDeclaration(thisType: ThisType, _modifiers: ModifierResults, typeName: TypeName, id: Id, propertyBlocks: Seq[PropertyBlock]) extends ClassBodyDeclaration with ApexFieldLike with Product with Serializable
- final case class ArrayCreatorRest(indexExpression: Option[Expression], arrayInitializer: Option[ArrayInitializer]) extends CreatorRest with Product with Serializable
Array creation arguments, e.g.
Array creation arguments, e.g. either new String[3] or new Account[]{accountA, accountB}
- indexExpression
expression for size of array
- arrayInitializer
an list of initializer expressions
- final case class ArrayExpression(expression: Expression, arrayExpression: Expression) extends Expression with Product with Serializable
- final case class ArrayInitializer(expressions: ArraySeq[Expression]) extends CST with Product with Serializable
- final case class ArrayInitializerElementValue(arrayInitializer: ElementValueArrayInitializer) extends ElementValue with Product with Serializable
- final case class BasicForControl(forInit: Option[ForInit], expression: Option[Expression], forUpdate: Option[ForUpdate]) extends ForControl with Product with Serializable
for loop, e.g.
for loop, e.g. for(Integer i; i<10; i++}
- forInit
initialization statement
- expression
continuation condition
- forUpdate
increment statement
- final case class BinaryExpression(lhs: Expression, rhs: Expression, op: String) extends Expression with Product with Serializable
- abstract class Block extends Statement
Block of statements, nesting uses a Block as a Statement.
Block of statements, nesting uses a Block as a Statement.
There are two types of Block, an Outer which can use lazy loading and an Inner which does not. The OuterBlock helps significantly reduce memory needs at the cost of needing to re-parse the block contents. As re-parsing will parse all nested blocks we use an InnerBlock for these just to reduce the number of WeakReferences we need to use.
- abstract class BlockVerifyContext extends VerifyContext with ControlFlowContext
- final class BodyDeclarationVerifyContext extends ValidateResultHolder with HolderVerifyContext with VerifyContext
- class BoundExprVisitor extends ApexParserBaseVisitor[ArraySeq[ExpressionContext]]
ANTLR visitor for extracting bound expressions from SOQL or SOSL queries, e.g.
ANTLR visitor for extracting bound expressions from SOQL or SOSL queries, e.g. WHERE Id in :Ids
- final case class BoundStringLiteral(bound: Set[Name]) extends Literal with Product with Serializable
- final case class BreakStatement() extends Statement with Product with Serializable
- class CST extends Positionable
Base for all CST nodes, provides some basic location handling.
Base for all CST nodes, provides some basic location handling.
This is mutable for historic reasons, you must call withContext() on all CST nodes for them to pick up the location information from the parser. It also supports lines & column adjustments for when we re-parse blocks, see LazyBlock for details.
- trait CSTTypeArguments extends AnyRef
- trait CSTTypeName extends AnyRef
- trait CSTTypeReference extends AnyRef
- final case class CastExpression(typeName: TypeName, expression: Expression) extends Expression with Product with Serializable
- final case class CatchClause(modifiers: ModifierResults, qname: QualifiedName, id: String, block: Option[Block]) extends CST with Product with Serializable
- abstract class ClassBodyDeclaration extends CST with DependencyHolder with ApexNode
- final case class ClassCreatorRest(arguments: ArraySeq[Expression]) extends CreatorRest with Product with Serializable
Object creation with arguments, e.g.
Object creation with arguments, e.g. new Foo(a, b)
- arguments
constructor argument expressions
- final case class ClassDeclaration(_source: Source, _module: Module, _typeContext: RelativeTypeContext, _typeName: TypeName, _outerTypeName: Option[TypeName], _id: Id, _modifiers: ModifierResults, _inTest: Boolean, _extendsType: Option[TypeName], _implementsTypes: ArraySeq[TypeName], _bodyDeclarations: ArraySeq[ClassBodyDeclaration]) extends FullDeclaration with ApexNode with Product with Serializable
- class CompilationUnit extends CST
- final case class ConstructorMap(typeName: Option[TypeName], td: Option[ApexClassDeclaration], constructorsByParam: Map[Int, Array[ConstructorDeclaration]], superConstructorsByParam: Option[ConstructorMap], errors: List[Issue]) extends Product with Serializable
- final case class ContinueStatement() extends Statement with Product with Serializable
- final case class CreatedName(idPairs: List[IdCreatedNamePair]) extends CST with Product with Serializable
New expression type name, similar to a typeRef
- final case class Creator(createdName: CreatedName, creatorRest: Option[CreatorRest]) extends CST with Product with Serializable
New expression node, these always start 'new TYPE' but there a few form alternatives
- sealed abstract class CreatorRest extends CST
Base for things that appear after 'new TYPE' expressions
- final case class DeleteStatement(expression: Expression) extends Statement with Product with Serializable
- final case class DoWhileStatement(block: Block, expression: Expression) extends Statement with Product with Serializable
- final case class DotExpressionWithId(expression: Expression, safeNavigation: Boolean, target: Id) extends Expression with Product with Serializable
- final case class DotExpressionWithMethod(expression: Expression, safeNavigation: Boolean, target: Option[MethodCallWithId]) extends Expression with Product with Serializable
- sealed abstract class ElementValue extends CST
- final case class ElementValueArrayInitializer(elementValues: Seq[ElementValue]) extends CST with Product with Serializable
- final case class ElementValuePair(id: String, elementValue: Option[ElementValue]) extends CST with Product with Serializable
- final case class EmptyExpr() extends Expression with Product with Serializable
- final case class EnhancedForControl(typeName: TypeName, id: Id, expression: Expression) extends ForControl with Product with Serializable
for-each iteration, e.g.
for-each iteration, e.g. for(String a: new List<String>{'x', 'y', 'z'}
- typeName
loop variable type
- id
loop variable identifier
- expression
iteration expression
- final case class EnumDeclaration(_source: Source, _module: Module, _typeContext: RelativeTypeContext, _typeName: TypeName, _outerTypeName: Option[TypeName], _id: Id, _modifiers: ModifierResults, _inTest: Boolean, _bodyDeclarations: ArraySeq[ClassBodyDeclaration]) extends FullDeclaration with Product with Serializable
- case class ExprContext(isStatic: Option[Boolean], declaration: Option[TypeDeclaration], locatable: Option[Locatable] = None) extends Product with Serializable
Context used during expression verification to indicate focus & return state.
Context used during expression verification to indicate focus & return state.
Declaration provides the current context TypeDeclaration. isStatic=None is used as a marker that we have yet to enter an explicit static/instance context as you find on the outermost expression used in an instance method. In this state declaration == this & both static/instance resolution is allowed. If isStatic is set the specific expression should become restricted to either static or instance resolution.
- isStatic
static or instance or either context
- declaration
input/return type declaration, for return None is used to mean unknown/indeterminable
- locatable
position of code that generated this context to support introspection
- sealed abstract class Expression extends CST
base for any type of expression, provides helpers for type validation
- final case class ExpressionElementValue(expression: Expression) extends ElementValue with Product with Serializable
- final case class ExpressionListForInit(expressions: ArraySeq[Expression]) extends ForInit with Product with Serializable
- final case class ExpressionStatement(expression: Expression) extends Statement with Product with Serializable
- final class ExpressionVerifyContext extends VerifyContext
- sealed abstract class ForControl extends CST
base for the two types of 'for' loop, Base style e.g.
base for the two types of 'for' loop, Base style e.g. for(Integer i=0; i<10; i++) or enhanced style e.g. for(String a: new List<String>{'x', 'y', 'z'}
- sealed abstract class ForInit extends CST
- final case class ForStatement(control: Option[ForControl], statement: Option[Statement]) extends Statement with Product with Serializable
- final case class ForUpdate(expressions: ArraySeq[Expression]) extends CST with Product with Serializable
- final case class FormalParameter(modifiers: ModifierResults, relativeTypeName: RelativeTypeName, id: Id) extends ParameterDeclaration with Product with Serializable
- final case class GetterPropertyBlock(modifiers: ModifierResults, block: Option[Block]) extends PropertyBlock with Product with Serializable
- trait HolderVerifyContext extends AnyRef
- final case class Id(name: Name) extends CST with Product with Serializable
- final case class IdCreatedNamePair(id: Id, types: ArraySeq[TypeName]) extends CST with Product with Serializable
- final case class IdPrimary(id: Id) extends Primary with Product with Serializable
- final case class IfStatement(expression: Expression, statements: Seq[Statement]) extends Statement with Product with Serializable
- final class InnerBlockVerifyContext extends BlockVerifyContext
- final case class InsertStatement(expression: Expression) extends Statement with Product with Serializable
- final case class InstanceOfExpression(expression: Expression, typeName: TypeName) extends Expression with Product with Serializable
- final case class InterfaceDeclaration(_source: Source, _module: Module, _typeContext: RelativeTypeContext, _typeName: TypeName, _outerTypeName: Option[TypeName], _id: Id, _modifiers: ModifierResults, _inTest: Boolean, _implementsTypes: ArraySeq[TypeName], _bodyDeclarations: ArraySeq[ClassBodyDeclaration]) extends FullDeclaration with Product with Serializable
- sealed abstract class Literal extends AnyRef
- final case class LiteralPrimary(literal: Literal) extends Primary with Product with Serializable
- final case class LocalVariableDeclaration(modifiers: ModifierResults, typeName: TypeName, variableDeclarators: VariableDeclarators) extends CST with Product with Serializable
- final case class LocalVariableDeclarationStatement(localVariableDeclaration: LocalVariableDeclaration) extends Statement with Product with Serializable
- final case class LocalVariableForInit(variable: LocalVariableDeclaration) extends ForInit with Product with Serializable
- final case class MapCreatorRest(pairs: List[MapCreatorRestPair]) extends CreatorRest with Product with Serializable
- final case class MapCreatorRestPair(from: Expression, to: Expression) extends CST with Product with Serializable
- final case class MergeStatement(expression1: Expression, expression2: Expression) extends Statement with Product with Serializable
- abstract class MethodCall extends Expression
- final case class MethodCallCtor(isSuper: Boolean, arguments: ArraySeq[Expression]) extends MethodCall with Product with Serializable
- sealed abstract class MethodCallError extends AnyRef
- final case class MethodCallWithId(target: Id, arguments: ArraySeq[Expression]) extends MethodCall with Product with Serializable
- final case class MethodMap(typeName: Option[TypeName], td: Option[ApexClassDeclaration], methodsByName: Map[(Name, Int), Array[MethodDeclaration]], testVisiblePrivateMethods: Set[MethodDeclaration], errors: List[Issue]) extends Product with Serializable
- final case class NegationExpression(expression: Expression, isBitwise: Boolean) extends Expression with Product with Serializable
- final case class NewExpression(creator: Creator) extends Expression with Product with Serializable
- final class NoRest extends CreatorRest
Object creation without arguments, e.g.
Object creation without arguments, e.g. new Foo()
- abstract class Operation extends AnyRef
- final class OuterBlockVerifyContext extends BlockVerifyContext with OuterControlFlowContext
- final case class PostfixExpression(expression: Expression, op: String) extends Expression with Product with Serializable
- final case class PrefixExpression(expression: Expression, op: String) extends Expression with Product with Serializable
- sealed abstract class Primary extends CST
- final case class PrimaryExpression(primary: Primary) extends Expression with Product with Serializable
- sealed abstract class PropertyBlock extends CST
- final case class QualifiedName(names: Seq[Name]) extends CST with Product with Serializable
- final case class QueryExpression(query: Expression, lhs: Expression, rhs: Expression) extends Expression with Product with Serializable
- sealed trait QueryResultType extends AnyRef
Type of return from SOQL queries, based on functions used in the query
- final case class ReturnStatement(expression: Option[Expression]) extends Statement with Product with Serializable
- final case class RunAsStatement(expressions: ArraySeq[Expression], block: Option[Block]) extends Statement with Product with Serializable
- final case class SOQL(queryResultType: QueryResultType, fromNames: Array[DotName], boundExpressions: ArraySeq[Expression]) extends Primary with Product with Serializable
Inline SOQL primary, captures just enough detail to enable downstream processing
Inline SOQL primary, captures just enough detail to enable downstream processing
- queryResultType
type of results expected from query
- fromNames
dot names used in FROM
- boundExpressions
bound expressions used anywhere in the query
- final case class SOSL(boundExpressions: ArraySeq[Expression]) extends Primary with Product with Serializable
Inline SOSL primary, captures just enough detail to enable downstream processing
Inline SOSL primary, captures just enough detail to enable downstream processing
- boundExpressions
bound expressions used anywhere in the query
- final case class SetOrListCreatorRest(parts: ArraySeq[Expression]) extends CreatorRest with Product with Serializable
Set or List creation arguments, e.g.
Set or List creation arguments, e.g. new List<Account>{accountA, accountB}
- parts
expressions for each argument
- final case class SetterPropertyBlock(modifiers: ModifierResults, typeName: TypeName, block: Option[Block]) extends PropertyBlock with Product with Serializable
- abstract class Statement extends CST with ControlFlow
Base class for all types of Statement
- final case class SubExpression(expression: Expression) extends Expression with Product with Serializable
- final case class SuperPrimary() extends Primary with Product with Serializable
- final case class ThisPrimary() extends Primary with Product with Serializable
- final case class ThrowStatement(expression: Expression) extends Statement with Product with Serializable
- final case class TryStatement(block: Block, catches: Seq[CatchClause], finallyBlock: Option[Block]) extends Statement with Product with Serializable
- final case class TypeReferencePrimary(typeName: TypeName) extends Primary with Product with Serializable
- final class TypeVerifyContext extends ValidateResultHolder with HolderVerifyContext with VerifyContext
- final case class UndeleteStatement(expression: Expression) extends Statement with Product with Serializable
- final case class UpdateStatement(expression: Expression) extends Statement with Product with Serializable
- final case class UpsertStatement(expression: Expression, field: Option[QualifiedName]) extends Statement with Product with Serializable
- class ValidateResultHolder extends AnyRef
- final case class ValidationResult(cst: CST, result: ExprContext, vars: Option[Map[Name, VarTypeAndDefinition]]) extends Product with Serializable
- case class VarTypeAndDefinition(declaration: TypeDeclaration, definition: Option[CST], isReadOnly: Boolean) extends Product with Serializable
- final case class VariableDeclarator(typeName: TypeName, isReadOnly: Boolean, id: Id, init: Option[Expression]) extends CST with Product with Serializable
- final case class VariableDeclarators(declarators: Seq[VariableDeclarator]) extends CST with Product with Serializable
- trait VerifyContext extends AnyRef
- class VoidExprContext extends ExprContext
ExprContext of type 'void'
ExprContext of type 'void'
void is not commonly used in expressions, essentially just as method return type so we use simple null-object style implementation for it.
- final case class WhileStatement(expression: Expression, statement: Option[Statement]) extends Statement with Product with Serializable
Value Members
- case object AGGREGATE_RESULT_QUERY extends QueryResultType with Product with Serializable
- case object AMBIGUOUS_ERROR extends MethodCallError with Product with Serializable
- object Annotation extends Serializable
- object ApexConstructorDeclaration extends Serializable
- object ApexFieldDeclaration extends Serializable
- object ApexInitializerBlock extends Serializable
- object ApexMethodDeclaration
- object ApexPropertyDeclaration extends Serializable
- object Arguments
- case object ArithmeticAddSubtractAssignmentOperation extends Operation with Product with Serializable
- case object ArithmeticMultiplyDivideAssignmentOperation extends Operation with Product with Serializable
- case object ArithmeticOperation extends Operation with Product with Serializable
- object ArrayCreatorRest extends Serializable
- object ArrayInitializer extends Serializable
- object AssignableSupport
Rules for determining if one type is assignable to another
- case object AssignmentOperation extends Operation with Product with Serializable
- object BasicForControl extends Serializable
- case object BitwiseAssignmentOperation extends Operation with Product with Serializable
- case object BitwiseOperation extends Operation with Product with Serializable
- object Block
- case object BooleanLiteral extends Literal with Product with Serializable
- object BreakStatement extends Serializable
- case object COUNT_RESULT_QUERY extends QueryResultType with Product with Serializable
- object CST
- object CSTTypeReference
- object CatchClause extends Serializable
- object ClassBodyDeclaration
- object ClassCreatorRest extends Serializable
- object ClassDeclaration extends Serializable
- case object CompareOperation extends Operation with Product with Serializable
- object CompilationUnit
- case object ConditionalOperation extends Operation with Product with Serializable
- object ConstructorMap extends Serializable
- object ContinueStatement extends Serializable
- object CreatedName extends Serializable
- object Creator extends Serializable
- case object DecimalLiteral extends Literal with Product with Serializable
- object DeleteStatement extends Serializable
- object DoWhileStatement extends Serializable
- object DotExpression
- object DotExpressionWithMethod extends Serializable
- case object DoubleLiteral extends Literal with Product with Serializable
- object DoubleOrDecimalLiteral
- object ElementValue
- object ElementValueArrayInitializer extends Serializable
- object ElementValuePair extends Serializable
- object ElementValuePairs
- object EnhancedForControl extends Serializable
- object EnumDeclaration extends Serializable
- case object EqualityOperation extends Operation with Product with Serializable
- case object ExactEqualityOperation extends Operation with Product with Serializable
- object ExprContext extends Serializable
- object Expression
- object ExpressionStatement extends Serializable
- object ForControl
- object ForInit
- object ForStatement extends Serializable
- object ForUpdate extends Serializable
- object FormalParameter extends Serializable
- object FormalParameterList
- object FormalParameters
- object Id extends Serializable
- object IdCreatedNamePair extends Serializable
- object IfStatement extends Serializable
- object InsertStatement extends Serializable
- case object IntegerLiteral extends Literal with Product with Serializable
- object IntegerOrLongLiteral
- object InterfaceDeclaration extends Serializable
- case object LIST_RESULT_QUERY extends QueryResultType with Product with Serializable
- object Literal
- object LocalVariableDeclaration extends Serializable
- object LocalVariableDeclarationStatement extends Serializable
- case object LogicalOperation extends Operation with Product with Serializable
- case object LongLiteral extends Literal with Product with Serializable
- object MapCreatorRest extends Serializable
- object MapCreatorRestPair extends Serializable
- object MergeStatement extends Serializable
- object MethodCall
- object MethodMap extends Serializable
- case object NO_MATCH_ERROR extends MethodCallError with Product with Serializable
- object NoRest
- case object NullLiteral extends Literal with Product with Serializable
- object Operation
- case object PlusOperation extends Operation with Product with Serializable
- object Primary
- object PropertyBlock
- object QualifiedName extends Serializable
- object ReturnStatement extends Serializable
- object RunAsStatement extends Serializable
- object SOQL extends Serializable
- object SOSL extends Serializable
- object SetOrListCreatorRest extends Serializable
- object Statement
- case object StringLiteral extends Literal with Product with Serializable
- object ThrowStatement extends Serializable
- object TryStatement extends Serializable
- object TypeList
- object TypeReference
- object UndeleteStatement extends Serializable
- object UpdateStatement extends Serializable
- object UpsertStatement extends Serializable
- object VariableDeclarator extends Serializable
- object VariableDeclarators extends Serializable
- object VoidExprContext extends Serializable
- object WhileStatement extends Serializable