@NonNullByDefault public abstract class AbstractUnresolvableReference extends java.lang.Object implements ILinkingCandidate
Constructor and Description |
---|
AbstractUnresolvableReference(XExpression expression,
ExpressionTypeComputationState state) |
Modifier and Type | Method and Description |
---|---|
void |
applyToComputationState()
Apply this candidate to the current computation state model.
|
protected void |
applyType() |
protected void |
computeArgumentTypes() |
protected abstract java.util.List<XExpression> |
getArguments() |
org.eclipse.emf.ecore.EObject |
getContext() |
protected OwnedConverter |
getConverter() |
XExpression |
getExpression()
The current expression that shall be linked.
|
JvmIdentifiableElement |
getFeature()
The currently considered feature (if any).
|
ILinkingCandidate |
getPreferredCandidate(ILinkingCandidate other)
Produces the best candidate for the current two candidates.
|
protected StackedResolvedTypes |
getResolvedTypes() |
protected ExpressionTypeComputationState |
getState() |
boolean |
validate(IAcceptor<? super AbstractDiagnostic> result)
Produce diagnostics for this condidate.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
applyToModel, getTypeArguments
public AbstractUnresolvableReference(XExpression expression, ExpressionTypeComputationState state)
public XExpression getExpression()
ILinkingCandidate
getExpression
in interface ILinkingCandidate
public void applyToComputationState()
ILinkingCandidate
applyToComputationState
in interface ILinkingCandidate
protected void applyType()
protected ExpressionTypeComputationState getState()
protected StackedResolvedTypes getResolvedTypes()
public boolean validate(IAcceptor<? super AbstractDiagnostic> result)
ILinkingCandidate
validate
in interface ILinkingCandidate
true
if further validation should be performed.protected void computeArgumentTypes()
protected abstract java.util.List<XExpression> getArguments()
public ILinkingCandidate getPreferredCandidate(ILinkingCandidate other)
ILinkingCandidate
this
and other
) are ambiguous
so no prefered candidate can be chosen. In that case, a new linking candidate
may be produced that carries this information and will use that on ILinkingCandidate.applyToComputationState()
,
ILinkingCandidate.applyToModel()
, and ILinkingCandidate.validate(IAcceptor)
.getPreferredCandidate
in interface ILinkingCandidate
@Nullable public JvmIdentifiableElement getFeature()
ILinkingCandidate
null
.getFeature
in interface ILinkingCandidate
public org.eclipse.emf.ecore.EObject getContext()
protected OwnedConverter getConverter()