Skip to content

Commit

Permalink
Fix super_key failed predicate (apache#5748)
Browse files Browse the repository at this point in the history
  • Loading branch information
yurloc authored and tkobayas committed Jun 11, 2024
1 parent c805b14 commit 7e60b10
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -268,4 +268,42 @@ public void testNestedExpression() throws Exception {
assertThat(left.getExpression()).isEqualTo("a");
assertThat(right.getExpression()).isEqualTo("b");
}

@Test
public void selector_dot_super() {
String source = "SomeClass.super.getData() != null";
ConstraintConnectiveDescr result = parser.parse( source );
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();

assertThat(result.getConnective()).isEqualTo(ConnectiveType.AND);
assertThat(result.getDescrs().size()).isEqualTo(1);

RelationalExprDescr expr = (RelationalExprDescr) result.getDescrs().get( 0 );
assertThat(expr.getOperator()).isEqualTo("!=");

AtomicExprDescr left = (AtomicExprDescr) expr.getLeft();
AtomicExprDescr right = (AtomicExprDescr) expr.getRight();

assertThat(left.getExpression()).isEqualTo("SomeClass.super.getData()");
assertThat(right.getExpression()).isEqualTo("null");
}

@Test
public void selector_dot_identifier() {
String source = "getAddress().getCity().length() == 5";
ConstraintConnectiveDescr result = parser.parse( source );
assertThat(parser.hasErrors()).as(parser.getErrors().toString()).isFalse();

assertThat(result.getConnective()).isEqualTo(ConnectiveType.AND);
assertThat(result.getDescrs().size()).isEqualTo(1);

RelationalExprDescr expr = (RelationalExprDescr) result.getDescrs().get( 0 );
assertThat(expr.getOperator()).isEqualTo("==");

AtomicExprDescr left = (AtomicExprDescr) expr.getLeft();
AtomicExprDescr right = (AtomicExprDescr) expr.getRight();

assertThat(left.getExpression()).isEqualTo("getAddress().getCity().length()");
assertThat(right.getExpression()).isEqualTo("5");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,7 @@ extends_key
;

super_key
: {(helper.validateIdentifierKey(DroolsSoftKeywords.SUPER))}? id=IDENTIFIER { helper.emit($id, DroolsEditorType.KEYWORD); }
: {(helper.validateIdentifierKey(DroolsSoftKeywords.SUPER))}? id=SUPER { helper.emit($id, DroolsEditorType.KEYWORD); }
;

instanceof_key
Expand Down

0 comments on commit 7e60b10

Please sign in to comment.