public class LogicalContainerAwareReentrantTypeResolver extends DefaultReentrantTypeResolver
Modifier and Type | Class and Description |
---|---|
protected static class |
LogicalContainerAwareReentrantTypeResolver.AbstractDemandTypeReferenceProvider |
static class |
LogicalContainerAwareReentrantTypeResolver.AnyTypeReferenceProvider |
class |
LogicalContainerAwareReentrantTypeResolver.DemandTypeReferenceProvider |
protected static class |
LogicalContainerAwareReentrantTypeResolver.LocalVariableCapturerImpl |
Modifier and Type | Field and Description |
---|---|
protected java.util.Set<org.eclipse.emf.ecore.EObject> |
rootedInstances |
allRootedExpressions
NULL
Constructor and Description |
---|
LogicalContainerAwareReentrantTypeResolver() |
Modifier and Type | Method and Description |
---|---|
protected void |
_computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmConstructor constructor) |
protected void |
_computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmDeclaredType type) |
protected void |
_computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmField field) |
protected void |
_computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmOperation operation) |
protected void |
_doPrepare(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmConstructor constructor,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext) |
protected void |
_doPrepare(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmDeclaredType type,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByType) |
protected void |
_doPrepare(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmField field,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext) |
protected void |
_doPrepare(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmOperation operation,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext) |
protected void |
_recordExpressions(JvmDeclaredType type) |
protected void |
_recordExpressions(JvmExecutable executable) |
protected void |
_recordExpressions(JvmFeature feature) |
protected IFeatureScopeSession |
addExtensionFieldsToMemberSession(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmDeclaredType type,
JvmIdentifiableElement thisFeature,
java.util.Set<java.lang.String> seenNames,
java.util.Set<JvmType> seenTypes) |
protected void |
addExtensionProviders(ITypeComputationState state,
java.util.List<JvmFormalParameter> parameters) |
protected IFeatureScopeSession |
addExtensionsToMemberSession(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmDeclaredType type) |
protected IFeatureScopeSession |
addThisAndSuper(IFeatureScopeSession session,
ITypeReferenceOwner owner,
JvmDeclaredType type) |
protected IFeatureScopeSession |
addThisAndSuper(IFeatureScopeSession session,
ITypeReferenceOwner owner,
JvmDeclaredType thisType,
JvmTypeReference superType,
boolean addNestedTypes) |
protected IFeatureScopeSession |
addThisTypeToStaticScope(IFeatureScopeSession session,
JvmDeclaredType type) |
protected void |
clear() |
protected void |
computeAnnotationTypes(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmAnnotationTarget annotable) |
protected void |
computeAnnotationTypes(ResolvedTypes resolvedTypes,
IFeatureScopeSession sessions,
JvmExecutable operation) |
protected void |
computeAnnotationTypes(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
java.util.List<JvmAnnotationReference> annotations) |
protected void |
computeLocalTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmFeature feature) |
protected void |
computeMemberTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmDeclaredType type) |
protected void |
computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
org.eclipse.emf.ecore.EObject element) |
protected void |
computeTypes(ResolvedTypes resolvedTypes,
IFeatureScopeSession session) |
protected void |
computeTypes(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
org.eclipse.emf.ecore.EObject element) |
protected JvmTypeReference |
createComputedTypeReference(java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmMember member,
InferredTypeIndicator indicator,
boolean returnType) |
protected XAbstractFeatureCall |
createExtensionProvider(JvmIdentifiableElement thisFeature,
JvmField field) |
protected AbstractReentrantTypeReferenceProvider |
createTypeProvider(java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmMember member,
boolean returnType) |
protected AbstractReentrantTypeReferenceProvider |
createTypeProvider(java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext,
ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmMember member,
XExpression expression,
boolean returnType) |
protected StackedResolvedTypes |
declareTypeParameters(ResolvedTypes resolvedTypes,
JvmIdentifiableElement declarator,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext) |
protected void |
doPrepare(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmIdentifiableElement element,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext) |
protected AnnotationLookup |
getAnnotationLookup() |
protected LogicalContainerAwareReentrantTypeResolver.AbstractDemandTypeReferenceProvider |
getComputedTypeReference(JvmTypeReference knownType) |
JvmTypeReference |
getExtendedClass(JvmDeclaredType type) |
protected java.util.Set<org.eclipse.emf.ecore.EObject> |
getInferredElements(org.eclipse.emf.ecore.EObject element) |
protected XExpression |
getInferredFrom(JvmTypeReference typeReference)
Returns the expression that will be used to infer the given type from.
|
protected ILogicalContainerProvider |
getLogicalContainerProvider() |
protected OverrideHelper |
getOverrideHelper() |
protected LightweightTypeReference |
getReturnTypeOfOverriddenOperation(JvmOperation operation,
ResolvedTypes resolvedTypes,
IFeatureScopeSession session)
Returns
null if the given operation declares it's own return type or if it does not override
another operation. |
protected JvmType |
getRootJvmType() |
protected org.eclipse.emf.ecore.EObject |
getSourceElement(org.eclipse.emf.ecore.EObject element) |
protected IBatchTypeResolver |
getTypeResolver() |
protected boolean |
isExtensionProvider(JvmAnnotationTarget annotatedElement) |
protected boolean |
isHandled(org.eclipse.emf.ecore.EObject context) |
protected boolean |
isHandled(JvmIdentifiableElement identifiableElement) |
protected boolean |
isHandled(XExpression expression) |
protected boolean |
isPartOfExpressionTree(org.eclipse.emf.ecore.EObject container)
Returns true if the container can be nested within the expression tree.
|
protected boolean |
isStatic(JvmIdentifiableElement declarator) |
protected void |
markComputing(JvmTypeReference knownType) |
protected void |
markToBeInferred(ResolvedTypes resolvedTypes,
XExpression expression) |
protected void |
mergeChildTypes(ResolvedTypes childResolvedTypes) |
protected java.util.Map<JvmIdentifiableElement,ResolvedTypes> |
prepare(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession)
Assign computed type references to the identifiable structural elements in the processed type.
|
protected void |
prepareMembers(ResolvedTypes resolvedTypes,
IFeatureScopeSession featureScopeSession,
JvmDeclaredType type,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByType) |
protected void |
recordAnnotationExpressions(JvmAnnotationTarget annotable) |
protected void |
recordAnnotationExpressions(JvmExecutable executable) |
protected void |
recordAnnotationExpressions(java.util.List<JvmAnnotationReference> annotations) |
protected void |
recordExpressions(JvmIdentifiableElement element) |
protected void |
requestCapturedLocalVariables(JvmTypeReference toBeWrapped,
JvmDeclaredType type,
ResolvedTypes resolvedTypes,
java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext,
IAcceptor<JvmTypeReference> result) |
protected void |
setAllRootedExpressions(java.util.Set<org.eclipse.emf.ecore.EObject> allRootedExpressions) |
protected JvmTypeReference |
toJavaCompliantTypeReference(LightweightTypeReference result,
IFeatureScopeSession session) |
protected void |
unmarkComputing(JvmTypeReference knownType) |
_computeTypes, createFeatureScopeTracker, createResolvedTypes, getBatchScopeProvider, getExpressionArgumentFactory, getFeatureScopes, getImplicitlyMessagePart, getInvalidWritableVariableAccessMessage, getIssueSeverities, getRoot, getScopeProviderAccess, getServices, getTypeArgumentMerger, getTypeComputer, getXbaseFactory, initializeFrom, isDisallowedName, isDiscouragedName, isShadowingAllowed, reentrantResolve, resolve, setTypeComputer
toString
public LogicalContainerAwareReentrantTypeResolver()
protected JvmType getRootJvmType()
protected void clear()
clear
in class DefaultReentrantTypeResolver
protected void setAllRootedExpressions(java.util.Set<org.eclipse.emf.ecore.EObject> allRootedExpressions)
setAllRootedExpressions
in class DefaultReentrantTypeResolver
protected boolean isHandled(JvmIdentifiableElement identifiableElement)
isHandled
in class DefaultReentrantTypeResolver
protected boolean isHandled(XExpression expression)
isHandled
in class DefaultReentrantTypeResolver
protected boolean isPartOfExpressionTree(org.eclipse.emf.ecore.EObject container)
XCasePart
,
XCatchClause
or XAnnotationElementValuePair
. Clients may override.protected boolean isHandled(org.eclipse.emf.ecore.EObject context)
isHandled
in class DefaultReentrantTypeResolver
protected java.util.Map<JvmIdentifiableElement,ResolvedTypes> prepare(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession)
protected void recordExpressions(JvmIdentifiableElement element)
protected void _recordExpressions(JvmFeature feature)
protected void _recordExpressions(JvmExecutable executable)
protected void _recordExpressions(JvmDeclaredType type)
protected void doPrepare(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmIdentifiableElement element, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext)
protected void _doPrepare(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmDeclaredType type, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByType)
protected void prepareMembers(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmDeclaredType type, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByType)
protected StackedResolvedTypes declareTypeParameters(ResolvedTypes resolvedTypes, JvmIdentifiableElement declarator, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext)
protected boolean isStatic(JvmIdentifiableElement declarator)
protected void _doPrepare(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmField field, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext)
protected LogicalContainerAwareReentrantTypeResolver.AbstractDemandTypeReferenceProvider getComputedTypeReference(JvmTypeReference knownType)
protected void markComputing(JvmTypeReference knownType)
protected void unmarkComputing(JvmTypeReference knownType)
protected void _doPrepare(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmConstructor constructor, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext)
protected void recordAnnotationExpressions(JvmExecutable executable)
protected void recordAnnotationExpressions(JvmAnnotationTarget annotable)
protected void recordAnnotationExpressions(java.util.List<JvmAnnotationReference> annotations)
protected void _doPrepare(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmOperation operation, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext)
protected JvmTypeReference createComputedTypeReference(java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmMember member, InferredTypeIndicator indicator, boolean returnType)
protected AbstractReentrantTypeReferenceProvider createTypeProvider(java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmMember member, boolean returnType)
protected AbstractReentrantTypeReferenceProvider createTypeProvider(java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmMember member, XExpression expression, boolean returnType)
protected void markToBeInferred(ResolvedTypes resolvedTypes, XExpression expression)
protected XExpression getInferredFrom(JvmTypeReference typeReference)
protected void computeTypes(ResolvedTypes resolvedTypes, IFeatureScopeSession session)
computeTypes
in class DefaultReentrantTypeResolver
protected void computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, org.eclipse.emf.ecore.EObject element)
protected void computeTypes(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, org.eclipse.emf.ecore.EObject element)
computeTypes
in class DefaultReentrantTypeResolver
protected void _computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmField field)
protected void _computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmConstructor constructor)
protected void computeLocalTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmFeature feature)
protected void addExtensionProviders(ITypeComputationState state, java.util.List<JvmFormalParameter> parameters)
protected void _computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmOperation operation)
protected void computeAnnotationTypes(ResolvedTypes resolvedTypes, IFeatureScopeSession sessions, JvmExecutable operation)
protected void mergeChildTypes(ResolvedTypes childResolvedTypes)
protected void computeAnnotationTypes(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmAnnotationTarget annotable)
protected void computeAnnotationTypes(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, java.util.List<JvmAnnotationReference> annotations)
protected void _computeTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmDeclaredType type)
protected void computeMemberTypes(java.util.Map<JvmIdentifiableElement,ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmDeclaredType type)
protected IFeatureScopeSession addThisAndSuper(IFeatureScopeSession session, ITypeReferenceOwner owner, JvmDeclaredType type)
protected IFeatureScopeSession addThisAndSuper(IFeatureScopeSession session, ITypeReferenceOwner owner, JvmDeclaredType thisType, JvmTypeReference superType, boolean addNestedTypes)
protected IFeatureScopeSession addThisTypeToStaticScope(IFeatureScopeSession session, JvmDeclaredType type)
public JvmTypeReference getExtendedClass(JvmDeclaredType type)
protected IFeatureScopeSession addExtensionsToMemberSession(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmDeclaredType type)
protected IFeatureScopeSession addExtensionFieldsToMemberSession(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmDeclaredType type, JvmIdentifiableElement thisFeature, java.util.Set<java.lang.String> seenNames, java.util.Set<JvmType> seenTypes)
protected XAbstractFeatureCall createExtensionProvider(JvmIdentifiableElement thisFeature, JvmField field)
protected boolean isExtensionProvider(JvmAnnotationTarget annotatedElement)
protected AnnotationLookup getAnnotationLookup()
protected ILogicalContainerProvider getLogicalContainerProvider()
protected IBatchTypeResolver getTypeResolver()
protected LightweightTypeReference getReturnTypeOfOverriddenOperation(JvmOperation operation, ResolvedTypes resolvedTypes, IFeatureScopeSession session)
null
if the given operation declares it's own return type or if it does not override
another operation.protected OverrideHelper getOverrideHelper()
protected org.eclipse.emf.ecore.EObject getSourceElement(org.eclipse.emf.ecore.EObject element)
getSourceElement
in class DefaultReentrantTypeResolver
protected java.util.Set<org.eclipse.emf.ecore.EObject> getInferredElements(org.eclipse.emf.ecore.EObject element)
protected JvmTypeReference toJavaCompliantTypeReference(LightweightTypeReference result, IFeatureScopeSession session)
protected void requestCapturedLocalVariables(JvmTypeReference toBeWrapped, JvmDeclaredType type, ResolvedTypes resolvedTypes, java.util.Map<JvmIdentifiableElement,ResolvedTypes> resolvedTypesByContext, IAcceptor<JvmTypeReference> result)