public abstract class ScopeView extends ASScope
ASScopeBase.FilteredCollection<T>EMPTY_USE_ARRAY, scopedNodeRefallNamespacesSet, definitionStore| Modifier and Type | Method and Description |
|---|---|
void |
addDefinition(IDefinition d)
Adds the specified definition to this scope.
|
void |
addImplicitOpenNamespaces(CompilerProject compilerProject,
Set<INamespaceDefinition> result) |
void |
addImport(String target) |
void |
addLocalImportsToNamespaceSet(IWorkspace workspace,
Set<INamespaceDefinition> namespaceSet)
Adds
INamespaceDefinition's for each import in this scope to the
specified namespace set. |
void |
addNamespaceDirective(NamespaceDefinition.INamespaceDirective directive) |
void |
addUseDirective(NamespaceDefinition.IUseNamespaceDirective useDirective) |
void |
getAllLocalProperties(CompilerProject project,
Collection<IDefinition> defs,
Set<INamespaceDefinition> namespaceSet,
INamespaceDefinition extraNamespace)
Adds all local definitions from this scope to the specified collections
of definitions that have a namespace qualifier in the specified
definition set.
|
void |
getAllPropertiesForMemberAccess(CompilerProject project,
Collection<IDefinition> defs,
Set<INamespaceDefinition> namespaceSet)
Adds all definitions ( including definitions from base types ) in the
current scope to the specified collections of definitions that have a
namespace qualifier in the specified definition set, when looking for
definitions through a member access.
|
void |
getAllPropertiesForScopeChain(CompilerProject project,
Collection<IDefinition> defs,
Set<INamespaceDefinition> namespaceSet)
Adds all definitions ( including definitions from base types ) in the
current scope to the specified collections of definitions that have a
namespace qualifier in the specified definition set, when looking for
definitions in the scope chain.
|
ScopedDefinitionBase |
getContainingDefinition()
Get's the
ScopedDefinitionBase that contains this scope. |
String |
getContainingSourcePath(String baseName,
ICompilerProject project) |
ScopedDefinitionBase |
getDefinition()
Gets the scoped definition that produced this scope.
|
Set<INamespaceDefinition> |
getExplicitImportQualifiers(CompilerProject project,
String name)
Return the additional namespaces for a reference, if the name has been
explicitly imported.
|
NamespaceDefinition.INamespaceDirective |
getFirstNamespaceDirective()
Gets the first namespace definition or use namespace directive in the
scope.
|
IDefinitionSet |
getLocalDefinitionSetByName(String name)
Gets the set of definitions in this one scope that have the specified base name.
|
protected void |
getPropertyForMemberAccess(CompilerProject project,
Collection<IDefinition> defs,
String baseName,
NamespaceSetPredicate namespaceSet,
boolean findAll)
Finds all the definitions in this scope that match the specified
namespace set and base name.
|
protected void |
getPropertyForScopeChain(CompilerProject project,
Collection<IDefinition> defs,
String baseName,
NamespaceSetPredicate namespaceSet,
boolean findAll)
Implementation of getPropertyForScopeChain.
|
protected abstract org.apache.flex.compiler.internal.scopes.TypeScope.ScopeKind |
getScopeKind()
Derived classes must implement this method to report what kind of scope
they are (instance or static).
|
protected INamespaceReference[] |
getUsedNamespaces() |
boolean |
isInstanceScope() |
boolean |
isPackageName(String p)
Determine whether the string passed in is a known package name The scope
will check if the package was introduced by any of it's imports, and if
not will delegate to its containing scope.
|
boolean |
isStaticScope() |
protected boolean |
namespaceSetSameAsContainingScopeNamespaceSet() |
ASScope |
resolveSuperScope(ICompilerProject project)
Get the scope of the super class - this method will do the right thing depending on
if this scope is the instance of static scope.
|
addDependencyOnBuiltinType, addNamespacesFromContainingScope, adjustNamespaceSetForSuper, canDelegateLookupToContainingScope, compact, findProperty, findProperty, findProperty, findProperty, findProperty, findProperty, findProperty, findProperty, findPropertyQualified, findPropertyQualified, findPropertyQualified, findPropertyQualified, getContainingClass, getContainingScope, getContainingScopeExplicitImports, getFileScope, getImports, getNamespaceSet, getNamespaceSetForName, getNamespaceSetForSuper, getPropertiesByNameForMemberAccess, getPropertyByNameForMemberAccess, getPropertyForMemberAccess, getPropertyFromDef, getPropertyFromDef, getQualifiedPropertyFromDef, getQualifiedPropertyFromDef, getScopeNode, getWorkspace, hasAnyBindableDefinitions, isInWith, reconnectScopeNode, setAsContainingScopeOfAnonymousFunction, setContainingDefinition, setContainingScope, toStringHeaderaddDefinitionToStore, getAllLocalDefinitions, getAllLocalDefinitionSets, getAllLocalNames, getLocalProperty, getLocalProperty, getLocalProperty, isContingentDefinitionNeeded, removeDefinition, removeDefinitionFromStore, toString, verifyprotected abstract org.apache.flex.compiler.internal.scopes.TypeScope.ScopeKind getScopeKind()
protected void getPropertyForScopeChain(CompilerProject project, Collection<IDefinition> defs, String baseName, NamespaceSetPredicate namespaceSet, boolean findAll)
ASScopeCollection passed in.getPropertyForScopeChain in class ASScopeproject - CompilerProject to resolve things indefs - The Collection to add the results tobaseName - The name of the definition to findnamespaceSet - the NamespaceSetPredicate to use if the namespace set needs to be adjusted
during lookupprotected void getPropertyForMemberAccess(CompilerProject project, Collection<IDefinition> defs, String baseName, NamespaceSetPredicate namespaceSet, boolean findAll)
ASScope
This version of the method expects that the Collection passed in will implement
whatever filtering is necessary, other than filtering based on the base name.
For most cases, this means the Collection will be an ASScopeBase.FilteredCollection
with a NamespaceSetPredicate.
The NamespaceSetPredicate must also be passed down as some name resolution
may need it to apply extra namespaces (i.e. deal with protected namespaces)
If this scope is not for a class or interface definition then only definitions in this scope are considered.
If this scope is for a class or interface definition then definitions in this scope and the scope for any implemented or extended interfaces and classes are also considered. Unless findAll is true, then this function returns as soon as one or more definitions has been found that match the namespace set and base name.
getPropertyForMemberAccess in class ASScopeproject - ICompilerProject whose symbol table is used to
resolve namespace references in the "use namespace" set this scope.defs - Collection of IDefinition's to add found definitions
to. This collection must perform any necessary filtering of results, other than filtering
based on the baseName.baseName - The name of the definition(s) to find.namespaceSet - The NamespaceSetPredicate which the name resolution code
can use to modify the namespace set as necessary.findAll - If true find all match definitions that match the baseName
and namespace set not just those in the first scope that had one or more
matches.public void getAllPropertiesForScopeChain(CompilerProject project, Collection<IDefinition> defs, Set<INamespaceDefinition> namespaceSet)
ASScopegetAllPropertiesForScopeChain in class ASScopeproject - CompilerProject used to resolve reference to
definitions outside of the ICompilationUnit that contains this
scope.defs - Collection that found IDefinition's are added to.namespaceSet - Namespace set in which the qualifier of any matching
definition must exist to be considered a match.public void getAllPropertiesForMemberAccess(CompilerProject project, Collection<IDefinition> defs, Set<INamespaceDefinition> namespaceSet)
ASScopegetAllPropertiesForMemberAccess in class ASScopeproject - CompilerProject used to resolve reference to
definitions outside of the ICompilationUnit that contains this
scope.defs - Collection that found IDefinition's are added to.namespaceSet - Namespace set in which the qualifier of any matching
definition must exist to be considered a match.public final void getAllLocalProperties(CompilerProject project, Collection<IDefinition> defs, Set<INamespaceDefinition> namespaceSet, INamespaceDefinition extraNamespace)
ASScopeBasegetAllLocalProperties in class ASScopeBaseproject - CompilerProject used to resolve reference to
definitions outside of the ICompilationUnit that contains this
scope.defs - Collection that found IDefinition's are added to.namespaceSet - Namespace set in which the qualifier of any matching
definition must exist to be considered a match.extraNamespace - A single extra INamespaceDefinition that is
considered part of the namespace set by this method. This is used when
resolving protected definitions in a class scope.protected boolean namespaceSetSameAsContainingScopeNamespaceSet()
namespaceSetSameAsContainingScopeNamespaceSet in class ASScopepublic void addImplicitOpenNamespaces(CompilerProject compilerProject, Set<INamespaceDefinition> result)
addImplicitOpenNamespaces in class ASScopepublic void addDefinition(IDefinition d)
ASScopeBaseaddDefinition in class ASScopeBased - The IDefinition to be added.public ScopedDefinitionBase getDefinition()
IASScopegetDefinition in interface IASScopegetDefinition in class ASScopeIScopedDefinition that contains this scope.public IDefinitionSet getLocalDefinitionSetByName(String name)
IASScopegetLocalDefinitionSetByName in interface IASScopegetLocalDefinitionSetByName in class ASScopeBasename - A String specifying a base name.IDefinitionSet containing definitions with that base name,
or null if there are no such definitions.public String getContainingSourcePath(String baseName, ICompilerProject project)
getContainingSourcePath in class ASScopepublic void addLocalImportsToNamespaceSet(IWorkspace workspace, Set<INamespaceDefinition> namespaceSet)
ASScopeINamespaceDefinition's for each import in this scope to the
specified namespace set.addLocalImportsToNamespaceSet in class ASScopeworkspace - IWorkspace used to construct
INamespaceDefinition's for imported packages.namespaceSet - Namespace set to add namespaces to.public Set<INamespaceDefinition> getExplicitImportQualifiers(CompilerProject project, String name)
ASScopegetExplicitImportQualifiers in class ASScopeproject - CompilerProject to use to resolve the package INamespacesname - The name of the referenceprotected INamespaceReference[] getUsedNamespaces()
getUsedNamespaces in class ASScopepublic void addUseDirective(NamespaceDefinition.IUseNamespaceDirective useDirective)
addUseDirective in class ASScopepublic void addNamespaceDirective(NamespaceDefinition.INamespaceDirective directive)
addNamespaceDirective in class ASScopepublic NamespaceDefinition.INamespaceDirective getFirstNamespaceDirective()
getFirstNamespaceDirective in class ASScopepublic final ScopedDefinitionBase getContainingDefinition()
ASScopeScopedDefinitionBase that contains this scope. This
method differs from ASScope.getDefinition() in that this method will
walk up the scope chain.getContainingDefinition in class ASScopeScopedDefinitionBase that contains this scopepublic final boolean isPackageName(String p)
ASScopeisPackageName in class ASScopep - the string to testpublic boolean isInstanceScope()
public boolean isStaticScope()
public ASScope resolveSuperScope(ICompilerProject project)
project - the Project to resolve things inCopyright © 2016 The Apache Software Foundation. All rights reserved.