@Override public IResolvedTypes get(int index) { return getDelegate(index); }
@Override public LightweightTypeReference getReturnType(XExpression expression, boolean onlyExplicitReturn) { IResolvedTypes delegate = getDelegate(expression); return delegate.getReturnType(expression, onlyExplicitReturn); }
@Override public List<LightweightTypeReference> getThrownExceptions(XExpression obj) { IResolvedTypes delegate = getDelegate(obj); return delegate.getThrownExceptions(obj); }
@Override public LightweightTypeReference getActualType(XExpression expression) { IResolvedTypes delegate = getDelegate(expression); return delegate.getActualType(expression); }
@Override public IFeatureLinkingCandidate getLinkingCandidate(/* @Nullable */ XAbstractFeatureCall featureCall) { if (featureCall == null) return null; IResolvedTypes delegate = getDelegate(featureCall); return delegate.getLinkingCandidate(featureCall); }
protected IResolvedTypes getDelegate(EObject object) { for(int i = 0; i < resolvers.size(); i++) { AbstractRootedReentrantTypeResolver resolver = resolvers.get(i); if (resolver.isHandled(object)) { return getDelegate(i); } } return IResolvedTypes.NULL; }
@Override public IExpressionScope getExpressionScope(EObject context, IExpressionScope.Anchor anchor) { IResolvedTypes delegate = getDelegate(context); return delegate.getExpressionScope(context, anchor); }
@Override public IConstructorLinkingCandidate getLinkingCandidate(/* @Nullable */ XConstructorCall constructorCall) { if (constructorCall == null) return null; IResolvedTypes delegate = getDelegate(constructorCall); return delegate.getLinkingCandidate(constructorCall); }
@Override public LightweightTypeReference getReturnType(XExpression expression) { IResolvedTypes delegate = getDelegate(expression); return delegate.getReturnType(expression); }
@Override public boolean isVoidTypeAllowed(XExpression expression) { IResolvedTypes delegate = getDelegate(expression); return delegate.isVoidTypeAllowed(expression); }
@Override public LightweightTypeReference getExpectedReturnType(XExpression expression) { IResolvedTypes delegate = getDelegate(expression); return delegate.getExpectedReturnType(expression); }
@Override public JvmIdentifiableElement getLinkedFeature(/* @Nullable */ XAbstractFeatureCall featureCall) { if (featureCall == null) return null; IResolvedTypes delegate = getDelegate(featureCall); return delegate.getLinkedFeature(featureCall); }
@Override public boolean isRefinedType(XExpression expression) { IResolvedTypes delegate = getDelegate(expression); return delegate.isRefinedType(expression); }
protected IResolvedTypes getDelegate(XExpression expression) { for(int i = 0; i < resolvers.size(); i++) { AbstractRootedReentrantTypeResolver resolver = resolvers.get(i); if (resolver.isHandled(expression)) { return getDelegate(i); } } return IResolvedTypes.NULL; }
@Override public boolean hasExpressionScope(EObject context, IExpressionScope.Anchor anchor) { IResolvedTypes delegate = getDelegate(context); return delegate.hasExpressionScope(context, anchor); }
@Override public LightweightTypeReference getExpectedType(XExpression expression) { IResolvedTypes delegate = getDelegate(expression); return delegate.getExpectedType(expression); }
@Override public List<LightweightTypeReference> getActualTypeArguments(XExpression expression) { IResolvedTypes delegate = getDelegate(expression); return delegate.getActualTypeArguments(expression); }
@Override public JvmIdentifiableElement getLinkedFeature(/* @Nullable */ XConstructorCall constructorCall) { if (constructorCall == null) return null; IResolvedTypes delegate = getDelegate(constructorCall); return delegate.getLinkedFeature(constructorCall); }
@Override public LightweightTypeReference getActualType(JvmIdentifiableElement identifiable) { for(int i = 0; i < resolvers.size(); i++) { AbstractRootedReentrantTypeResolver resolver = resolvers.get(i); if (resolver.isHandled(identifiable)) { IResolvedTypes delegate = getDelegate(i); return delegate.getActualType(identifiable); } } return null; }