org.eclipse.internal.xtend.expression.ast
Class FeatureCall

java.lang.Object
  extended by org.eclipse.internal.xtend.expression.ast.SyntaxElement
      extended by org.eclipse.internal.xtend.expression.ast.Expression
          extended by org.eclipse.internal.xtend.expression.ast.FeatureCall
All Implemented Interfaces:
ISyntaxElement, Analyzable, Evaluatable
Direct Known Subclasses:
CollectionExpression, OperationCall, TypeSelectExpression

public class FeatureCall
extends Expression

Author:
Sven Efftinge (http://www.efftinge.de), Arno Haase, Bernd Kolb, Karsten Thoms - maintenance, Ed Merks - Bug#418156

Field Summary
 
Fields inherited from class org.eclipse.internal.xtend.expression.ast.SyntaxElement
end, line, start
 
Constructor Summary
FeatureCall(Identifier name, Expression target)
           
 
Method Summary
 Type analyzeInternal(ExecutionContext ctx, java.util.Set<AnalysationIssue> issues)
          analyzes in the following order if (target==null) 1) enumeration literal 2) variable 3) implicite var (e.g.
protected  Type analyzeTarget(ExecutionContext ctx, java.util.Set<AnalysationIssue> issues)
           
 java.lang.Object evaluateInternal(ExecutionContext ctx)
          evaluates in the following order if (target==null) 1) enumeration literal 2) variable 3) implicit var (e.g.
protected  Type findType(java.lang.Object value, ExecutionContext ctx)
           
 StaticProperty getEnumLiteral(ExecutionContext ctx)
           
 Identifier getName()
           
 java.lang.String getNameString(ExecutionContext context)
           
 Expression getTarget()
           
 void setTarget(Expression target)
           
protected  java.lang.String toStringInternal()
           
 
Methods inherited from class org.eclipse.internal.xtend.expression.ast.Expression
analyze, evaluate, findType, toString
 
Methods inherited from class org.eclipse.internal.xtend.expression.ast.SyntaxElement
accept, getEnd, getFileName, getLine, getStart, setEnd, setFileName, setLine, setStart
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FeatureCall

public FeatureCall(Identifier name,
                   Expression target)
Method Detail

getTarget

public Expression getTarget()

setTarget

public void setTarget(Expression target)

getName

public Identifier getName()

getNameString

public java.lang.String getNameString(ExecutionContext context)
Specified by:
getNameString in interface ISyntaxElement
Overrides:
getNameString in class SyntaxElement

getEnumLiteral

public StaticProperty getEnumLiteral(ExecutionContext ctx)

evaluateInternal

public java.lang.Object evaluateInternal(ExecutionContext ctx)
evaluates in the following order if (target==null) 1) enumeration literal 2) variable 3) implicit var (e.g. this) being everything but an empty list 4) type literal otherwise it's a property if the above doesn't match throw an error as long as target is no empty Collection

Specified by:
evaluateInternal in class Expression

analyzeInternal

public Type analyzeInternal(ExecutionContext ctx,
                            java.util.Set<AnalysationIssue> issues)
analyzes in the following order if (target==null) 1) enumeration literal 2) variable 3) implicite var (e.g. this) 4) type literal otherwise it's a property

Specified by:
analyzeInternal in class Expression

analyzeTarget

protected Type analyzeTarget(ExecutionContext ctx,
                             java.util.Set<AnalysationIssue> issues)

findType

protected Type findType(java.lang.Object value,
                        ExecutionContext ctx)

toStringInternal

protected java.lang.String toStringInternal()
Specified by:
toStringInternal in class Expression