private void implementInvoke() { BlockExpression block = getBlock(); IParsedElement body = block.getBody(); DynamicFunctionSymbol value; if (body instanceof Expression) { Expression expression = (Expression) body; ReturnStatement syntheticReturnStatement = new ReturnStatement(); syntheticReturnStatement.setValue(expression); syntheticReturnStatement.initLocation( expression.getLocation().getOffset(), expression.getLocation().getLength(), expression.getLineNum(), expression.getColumn(), expression.getLocation().getScriptPartId()); value = new DynamicFunctionSymbol( null, INVOKE_METHOD_NAME, convertToObjectSignature(block), convertToObjectSymbols(block), syntheticReturnStatement); } else { value = new DynamicFunctionSymbol( null, INVOKE_METHOD_NAME, convertToObjectSignature(block), convertToObjectSymbols(block), (IStatement) body); } value.setClassMember(true); value.setPublic(true); value.setFinal(true); getParseInfo().addMemberFunction(value); }
@Override public IConstructorInfo getConstructorInfo() { return (IConstructorInfo) _dfsDelegate.getMethodOrConstructorInfo(); }
public MethodCallStatement getInitializer() { return _dfsDelegate.getInitializer(); }