Tabnine Logo
FunctionInvocationNode
Code IndexAdd Tabnine to your IDE (free)

How to use
FunctionInvocationNode
in
org.kie.dmn.feel.lang.ast

Best Java code snippets using org.kie.dmn.feel.lang.ast.FunctionInvocationNode (Showing top 11 results out of 315)

origin: org.kie/kie-dmn-feel

public static FunctionInvocationNode newFunctionInvocationNode(ParserRuleContext ctx, BaseNode name, ListNode params) {
  return new FunctionInvocationNode( ctx, name, params );
}
origin: org.kie/kie-dmn-feel

private Object invokeTheFunction(List<String> names, FEELFunction fn, EvaluationContext ctx, Object[] params) {
  if (names.size() == 1) {
    Object result = fn.invokeReflectively(ctx, params);
    return result;
  } else {
    try {
      Object newRoot = ctx.getValue(names.get(0));
      ctx.enterFrame();
      try {
        Map<String, Object> asMap = ((Map<String, Object>) newRoot);
        asMap.forEach(ctx::setValue);
      } catch (ClassCastException e) {
        ctx.setRootObject(newRoot); // gracefully handle the less common scenario.
      }
      return invokeTheFunction(names.subList(1, names.size()), fn, ctx, params);
    } finally {
      ctx.exitFrame();
    }
  }
}
origin: org.kie/kie-dmn-feel

@Override
public DirectCompilerResult visit(FunctionInvocationNode n) {
  DirectCompilerResult functionName = n.getName().accept(this);
  DirectCompilerResult params = n.getParams().accept(this);
  return DirectCompilerResult.of(
      Expressions.invoke(functionName.getExpression(), params.getExpression()),
      functionName.resultType)
      .withFD(functionName)
      .withFD(params);
}
origin: org.kie/kie-dmn-feel

@Test
public void testLogicalNegation() {
  String inputExpression = "not ( true )";
  BaseNode neg = parse( inputExpression );
  assertThat( neg, is( instanceOf( FunctionInvocationNode.class ) ) );
  assertThat( neg.getResultType(), is( BuiltInType.UNKNOWN ) );
  assertThat( neg.getText(), is( "not ( true )" ) );
  FunctionInvocationNode not = (FunctionInvocationNode) neg;
  assertThat( not.getParams().getElements().get( 0 ), is( instanceOf( BooleanNode.class ) ) );
  assertThat( not.getParams().getElements().get( 0 ).getResultType(), is( BuiltInType.BOOLEAN ) );
  assertThat( not.getParams().getElements().get( 0 ).getText(), is( "true" ) );
}
origin: org.kie/kie-dmn-feel

    functionNameParts = Arrays.asList(function.getName());
  Object result = invokeTheFunction(functionNameParts, function, ctx, p);
  return result;
} else {
  ctx.notifyEvt( astEvent(Severity.ERROR, Msg.createMessage(Msg.FUNCTION_NOT_FOUND, name.getText())) );
  return ((UnaryTest) value).apply( ctx, p );
} else {
  ctx.notifyEvt( astEvent(Severity.ERROR, Msg.createMessage(Msg.CAN_T_INVOKE_AN_UNARY_TEST_WITH_S_PARAMETERS_UNARY_TESTS_REQUIRE_1_SINGLE_PARAMETER, params.getElements().size()) ) );
origin: org.kie/kie-dmn-feel

@Test
public void testFunctionInvocationPositionalParams() {
  String inputExpression = "my.test.Function( x+10, \"foo\" )";
  BaseNode functionBase = parse( inputExpression );
  assertThat( functionBase, is( instanceOf( FunctionInvocationNode.class ) ) );
  assertThat( functionBase.getText(), is( inputExpression ) );
  FunctionInvocationNode function = (FunctionInvocationNode) functionBase;
  assertThat( function.getName(), is( instanceOf( QualifiedNameNode.class ) ) );
  assertThat( function.getName().getText(), is( "my.test.Function" ) );
  assertThat( function.getParams(), is( instanceOf( ListNode.class ) ) );
  assertThat( function.getParams().getElements().size(), is( 2 ) );
  assertThat( function.getParams().getElements().get( 0 ), is( instanceOf( InfixOpNode.class ) ) );
  assertThat( function.getParams().getElements().get( 1 ), is( instanceOf( StringNode.class ) ) );
}
origin: org.kie/kie-dmn-feel

@Test
public void testFunctionInvocationEmptyParams() {
  String inputExpression = "my.test.Function()";
  BaseNode functionBase = parse( inputExpression );
  assertThat( functionBase, is( instanceOf( FunctionInvocationNode.class ) ) );
  assertThat( functionBase.getText(), is( inputExpression ) );
  FunctionInvocationNode function = (FunctionInvocationNode) functionBase;
  assertThat( function.getName(), is( instanceOf( QualifiedNameNode.class ) ) );
  assertThat( function.getName().getText(), is( "my.test.Function" ) );
  assertThat( function.getParams(), is( instanceOf( ListNode.class ) ) );
  assertThat( function.getParams().getElements(), is( empty() ) );
}
origin: org.kie/kie-dmn-feel

@Test
public void testFunctionInvocationWithKeyword() {
  String inputExpression = "date and time( \"2016-07-29T19:47:53\" )";
  BaseNode functionBase = parse( inputExpression );
  assertThat( functionBase, is( instanceOf( FunctionInvocationNode.class ) ) );
  assertThat( functionBase.getText(), is( inputExpression ) );
  FunctionInvocationNode function = (FunctionInvocationNode) functionBase;
  assertThat( function.getName(), is( instanceOf( NameRefNode.class ) ) );
  assertThat( function.getName().getText(), is( "date and time" ) );
  assertThat( function.getParams(), is( instanceOf( ListNode.class ) ) );
  assertThat( function.getParams().getElements().size(), is( 1 ) );
  assertThat( function.getParams().getElements().get( 0 ), is( instanceOf( StringNode.class ) ) );
}
origin: org.kie/kie-dmn-feel

@Test
public void testFunctionInvocationWithExpressionParameters() {
  String inputExpression = "date and time( date(\"2016-07-29\"), time(\"19:47:53\") )";
  BaseNode functionBase = parse( inputExpression );
  assertThat( functionBase, is( instanceOf( FunctionInvocationNode.class ) ) );
  assertThat( functionBase.getText(), is( inputExpression ) );
  FunctionInvocationNode function = (FunctionInvocationNode) functionBase;
  assertThat( function.getName(), is( instanceOf( NameRefNode.class ) ) );
  assertThat( function.getName().getText(), is( "date and time" ) );
  assertThat( function.getParams(), is( instanceOf( ListNode.class ) ) );
  assertThat( function.getParams().getElements().size(), is( 2 ) );
  assertThat( function.getParams().getElements().get( 0 ), is( instanceOf( FunctionInvocationNode.class ) ) );
  assertThat( function.getParams().getElements().get( 1 ), is( instanceOf( FunctionInvocationNode.class ) ) );
}
origin: org.kie/kie-dmn-feel

@Test
public void testFunctionInvocationNamedParams() {
  String inputExpression = "my.test.Function( named parameter 1 : x+10, named parameter 2 : \"foo\" )";
  BaseNode functionBase = parse( inputExpression );
  assertThat( functionBase, is( instanceOf( FunctionInvocationNode.class ) ) );
  assertThat( functionBase.getText(), is( inputExpression ) );
  FunctionInvocationNode function = (FunctionInvocationNode) functionBase;
  assertThat( function.getName(), is( instanceOf( QualifiedNameNode.class ) ) );
  assertThat( function.getName().getText(), is( "my.test.Function" ) );
  assertThat( function.getParams(), is( instanceOf( ListNode.class ) ) );
  assertThat( function.getParams().getElements().size(), is( 2 ) );
  assertThat( function.getParams().getElements().get( 0 ), is( instanceOf( NamedParameterNode.class ) ) );
  assertThat( function.getParams().getElements().get( 1 ), is( instanceOf( NamedParameterNode.class ) ) );
  NamedParameterNode named = (NamedParameterNode) function.getParams().getElements().get( 0 );
  assertThat( named.getText(), is( "named parameter 1 : x+10" ) );
  assertThat( named.getName().getText(), is( "named parameter 1" ) );
  assertThat( named.getExpression(), is( instanceOf( InfixOpNode.class ) ) );
  assertThat( named.getExpression().getText(), is( "x+10" ) );
  named = (NamedParameterNode) function.getParams().getElements().get( 1 );
  assertThat( named.getText(), is( "named parameter 2 : \"foo\"" ) );
  assertThat( named.getName().getText(), is( "named parameter 2" ) );
  assertThat( named.getExpression(), is( instanceOf( StringNode.class ) ) );
  assertThat( named.getExpression().getText(), is( "\"foo\"" ) );
}
origin: org.kie/kie-dmn-feel

assertThat( function.getName(), is( instanceOf( NameRefNode.class ) ) );
assertThat( function.getName().getText(), is( "decision table" ) );
assertThat( function.getParams(), is( instanceOf( ListNode.class ) ) );
assertThat( function.getParams().getElements().size(), is( 4 ) );
assertThat( function.getParams().getElements().get( 0 ), is( instanceOf( NamedParameterNode.class ) ) );
assertThat( function.getParams().getElements().get( 1 ), is( instanceOf( NamedParameterNode.class ) ) );
assertThat( function.getParams().getElements().get( 2 ), is( instanceOf( NamedParameterNode.class ) ) );
assertThat( function.getParams().getElements().get( 3 ), is( instanceOf( NamedParameterNode.class ) ) );
NamedParameterNode named = (NamedParameterNode) function.getParams().getElements().get( 0 );
assertThat( named.getText(), is( "outputs: \"Applicant Risk Rating\"" ) );
assertThat( named.getName().getText(), is( "outputs" ) );
assertThat( named.getExpression().getText(), is( "\"Applicant Risk Rating\"" ) );
named = (NamedParameterNode) function.getParams().getElements().get( 1 );
assertThat( named.getName().getText(), is( "input expression list" ) );
assertThat( named.getExpression(), is( instanceOf( ListNode.class ) ) );
assertThat( list.getElements().get( 1 ).getText(), is( "\"Medical History\"" ) );
named = (NamedParameterNode) function.getParams().getElements().get( 2 );
assertThat( named.getName().getText(), is( "rule list" ) );
assertThat( named.getExpression(), is( instanceOf( ListNode.class ) ) );
named = (NamedParameterNode) function.getParams().getElements().get( 3 );
assertThat( named.getName().getText(), is( "hit policy" ) );
assertThat( named.getExpression(), is( instanceOf( StringNode.class ) ) );
org.kie.dmn.feel.lang.astFunctionInvocationNode

Most used methods

  • getName
  • getParams
  • <init>
  • astEvent
  • invokeTheFunction

Popular in Java

  • Making http post requests using okhttp
  • setRequestProperty (URLConnection)
  • getContentResolver (Context)
  • getResourceAsStream (ClassLoader)
  • Rectangle (java.awt)
    A Rectangle specifies an area in a coordinate space that is enclosed by the Rectangle object's top-
  • System (java.lang)
    Provides access to system-related information and resources including standard input and output. Ena
  • InetAddress (java.net)
    An Internet Protocol (IP) address. This can be either an IPv4 address or an IPv6 address, and in pra
  • URI (java.net)
    A Uniform Resource Identifier that identifies an abstract or physical resource, as specified by RFC
  • Charset (java.nio.charset)
    A charset is a named mapping between Unicode characters and byte sequences. Every Charset can decode
  • Logger (org.apache.log4j)
    This is the central class in the log4j package. Most logging operations, except configuration, are d
  • Top Vim plugins
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now