private boolean isPotentialConditionDeletionSafe(final ConditionCol52 condition) { final String binding = condition.getBinding(); if (!(binding == null || binding.isEmpty())) { return !rm.isBoundFactUsed(binding); } return true; }
private boolean isPotentialConditionDeletionSafe(final ConditionCol52 condition) { final String binding = condition.getBinding(); if (!(binding == null || binding.isEmpty())) { return !rm.isBoundFactUsed(binding); } return true; }
private boolean isPotentialPatternDeletionSafe(final Pattern52 pattern) { if (pattern.getChildColumns().size() == 1) { final String binding = pattern.getBoundName(); if (!(binding == null || binding.isEmpty())) { return !rm.isBoundFactUsed(binding); } } return true; } }
private boolean isPotentialPatternDeletionSafe(final Pattern52 pattern) { if (pattern.getChildColumns().size() == 1) { final String binding = pattern.getBoundName(); if (!(binding == null || binding.isEmpty())) { return !rm.isBoundFactUsed(binding); } } return true; } }
@Override public void delete(final ColumnMetaData metaData) throws VetoException { //Check operation is supported if (!handlesDelete(metaData)) { return; } final BRLConditionColumn column = (BRLConditionColumn) metaData.getColumn(); //If Pattern has been updated and there was only one child column then original Pattern will be deleted final Set<String> bindings = getPatternBindings(column); for (String binding : bindings) { if (rm.isBoundFactUsed(binding)) { throw new VetoDeletePatternInUseException(); } } doDelete(column); }
@Override public void delete(final ColumnMetaData metaData) throws VetoException { //Check operation is supported if (!handlesDelete(metaData)) { return; } final BRLConditionColumn column = (BRLConditionColumn) metaData.getColumn(); //If Pattern has been updated and there was only one child column then original Pattern will be deleted final Set<String> bindings = getPatternBindings(column); for (String binding : bindings) { if (rm.isBoundFactUsed(binding)) { throw new VetoDeletePatternInUseException(); } } doDelete(column); }
originalBindings.removeAll(editedBindings); for (String binding : originalBindings) { if (rm.isBoundFactUsed(binding)) { throw new VetoUpdatePatternInUseException();
originalBindings.removeAll(editedBindings); for (String binding : originalBindings) { if (rm.isBoundFactUsed(binding)) { throw new VetoUpdatePatternInUseException();
@Test public void testRuleModelWithRHSBoundFactsUsageWithBRLActionColumn() { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); //Setup Decision Table columns final Pattern52 p1 = new Pattern52(); p1.setFactType("Driver"); p1.setBoundName("$d"); dt.getConditions().add(p1); final BRLActionColumn brl = new BRLActionColumn(); brl.setDefinition(Collections.singletonList(new ActionSetField() {{ setVariable("$d"); }})); dt.getActionCols().add(brl); final BRLRuleModel model = new BRLRuleModel(dt); //Checks assertTrue(model.isBoundFactUsed("$d")); assertFalse(model.isBoundFactUsed("$cheese")); }
@Test public void testRuleModelWithRHSBoundFactsUsageWithLimitedEntryActionRetractFact() { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); //Setup Decision Table columns final Pattern52 p1 = new Pattern52(); p1.setFactType("Driver"); p1.setBoundName("$d"); dt.getConditions().add(p1); final LimitedEntryActionRetractFactCol52 del = new LimitedEntryActionRetractFactCol52(); del.setValue(new DTCellValue52("$d")); dt.getActionCols().add(del); final BRLRuleModel model = new BRLRuleModel(dt); //Checks assertTrue(model.isBoundFactUsed("$d")); assertFalse(model.isBoundFactUsed("$cheese")); }
@Test public void testRuleModelWithRHSBoundFactsUsageWithActionRetractFact() { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); //Setup Decision Table columns final Pattern52 p1 = new Pattern52(); p1.setFactType("Driver"); p1.setBoundName("$d"); dt.getConditions().add(p1); final ActionRetractFactCol52 del = new ActionRetractFactCol52(); dt.getActionCols().add(del); dt.getData().add(Arrays.asList(new DTCellValue52(1), new DTCellValue52("description"), new DTCellValue52("$d"))); final BRLRuleModel model = new BRLRuleModel(dt); //Checks assertTrue(model.isBoundFactUsed("$d")); assertFalse(model.isBoundFactUsed("$cheese")); }
@Test public void testRuleModelWithRHSBoundFactsUsageWithActionSetField() { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); //Setup Decision Table columns final Pattern52 p1 = new Pattern52(); p1.setFactType("Driver"); p1.setBoundName("$d"); dt.getConditions().add(p1); final ActionSetFieldCol52 set = new ActionSetFieldCol52(); set.setBoundName("$d"); set.setFactField("rating"); dt.getActionCols().add(set); final BRLRuleModel model = new BRLRuleModel(dt); //Checks assertTrue(model.isBoundFactUsed("$d")); assertFalse(model.isBoundFactUsed("$cheese")); }
@Test public void testRuleModelWithRHSBoundFactsUsageWithActionInsertFact() { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); //Setup Decision Table columns final Pattern52 p1 = new Pattern52(); p1.setFactType("Driver"); p1.setBoundName("$d"); dt.getConditions().add(p1); final ActionInsertFactCol52 ins = new ActionInsertFactCol52(); ins.setBoundName("$ins"); ins.setFactField("rating"); ins.setFactType("Person"); ins.setType(DataType.TYPE_STRING); dt.getActionCols().add(ins); final BRLRuleModel model = new BRLRuleModel(dt); //Checks assertTrue(model.isBoundFactUsed("$ins")); assertFalse(model.isBoundFactUsed("$cheese")); }