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
- Alphabetic
- By Inheritance
- ClassDeclaration
- Serializable
- Product
- Equals
- FullDeclaration
- ApexFullDeclaration
- ApexClassDeclaration
- Referenceable
- ApexDeclaration
- DependentType
- TypeDeclaration
- PreReValidatable
- Dependent
- IdentityEquality
- AbstractTypeDeclaration
- ClassBodyDeclaration
- ApexNode
- IdLocatable
- DependencyHolder
- CST
- Positionable
- UnsafeLocatable
- Locatable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new 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])
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val _bodyDeclarations: ArraySeq[ClassBodyDeclaration]
- val _extendsType: Option[TypeName]
- val _id: Id
- val _implementsTypes: ArraySeq[TypeName]
- val _inTest: Boolean
- val _modifiers: ModifierResults
- val _module: Module
- val _outerTypeName: Option[TypeName]
- val _source: Source
- val _typeContext: RelativeTypeContext
- val _typeName: TypeName
- def addDependencyHolder(dependencyHolder: DependencyHolder): Unit
- Definition Classes
- Dependent
- def addReferencingLocation(referencingLocation: PathLocation): Unit
Add a reference location to the list of references for this specific Referencable.
Add a reference location to the list of references for this specific Referencable. Adding references is gated so that we can control when references are collected. This must be called from some part of the validation logic to establish the references.
- Definition Classes
- Referenceable
- def addTypeDependencyHolder(typeId: TypeId): Unit
Add a single type dependency holders for this type.
Add a single type dependency holders for this type.
- Definition Classes
- DependentType
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- lazy val blocks: ArraySeq[ApexInitializerBlock]
- Definition Classes
- FullDeclaration → TypeDeclaration
- val bodyDeclarations: ArraySeq[ClassBodyDeclaration]
- Definition Classes
- FullDeclaration
- def bombScore(total: Int): (Int, Int, Double)
- Definition Classes
- ApexClassDeclaration
- val children: ArraySeq[ApexNode]
- Definition Classes
- FullDeclaration → ApexNode
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def collectDependencies(dependsOn: Set[Dependent]): Unit
- Definition Classes
- FullDeclaration → ClassBodyDeclaration
- def collectInterfaces(found: Set[TypeDeclaration], visited: Set[TypeDeclaration] = mutable.Set()): Unit
- Definition Classes
- TypeDeclaration
- def collectIssues(issues: ArrayBuffer[Issue]): Unit
- Attributes
- protected
- Definition Classes
- ApexNode
- def collectIssues(): ArraySeq[Issue]
- Definition Classes
- ApexNode
- def collectRelatedReferencable(): Set[_ <: Referenceable]
Collect all the referenceable elements that are related to this class.
Collect all the referenceable elements that are related to this class. Override this to expand the reference search, such as for method overloading.
- Definition Classes
- Referenceable
- def constructorMap: ConstructorMap
- Definition Classes
- ApexClassDeclaration
- def constructors: ArraySeq[ConstructorDeclaration]
- Definition Classes
- ApexClassDeclaration → TypeDeclaration
- val dead: Boolean
Dead flag, set when discarded from module, useful to aid type cache eviction
Dead flag, set when discarded from module, useful to aid type cache eviction
- Definition Classes
- TypeDeclaration
- def dependencies(): Iterable[Dependent]
Get Dependents being held, default to empty for holders who do not use this, override as needed
Get Dependents being held, default to empty for holders who do not use this, override as needed
- Definition Classes
- ClassBodyDeclaration → DependencyHolder
- def dependencySummary(): Array[DependentSummary]
Convert dependencies into a summary format
Convert dependencies into a summary format
- Definition Classes
- DependencyHolder
- var depends: Option[SkinnySet[Dependent]]
- Attributes
- protected
- Definition Classes
- ClassBodyDeclaration
- val description: String
- Definition Classes
- ClassBodyDeclaration → ApexNode
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(that: Any): Boolean
- Definition Classes
- IdentityEquality → AnyRef → Any
- def extendsOrImplements(typeName: TypeName): Boolean
- Definition Classes
- TypeDeclaration
- lazy val fields: ArraySeq[FieldDeclaration]
- Definition Classes
- ApexClassDeclaration → TypeDeclaration
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def findConstructor(params: ArraySeq[TypeName], verifyContext: VerifyContext): Either[String, ConstructorDeclaration]
- Definition Classes
- ApexClassDeclaration → TypeDeclaration → AbstractTypeDeclaration
- def findDeclarationFromSourceReference(searchTerm: String, location: Location): Option[TypeDeclaration with Locatable]
Locate a TypeDeclaration for the passed typeName that was extracted from location.
Locate a TypeDeclaration for the passed typeName that was extracted from location.
- searchTerm
The name of the type to search for.
- location
The location of the type in the source code.
- returns
An option containing the source reference, if found.
- Definition Classes
- FullDeclaration → ApexFullDeclaration
- def findField(name: Name, exclude: HashSet[TypeDeclaration] = new mutable.HashSet()): Option[FieldDeclaration]
- Attributes
- protected
- Definition Classes
- TypeDeclaration
- def findField(name: Name, staticContext: Option[Boolean]): Option[FieldDeclaration]
- Definition Classes
- TypeDeclaration → AbstractTypeDeclaration
- def findLocalType(localName: TypeName): Option[TypeDeclaration]
- Definition Classes
- TypeDeclaration
- def findMethod(name: Name, params: ArraySeq[TypeName], staticContext: Option[Boolean], verifyContext: VerifyContext): Either[String, MethodDeclaration]
- Definition Classes
- ApexClassDeclaration → TypeDeclaration → AbstractTypeDeclaration
- def findNestedType(name: Name): Option[TypeDeclaration]
- Definition Classes
- TypeDeclaration → AbstractTypeDeclaration
- def findReferenceableFromLocation(line: Int, offset: Int): Option[Referenceable]
Get referenceable element at the specified line and offset.
Get referenceable element at the specified line and offset.
- line
The 1-based line number within the source file.
- offset
The 0-based character offset within the line.
- returns
A map from source locations to their corresponding validation results.
- Definition Classes
- ApexClassDeclaration → ApexDeclaration
- def flush(pc: ParsedCache, context: PackageContext): Unit
Override to handle request to flush the type to passed cache if dirty
Override to handle request to flush the type to passed cache if dirty
- Definition Classes
- FullDeclaration → ApexClassDeclaration
- def gatherDependencies(dependsOn: Set[TypeId], apexOnly: Boolean, outerTypesOnly: Boolean, typeCache: TypeCache): Unit
Collect set of TypeIds that this declaration is dependent on.
Collect set of TypeIds that this declaration is dependent on.
You can filter to include only Apex dependencies and only outer classes of those. If outerTypesOnly is false then a dependency on an inner class will add both the TypeId for the inner class and it's outer class to make determining if a class is a dependency easier for callers.
- Definition Classes
- FullDeclaration → DependentType
- def getBodyDeclarationFromLocation(line: Int, offset: Int): Option[(FullDeclaration, ClassBodyDeclaration)]
Finds the body declaration (such as a method, field, or nested type) at the specified line and offset.
Finds the body declaration (such as a method, field, or nested type) at the specified line and offset. Recursively searches nested types and returns the innermost matching (FullDeclaration, ClassBodyDeclaration) pair.
- line
The line number to search (1-based).
- offset
The character offset within the line (0-based).
- returns
An Option containing the (FullDeclaration, ClassBodyDeclaration) if found, otherwise None.
- Definition Classes
- FullDeclaration
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getCurrentReferences(refresh: (Seq[PathLike]) => Unit): Set[TargetLocation]
Collect all reference locations for this Referencable.
Collect all reference locations for this Referencable. The basic approach here is to collect references to things during a revalidation pass. The ReferenceProvider uses this.
- Definition Classes
- Referenceable
- def getDependencyHolders: Set[DependencyHolder]
- Definition Classes
- Dependent
- def getTypeDependencyHolders: SkinnySet[TypeId]
Get current dependency holders
Get current dependency holders
- Definition Classes
- DependentType
- def getValidationMap(line: Int, offset: Int): Map[Location, ValidationResult]
Returns a map of validation results for the body declaration at the specified source location.
Returns a map of validation results for the body declaration at the specified source location.
This method locates the innermost body declaration (such as a method, field, or nested type) that contains the given line and offset. It then validates that declaration, collecting validation results for each relevant source location within it.
If no matching body declaration is found, or if an error occurs during validation, an empty map is returned.
- line
The 1-based line number within the source file.
- offset
The 0-based character offset within the line.
- returns
A map from source locations to their corresponding validation results.
- Definition Classes
- FullDeclaration → ApexFullDeclaration
- def hasHolders: Boolean
- Definition Classes
- Dependent
- def hasNonTestHolders: Boolean
- Definition Classes
- Dependent
- def hashCode(): Int
- Definition Classes
- IdentityEquality → AnyRef → Any
- val id: Id
- Definition Classes
- FullDeclaration
- val idLocation: Location
- Definition Classes
- FullDeclaration → IdLocatable
- def idPathLocation: PathLocation
- Definition Classes
- IdLocatable
- def implements(typeName: TypeName, ignoreGenerics: Boolean): Boolean
- Definition Classes
- TypeDeclaration
- val inTest: Boolean
Override to resolve conflict, TypeDeclaration & DependencyHolder both default false
Override to resolve conflict, TypeDeclaration & DependencyHolder both default false
- Definition Classes
- FullDeclaration → ApexClassDeclaration → TypeDeclaration → DependencyHolder
- def interfaceDeclarations: ArraySeq[TypeDeclaration]
- Definition Classes
- ApexClassDeclaration → TypeDeclaration
- val interfaces: ArraySeq[TypeName]
- Definition Classes
- FullDeclaration → TypeDeclaration
- def isAbstract: Boolean
- Definition Classes
- TypeDeclaration
- lazy val isComplete: Boolean
- Definition Classes
- ApexClassDeclaration → TypeDeclaration
- def isCustomException: Boolean
- Definition Classes
- ApexClassDeclaration → TypeDeclaration
- lazy val isEntryPoint: Boolean
- Definition Classes
- ApexClassDeclaration → ApexDeclaration
- def isExtensible: Boolean
- Definition Classes
- TypeDeclaration
- def isExternallyVisible: Boolean
- Definition Classes
- TypeDeclaration
- lazy val isFieldConstructed: Boolean
- Definition Classes
- TypeDeclaration
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- lazy val isPageController: Boolean
- Definition Classes
- ApexClassDeclaration
- lazy val isSObject: Boolean
- Definition Classes
- TypeDeclaration
- def isVirtual: Boolean
- Definition Classes
- TypeDeclaration
- lazy val localConstructors: ArraySeq[ApexConstructorDeclaration]
- Definition Classes
- FullDeclaration → ApexClassDeclaration
- lazy val localFields: ArraySeq[ApexFieldLike]
- Definition Classes
- FullDeclaration → ApexClassDeclaration
- def localIssues: Seq[Issue]
- Definition Classes
- ApexNode
- lazy val localMethods: ArraySeq[ApexMethodDeclaration]
- Definition Classes
- FullDeclaration → ApexClassDeclaration
- def location: PathLocation
- Definition Classes
- Positionable → UnsafeLocatable → Locatable
- def methodMap: MethodMap
- Definition Classes
- ApexClassDeclaration
- def methods: ArraySeq[MethodDeclaration]
- Definition Classes
- ApexClassDeclaration → TypeDeclaration
- def modifierIssues: ArraySeq[Issue]
- Definition Classes
- ClassBodyDeclaration
- val modifiers: ArraySeq[Modifier]
- Definition Classes
- ClassBodyDeclaration → ApexNode
- val module: Module
The owning package, this is needed to disambiguate but restricts where DependentType can be used currently.
The owning package, this is needed to disambiguate but restricts where DependentType can be used currently.
- Definition Classes
- FullDeclaration → ApexDeclaration → DependentType
- val moduleDeclaration: Option[Module]
- Definition Classes
- FullDeclaration → TypeDeclaration
- val name: Name
- Definition Classes
- FullDeclaration → TypeDeclaration → ApexNode
- lazy val namespace: Option[Name]
- Definition Classes
- TypeDeclaration
- val nature: Nature
- Definition Classes
- ClassDeclaration → FullDeclaration → TypeDeclaration → ApexNode
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def nestedTypes: ArraySeq[FullDeclaration]
- Definition Classes
- FullDeclaration → ApexClassDeclaration → ApexDeclaration → TypeDeclaration
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def outerTypeDeclaration: Option[TypeDeclaration]
- Definition Classes
- TypeDeclaration
- lazy val outerTypeId: TypeId
TypeId for outer type (might be self)
TypeId for outer type (might be self)
- Definition Classes
- DependentType
- val outerTypeName: Option[TypeName]
- Definition Classes
- FullDeclaration → TypeDeclaration
- def outermostTypeDeclaration: TypeDeclaration
- Definition Classes
- TypeDeclaration
- val parseIssues: ArraySeq[Issue]
- Definition Classes
- ClassBodyDeclaration → ApexNode
- def paths: ArraySeq[PathLike]
- Definition Classes
- FullDeclaration → TypeDeclaration
- def preReValidate(): Unit
Reset local caches ready for re-validation
Reset local caches ready for re-validation
- Definition Classes
- FullDeclaration → ApexClassDeclaration → PreReValidatable
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def propagateDependencies(): Unit
Inform each dependent this is holding a dependency to them
Inform each dependent this is holding a dependency to them
- Definition Classes
- DependencyHolder
- def propagateOuterDependencies(typeCache: TypeCache): Unit
Helper to update other types that you hold a dependency on them.
Helper to update other types that you hold a dependency on them. Typically this need to be called after first creating a new type.
- Definition Classes
- DependentType
- def safeLocation: Option[PathLocation]
- Definition Classes
- UnsafeLocatable
- def safeValidate(): Unit
- Definition Classes
- TypeDeclaration
- def setDepends(dependencies: SkinnySet[Dependent]): Unit
- Definition Classes
- ClassBodyDeclaration
- def setLocation(path: PathLike, startLine: Int, startOffset: Int, endLine: Int, endOffset: Int): Unit
- Definition Classes
- Positionable
- def setTypeDependencyHolders(holders: SkinnySet[TypeId]): Unit
Set type dependency holders, useful when carrying forward dependencies when a type if being replaced.
Set type dependency holders, useful when carrying forward dependencies when a type if being replaced.
- Definition Classes
- DependentType
- lazy val signature: String
- Definition Classes
- ClassBodyDeclaration → ApexNode
- val source: Source
- Definition Classes
- FullDeclaration
- lazy val sourceHash: Int
Calculate a hash for the source code of the declaration
Calculate a hash for the source code of the declaration
- Definition Classes
- FullDeclaration → ApexDeclaration
- def summary: TypeSummary
Create a summary for the of the declaration
Create a summary for the of the declaration
- Definition Classes
- FullDeclaration → ApexDeclaration
- val superClass: Option[TypeName]
- Definition Classes
- FullDeclaration → TypeDeclaration
- def superClassDeclaration: Option[TypeDeclaration]
- Definition Classes
- ApexClassDeclaration → TypeDeclaration
- def superTypes(): List[TypeName]
- Definition Classes
- TypeDeclaration
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- lazy val thisTypeId: TypeId
Referencable must be able to provide a TypeId for the containing type to support revalidation.
Referencable must be able to provide a TypeId for the containing type to support revalidation.
- Definition Classes
- ApexClassDeclaration → Referenceable
- def thisTypeIdOpt: Option[TypeId]
The TypeId for the containing type of the holder, optional as requires a module.
The TypeId for the containing type of the holder, optional as requires a module.
- Definition Classes
- ApexClassDeclaration → DependencyHolder
- def toString(): String
- Definition Classes
- ApexClassDeclaration → AnyRef → Any
- val typeContext: RelativeTypeContext
- Definition Classes
- FullDeclaration
- lazy val typeId: TypeId
TypeId for this type
TypeId for this type
- Definition Classes
- DependentType
- val typeName: TypeName
- Definition Classes
- FullDeclaration → TypeDeclaration
- def validate(): Unit
- Attributes
- protected
- Definition Classes
- FullDeclaration → TypeDeclaration
- def validate(context: BodyDeclarationVerifyContext): Unit
- Definition Classes
- ClassBodyDeclaration
- def validateFieldConstructorArguments(input: ExprContext, arguments: ArraySeq[Expression], context: ExpressionVerifyContext): Unit
- Definition Classes
- TypeDeclaration
- def verify(context: BodyDeclarationVerifyContext): Unit
- Definition Classes
- ClassDeclaration → ClassBodyDeclaration
- def verify(context: TypeVerifyContext): Unit
- Definition Classes
- ClassDeclaration → FullDeclaration
- def visibility: Option[Modifier]
- Definition Classes
- TypeDeclaration
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withContext(context: ParserRuleContext): ClassDeclaration.this.type
- Definition Classes
- CST
- def withLocation(location: PathLocation): ClassDeclaration.this.type
- Definition Classes
- Positionable