private void addNewCE(String s, int position) { this.model.addLhsItem(new CompositeFactPattern(s), position); }
private void addNewCE(String s, int position) { this.model.addLhsItem(new CompositeFactPattern(s), position); }
private CompositeFactPattern parseExistentialElementDescr(final RuleModel m, final ConditionalElementDescr conditionalDescr, final boolean isJavaDialect, final Map<String, String> boundParams, final PackageDataModelOracle dmo) { CompositeFactPattern comp; if (conditionalDescr instanceof NotDescr) { comp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_NOT); } else if (conditionalDescr instanceof OrDescr) { comp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_OR); } else if (conditionalDescr instanceof ExistsDescr) { comp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_EXISTS); } else { throw new IllegalArgumentException("Unknown conditional descr type: " + conditionalDescr); } addPatternToComposite(m, conditionalDescr, comp, isJavaDialect, boundParams, dmo); IFactPattern[] patterns = comp.getPatterns(); return patterns != null && patterns.length > 0 ? comp : null; }
private CompositeFactPattern visitCompositeFactPattern(CompositeFactPattern pattern) { CompositeFactPattern clone = new CompositeFactPattern(); clone.setType(pattern.getType()); if (pattern.getPatterns() != null) { for (IFactPattern fp : pattern.getPatterns()) { clone.addFactPattern((IFactPattern) visit(fp)); } } return clone; }
private CompositeFactPattern visitCompositeFactPattern(CompositeFactPattern pattern) { CompositeFactPattern clone = new CompositeFactPattern(); clone.setType(pattern.getType()); if (pattern.getPatterns() != null) { for (IFactPattern fp : pattern.getPatterns()) { clone.addFactPattern((IFactPattern) visit(fp)); } } return clone; }
@Test public void testValidateCompositeFactPatternFalse() throws Exception { CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); model.addLhsItem(not); assertFalse(validator.isValid()); assertTrue(validator.getErrors().get(0).equals(MISSING_FACT_PATTERN)); }
@Test public void testValidateCompositeFactPatternFalse() throws Exception { CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); model.addLhsItem(not); assertFalse(validator.isValid()); assertTrue(validator.getErrors().get(0).equals(MISSING_FACT_PATTERN)); }
@Test public void testValidateCompositeFactPatternTrue() throws Exception { CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(new FactPattern()); model.addLhsItem(not); assertTrue(validator.isValid()); assertTrue(validator.getErrors().isEmpty()); }
@Test public void testValidateCompositeFactPatternTrue() throws Exception { CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(new FactPattern()); model.addLhsItem(not); assertTrue(validator.isValid()); assertTrue(validator.getErrors().isEmpty()); }
@Test public void testMissingValueWhenOperatorExistsInCompositePattern() throws Exception { FactPattern pattern = new FactPattern("Person"); SingleFieldConstraint constraint = new SingleFieldConstraint("age"); constraint.setOperator("=="); pattern.addConstraint(constraint); CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(pattern); model.lhs = new IPattern[]{not}; assertFalse(validator.isValid()); assertEquals(1, validator.getErrors().size()); assertEquals(MISSING_VALUE_WHEN_OPERATOR_IS_SET, validator.getErrors().get(0)); verify(constants).FactType0HasAField1ThatHasAnOperatorSetButNoValuePleaseAddAValueOrRemoveTheOperator("Person", "age"); }
@Test public void testMissingValueWhenOperatorExistsInCompositePattern() throws Exception { FactPattern pattern = new FactPattern("Person"); SingleFieldConstraint constraint = new SingleFieldConstraint("age"); constraint.setOperator("=="); pattern.addConstraint(constraint); CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(pattern); model.lhs = new IPattern[]{not}; assertFalse(validator.isValid()); assertEquals(1, validator.getErrors().size()); assertEquals(MISSING_VALUE_WHEN_OPERATOR_IS_SET, validator.getErrors().get(0)); verify(constants).FactType0HasAField1ThatHasAnOperatorSetButNoValuePleaseAddAValueOrRemoveTheOperator("Person", "age"); }
@Test public void testMissingValueWhenOperatorExistsIsNull() throws Exception { FactPattern pattern = new FactPattern("Person"); SingleFieldConstraint constraint = new SingleFieldConstraint("age"); constraint.setOperator("== null"); pattern.addConstraint(constraint); CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(pattern); model.lhs = new IPattern[]{not}; assertTrue(validator.isValid()); assertTrue(validator.getErrors().isEmpty()); }
@Test public void testMissingValueWhenOperatorExistsIsNotNull() throws Exception { FactPattern pattern = new FactPattern("Person"); SingleFieldConstraint constraint = new SingleFieldConstraint("age"); constraint.setOperator("!= null"); pattern.addConstraint(constraint); CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(pattern); model.lhs = new IPattern[]{not}; assertTrue(validator.isValid()); assertTrue(validator.getErrors().isEmpty()); }
@Test public void testMissingValueWhenOperatorExistsIsNotNull() throws Exception { FactPattern pattern = new FactPattern("Person"); SingleFieldConstraint constraint = new SingleFieldConstraint("age"); constraint.setOperator("!= null"); pattern.addConstraint(constraint); CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(pattern); model.lhs = new IPattern[]{not}; assertTrue(validator.isValid()); assertTrue(validator.getErrors().isEmpty()); }
@Test public void testMissingValueWhenOperatorExistsIsNull() throws Exception { FactPattern pattern = new FactPattern("Person"); SingleFieldConstraint constraint = new SingleFieldConstraint("age"); constraint.setOperator("== null"); pattern.addConstraint(constraint); CompositeFactPattern not = new CompositeFactPattern(); not.setType("not"); not.addFactPattern(pattern); model.lhs = new IPattern[]{not}; assertTrue(validator.isValid()); assertTrue(validator.getErrors().isEmpty()); }
m.name = "t1"; CompositeFactPattern cp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_OR); FactPattern p1 = new FactPattern("Person"); SingleFieldConstraint sfc1 = new SingleFieldConstraint();
private TemplateModel getComplexModel() { final TemplateModel m = new TemplateModel(); m.addAttribute(new RuleAttribute("no-loop", "true")); final FactPattern pat = new FactPattern("Person"); pat.setBoundName("p1"); final SingleFieldConstraint con = new SingleFieldConstraint(); con.setFactType("Person"); con.setFieldBinding("f1"); con.setFieldName("age"); con.setOperator("<"); con.setValue("42"); pat.addConstraint(con); m.addLhsItem(pat); final CompositeFactPattern comp = new CompositeFactPattern("not"); comp.addFactPattern(new FactPattern("Cancel")); m.addLhsItem(comp); final ActionUpdateField set = new ActionUpdateField(); set.setVariable("p1"); set.addFieldValue(new ActionFieldValue("status", "rejected", DataType.TYPE_STRING)); m.addRhsItem(set); final ActionRetractFact ret = new ActionRetractFact("p1"); m.addRhsItem(ret); final DSLSentence sen = new DSLSentence(); sen.setDefinition("Send an email to {administrator}"); m.addRhsItem(sen); return m; }
m.name = "t1"; CompositeFactPattern cp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_OR); FactPattern p1 = new FactPattern("Person"); SingleFieldConstraint sfc1 = new SingleFieldConstraint();
m.name = "t1"; CompositeFactPattern cp = new CompositeFactPattern(CompositeFactPattern.COMPOSITE_TYPE_OR); FactPattern p1 = new FactPattern("Person"); SingleFieldConstraint sfc1 = new SingleFieldConstraint();
f2.addConstraint( buildCompositeFieldConstraint() ); CompositeFactPattern composite = new CompositeFactPattern(); composite.setType( CompositeFactPattern.COMPOSITE_TYPE_EXISTS ); composite.addFactPattern( f1 );