org.eclipse.xtext.xbase.linking
Class FeatureCallChecker
java.lang.Object
org.eclipse.xtext.xbase.linking.FeatureCallChecker
public class FeatureCallChecker
- extends java.lang.Object
Checks whether a given JvmIdentifiableElement
can possibly be called by a
given XAbstractFeatureCall
.
Taken from section 15.12.2.1
Identify Potentially Applicable Methods of the Java Language Specification, the following rules are applied:
- The arity of the member is lesser or equal to the arity of the method invocation.
- If the member is a variable arity method with arity n, the arity of the method invocation is greater or equal to
n-1.
- If the member is a fixed arity method with arity n, the arity of the method invocation is equal to n.
- If the method invocation includes explicit type parameters, and the member is a generic method, then the number
of actual type parameters is equal to the number of formal type parameters.
- Author:
- Sven Efftinge
Method Summary |
protected java.lang.String |
_case(JvmConstructor input,
XConstructorCall context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmField input,
XAssignment context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmField input,
XFeatureCall context,
org.eclipse.emf.ecore.EReference reference,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmField input,
XMemberFeatureCall context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmIdentifiableElement input,
XFeatureCall context,
org.eclipse.emf.ecore.EReference ref,
LocalVarDescription description)
|
protected java.lang.String |
_case(JvmOperation input,
XAssignment context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmOperation input,
XBinaryOperation context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmOperation input,
XFeatureCall context,
org.eclipse.emf.ecore.EReference reference,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmOperation input,
XMemberFeatureCall context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(JvmOperation input,
XUnaryOperation context,
org.eclipse.emf.ecore.EReference reference,
JvmFeatureDescription jvmFeatureDescription)
|
protected java.lang.String |
_case(java.lang.Object input,
java.lang.Object context,
org.eclipse.emf.ecore.EReference ref,
IValidatedEObjectDescription description)
|
protected boolean |
areArgumentTypesValid(JvmExecutable exectuable,
java.util.List<XExpression> arguments,
TypeArgumentContext typeArgumentContext)
|
java.lang.String |
check(IEObjectDescription input)
|
protected java.lang.String |
checkJvmOperation(JvmOperation input,
XAbstractFeatureCall context,
boolean isExplicitOperationCall,
JvmFeatureDescription jvmFeatureDescription,
org.eclipse.emf.common.util.EList<XExpression> arguments)
|
protected ITypeProvider |
getTypeProvider()
|
void |
initialize(org.eclipse.emf.ecore.EObject context,
org.eclipse.emf.ecore.EReference reference)
|
protected boolean |
isCompatibleArgument(JvmTypeReference declaredType,
JvmTypeReference actualType)
|
protected boolean |
isSugaredMethodInvocationWithoutParanthesis(JvmFeatureDescription jvmFeatureDescription)
|
protected boolean |
isValidNumberOfArguments(JvmExecutable executable,
java.util.List<XExpression> arguments)
|
void |
setTypeProvider(ITypeProvider typeProvider)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FeatureCallChecker
public FeatureCallChecker()
setTypeProvider
public void setTypeProvider(ITypeProvider typeProvider)
getTypeProvider
protected ITypeProvider getTypeProvider()
initialize
public void initialize(org.eclipse.emf.ecore.EObject context,
org.eclipse.emf.ecore.EReference reference)
check
public java.lang.String check(IEObjectDescription input)
_case
protected java.lang.String _case(java.lang.Object input,
java.lang.Object context,
org.eclipse.emf.ecore.EReference ref,
IValidatedEObjectDescription description)
_case
protected java.lang.String _case(JvmConstructor input,
XConstructorCall context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmOperation input,
XBinaryOperation context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmOperation input,
XAssignment context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmField input,
XAssignment context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmField input,
XMemberFeatureCall context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmIdentifiableElement input,
XFeatureCall context,
org.eclipse.emf.ecore.EReference ref,
LocalVarDescription description)
_case
protected java.lang.String _case(JvmField input,
XFeatureCall context,
org.eclipse.emf.ecore.EReference reference,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmOperation input,
XMemberFeatureCall context,
org.eclipse.emf.ecore.EReference ref,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmOperation input,
XFeatureCall context,
org.eclipse.emf.ecore.EReference reference,
JvmFeatureDescription jvmFeatureDescription)
_case
protected java.lang.String _case(JvmOperation input,
XUnaryOperation context,
org.eclipse.emf.ecore.EReference reference,
JvmFeatureDescription jvmFeatureDescription)
checkJvmOperation
protected java.lang.String checkJvmOperation(JvmOperation input,
XAbstractFeatureCall context,
boolean isExplicitOperationCall,
JvmFeatureDescription jvmFeatureDescription,
org.eclipse.emf.common.util.EList<XExpression> arguments)
areArgumentTypesValid
protected boolean areArgumentTypesValid(JvmExecutable exectuable,
java.util.List<XExpression> arguments,
TypeArgumentContext typeArgumentContext)
isValidNumberOfArguments
protected boolean isValidNumberOfArguments(JvmExecutable executable,
java.util.List<XExpression> arguments)
isSugaredMethodInvocationWithoutParanthesis
protected boolean isSugaredMethodInvocationWithoutParanthesis(JvmFeatureDescription jvmFeatureDescription)
isCompatibleArgument
protected boolean isCompatibleArgument(JvmTypeReference declaredType,
JvmTypeReference actualType)