public abstract class ClassDefinitionBase extends TypeDefinitionBase implements IClassDefinition
Modifier and Type | Class and Description |
---|---|
static class |
ClassDefinitionBase.ClassIterator |
TypeDefinitionBase.StaticTypeIterator, TypeDefinitionBase.TypeIterator
IClassDefinition.ClassClassification, IClassDefinition.IClassIterator
FLAG_CAST_FUNCTION, FLAG_CONSTRUCTOR, FLAG_CONTINGENT, FLAG_DECLARED_IN_CONTROL_FLOW, FLAG_DEFAULT, FLAG_DEPRECATED, FLAG_DYNAMIC, FLAG_FINAL, FLAG_GENERATED_EMBED_CLASS, FLAG_HAS_INIT, FLAG_IMPLICIT, FLAG_NATIVE, FLAG_OVERRIDE, FLAG_REST, FLAG_STATIC, flags, nodeRef, singletonEmptyMetaTags
ANY_TYPE, NULL, UNDEFINED, VOID
Modifier | Constructor and Description |
---|---|
protected |
ClassDefinitionBase(String name) |
Modifier and Type | Method and Description |
---|---|
Iterable<IClassDefinition> |
classIterable(ICompilerProject project,
boolean includeThis) |
IClassDefinition.IClassIterator |
classIterator(ICompilerProject project,
boolean includeThis)
Creates an iterator for enumerating the superclasses of this class.
|
boolean |
computeNeedsEventDispatcher(ICompilerProject project)
Determine if this class needs to add an implicit 'implements
flash.events.IEventDispatcher' due to the class, or some of its members
being marked bindable.
|
IMetaTag[] |
findMetaTagsByName(String name,
ICompilerProject project)
Finds all metadata with a specified tag name.
|
IClassDefinition[] |
getAlternativeClasses(ICompilerProject project,
Version version)
Returns the classes that are specified as replacing the given class.
|
String |
getIconFile()
For a Flex component class, gets the path to the icon file representing
the component, as specified by
[IconFile(...)] |
abstract IReference[] |
getImplementedInterfaceReferences()
Returns
IReference objects that will resolve to any interface this
class directly implements. |
Iterator<IInterfaceDefinition> |
interfaceIterator(ICompilerProject project)
Creates an iterator for enumerating all of the interfaces that this class
implements.
|
boolean |
isInstanceOf(ITypeDefinition type,
ICompilerProject project)
Determines whether an "is-a" relationship exists between two classes or
interfaces.
|
boolean |
needsEventDispatcher(ICompilerProject project)
Determine if this class needs to add an implicit 'implements
flash.events.IEventDispatcher' due to the class, or some of its members
being marked bindable.
|
boolean |
needsStaticEventDispatcher(ICompilerProject project)
Determine if this class needs a static event dispatcher added to it.
|
Set<IInterfaceDefinition> |
resolveAllInterfaces(ICompilerProject project) |
IClassDefinition[] |
resolveAncestry(ICompilerProject project)
Get the ancestral stack for this class, from this class all the way to
Object.
|
InterfaceDefinition |
resolveImplementedInterface(ICompilerProject project,
int i)
Resolve one of the implemented interfaces.
|
IInterfaceDefinition[] |
resolveImplementedInterfaces(ICompilerProject project)
Get the definitions of the implemented interfaces.
|
InterfaceDefinition[] |
resolveImplementedInterfaces(ICompilerProject project,
Collection<ICompilerProblem> problems)
Version of resolveImplementedInterfaces that will log Problems associated
with resolving the implemented interfaces This will not log any problems
if null is passed in for the problem collection.
|
InterfaceDefinition[] |
resolveImplementedInterfaces(ICompilerProject project,
Collection<ICompilerProblem> problems,
boolean includeImplicits)
Version of resolveImplementedInterfaces that will log Problems associated
with resolving the implemented interfaces This will not log any problems
if null is passed in for the problem collection.
|
IInterfaceDefinition[] |
resolveInterfacesImpl(ICompilerProject project)
Resolve the implemented interfaces of this Class
|
filterNullInterfaces, getNameStart, getNode, getPackageName, isInstanceOf, resolveType, staticTypeIterable, typeIteratable
getContainedScope, setContainedScope, verify
addMetaTag, buildInnerString, buildString, getAbsoluteEnd, getAbsoluteStart, getAllMetaTags, getAncestorOfType, getArrayElementType, getBaseName, getBindableEventNames, getColumn, getContainingASScope, getContainingFilePath, getContainingScope, getContainingSourceFilePath, getDefinition, getDeprecationInfo, getEnd, getExplicitSourceComment, getFileScope, getFileSpecification, getInstanceType, getLine, getLocationString, getMaxSize, getMetaTagByName, getMetaTagsByName, getMName, getModifiers, getNameColumn, getNameEnd, getNameLine, getNamespaceReference, getNamespaceReferenceAsString, getParent, getPercentProxy, getQualifiedName, getSize, getSkinPart, getSourcePath, getStart, getStorageName, getTypeAsDisplayString, getTypeDependencyType, getTypeReference, hasCollapseWhiteSpace, hasExplicitComment, hasMetaTagByName, hasModifier, hasNamespace, hasRichTextContent, inPackageNamespace, isBindable, isBindableStyle, isColor, isContingent, isContingentNeeded, isDeprecated, isDynamic, isEmpty, isFinal, isGeneratedEmbedClass, isImplicit, isInProject, isInternal, isNative, isOverride, isPrivate, isProtected, isPublic, isRequiredSkinPart, isStatic, isTopLevelDefinition, matches, resolveNamespace, resolveType, resolveType, resolveType, resolveType, setBindable, setContainingScope, setContingent, setDynamic, setFinal, setGeneratedEmbedClass, setImplicit, setLocation, setMetaTags, setModifier, setNameLocation, setNamespaceReference, setNative, setNode, setOverride, setPublic, setStatic, setTypeReference, toStorageName, toString, unsetOverride
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
findEffectDefinitions, findEventDefinitions, findSkinParts, findSkinStates, findStateNames, findStyleDefinitions, getBaseClassAsDisplayString, getBaseClassReference, getClassClassification, getConstructor, getDefaultPropertyName, getEffectDefinition, getEffectDefinitions, getEventDefinition, getEventDefinitions, getImplementedInterfacesAsDisplayStrings, getSkinParts, getSkinStates, getStateNames, getStyleDefinition, getStyleDefinitions, resolveBaseClass, resolveHostComponent
getNode, getProtectedNamespaceReference, getStaticProtectedNamespaceReference, isInstanceOf, typeIteratable
getContainedScope
getExplicitSourceComment, hasExplicitComment
getAbsoluteEnd, getAbsoluteStart, getAllMetaTags, getAncestorOfType, getBaseName, getBindableEventNames, getColumn, getContainingFilePath, getContainingScope, getContainingSourceFilePath, getDeprecationInfo, getEnd, getLine, getMetaTagByName, getMetaTagsByName, getModifiers, getNameColumn, getNameEnd, getNameLine, getNamespaceReference, getNameStart, getPackageName, getParent, getQualifiedName, getSourcePath, getStart, getTypeAsDisplayString, getTypeReference, hasMetaTagByName, hasModifier, hasNamespace, isBindable, isBindableStyle, isContingent, isContingentNeeded, isDeprecated, isDynamic, isFinal, isGeneratedEmbedClass, isImplicit, isInProject, isInternal, isNative, isOverride, isPrivate, isProtected, isPublic, isStatic, resolveNamespace, resolveType
protected ClassDefinitionBase(String name)
public IClassDefinition[] resolveAncestry(ICompilerProject project)
IClassDefinition
resolveAncestry
in interface IClassDefinition
public InterfaceDefinition resolveImplementedInterface(ICompilerProject project, int i)
project
- ICompilerProject
whose symbol table should be used
to resolve references.i
- Index indicating which implemented interface to resolve.IInterfaceDefinition
for the implemented interface if the
reference can be resolved, null otherwise.public IInterfaceDefinition[] resolveImplementedInterfaces(ICompilerProject project)
IClassDefinition
resolveImplementedInterfaces
in interface IClassDefinition
public IInterfaceDefinition[] resolveInterfacesImpl(ICompilerProject project)
resolveInterfacesImpl
in class TypeDefinitionBase
project
- the active projectpublic InterfaceDefinition[] resolveImplementedInterfaces(ICompilerProject project, Collection<ICompilerProblem> problems)
project
- project to resolve the interfaces inproblems
- a Collection to add problems to if any are encountered,
or null if the caller is not interested in the problems.public InterfaceDefinition[] resolveImplementedInterfaces(ICompilerProject project, Collection<ICompilerProblem> problems, boolean includeImplicits)
project
- project to resolve the interfaces inproblems
- a Collection to add problems to if any are encountered,
or null if the caller is not interested in the problems.includeImplicits
- true, if implicit interfaces should be found,
false, if they should not be found.public boolean needsEventDispatcher(ICompilerProject project)
The result of this method is cached in the ASScopeCache
for the
TypeScope
contained by this class.
needsEventDispatcher
in interface IClassDefinition
project
- The project to use to resolve interfaces and base classespublic boolean computeNeedsEventDispatcher(ICompilerProject project)
This method is called by the ASScopeCache
and should not be
called by other classes. All classes other than the ASScopeCache
should call needsEventDispatcher(ICompilerProject)
.
project
- The project to use to resolve interfaces and base classespublic boolean needsStaticEventDispatcher(ICompilerProject project)
needsStaticEventDispatcher
in interface IClassDefinition
project
- Project to use to resolve things.public Iterable<IClassDefinition> classIterable(ICompilerProject project, boolean includeThis)
public IClassDefinition.IClassIterator classIterator(ICompilerProject project, boolean includeThis)
IClassDefinition
classIterator
in interface IClassDefinition
project
- The ICompilerProject
within which references
should be resolved.includeThis
- A flag indicating whether the enumeration should start
with this class rather than with its superclass.IClassDefinition.IClassIterator
that iterates over
IClassDefinition
objects.public Iterator<IInterfaceDefinition> interfaceIterator(ICompilerProject project)
IClassDefinition
interfaceIterator
in interface IClassDefinition
project
- The ICompilerProject
within which references
should be resolvedIInterfaceDefinition
objects.public boolean isInstanceOf(ITypeDefinition type, ICompilerProject project)
ITypeDefinition
If this
is an IClassDefinition
and type
is an IClassDefinition
, this method determines whether
this
is a subclass of type
.
If this
is an IClassDefinition
and type
is an IInterfaceDefinition
, this method determines whether
this
is implements type
.
If this
is an IInterfaceDefinition
and
type
is an IInterfaceDefinition
, this method
determines whether this
is a subinterface of
type
.
A class or interface is considered an instance of itself.
isInstanceOf
in interface ITypeDefinition
type
- An ITypeDefinition
representing a class or interface.project
- The ICompilerProject
within which references should
be resolvedpublic Set<IInterfaceDefinition> resolveAllInterfaces(ICompilerProject project)
resolveAllInterfaces
in interface ITypeDefinition
public IClassDefinition[] getAlternativeClasses(ICompilerProject project, Version version)
IClassDefinition
getAlternativeClasses
in interface IClassDefinition
project
- the associated projectversion
- the Version
we are working against. If the
version is less than the "since" metaData, the replacement class will not
be returnedpublic IMetaTag[] findMetaTagsByName(String name, ICompilerProject project)
IClassDefinition
If the tag name is in the set
IMetaAttributeConstants.NON_INHERITING_METATAGS
, then only this
class is searched; otherwise the superclass chain is searched as well.
findMetaTagsByName
in interface IClassDefinition
name
- The tag name of the desired metadata, such as
"Event"
.project
- An ICompilerProject
object, for resolving the
superclass chain.IMetaTag
objects. If there is no metadata with
the specified tag name, the result is an empty array, not
null
.public abstract IReference[] getImplementedInterfaceReferences()
IClassDefinition
IReference
objects that will resolve to any interface this
class directly implements. This does not walk of the inheritance chain.getImplementedInterfaceReferences
in interface IClassDefinition
IReference
objects, or an empty array.public String getIconFile()
IClassDefinition
[IconFile(...)] metadata.
getIconFile
in interface IClassDefinition
null
if there is no such metadata.Copyright © 2016 The Apache Software Foundation. All rights reserved.