private Set<String> getPatternBindings(final BRLConditionColumn column) { final Set<String> bindings = new HashSet<>(); final List<IPattern> definition = column.getDefinition(); final RuleModel rm = new RuleModel(); rm.lhs = definition.toArray(new IPattern[definition.size()]); bindings.addAll(rm.getLHSVariables(true, true)); return bindings; } }
private Set<String> getPatternBindings(final BRLConditionColumn column) { final Set<String> bindings = new HashSet<>(); final List<IPattern> definition = column.getDefinition(); final RuleModel rm = new RuleModel(); rm.lhs = definition.toArray(new IPattern[definition.size()]); bindings.addAll(rm.getLHSVariables(true, true)); return bindings; } }
private RuleModel newRuleModel() { final BRLRuleModel ruleModel = new BRLRuleModel(getModel()); final List<IPattern> definition = editingCol.getDefinition(); ruleModel.lhs = definition.toArray(new IPattern[definition.size()]); return ruleModel; }
private RuleModel newRuleModel() { final BRLRuleModel ruleModel = new BRLRuleModel(getModel()); final List<IPattern> definition = editingCol.getDefinition(); ruleModel.lhs = definition.toArray(new IPattern[definition.size()]); return ruleModel; }
@Override public List<String> getLHSBoundFacts() { final Set<String> facts = new HashSet<>(); for (CompositeColumn<? extends BaseColumn> col : dtable.getConditions()) { if (col instanceof Pattern52) { final Pattern52 p = (Pattern52) col; if (p.isBound()) { facts.add(p.getBoundName()); } } else if (col instanceof BRLConditionColumn) { //Delegate to super class's implementation final RuleModel rm = new RuleModel(); final BRLConditionColumn brl = (BRLConditionColumn) col; rm.lhs = brl.getDefinition().toArray(new IPattern[brl.getDefinition().size()]); facts.addAll(rm.getLHSBoundFacts()); } } facts.addAll(super.getLHSBoundFacts()); return new ArrayList<>(facts); }
public Pattern52 getConditionPattern(final String boundName) { for (CompositeColumn<?> cc : conditionPatterns) { if (cc instanceof Pattern52) { final Pattern52 p = (Pattern52) cc; if (p.isBound() && p.getBoundName().equals(boundName)) { return p; } } else if (cc instanceof BRLConditionColumn) { final BRLConditionColumn brlConditionColumn = (BRLConditionColumn) cc; for (IPattern p : brlConditionColumn.getDefinition()) { final Optional<Pattern52> factPattern = getConditionPattern(boundName, p); if (factPattern.isPresent()) { return factPattern.get(); } } } } return null; }
private boolean hasVariables(BRLConditionColumn column) { Map<InterpolationVariable, Integer> ivs = new HashMap<InterpolationVariable, Integer>(); RuleModel rm = new RuleModel(); for (IPattern pattern : column.getDefinition()) { rm.addLhsItem(pattern); } RuleModelVisitor rmv = new RuleModelVisitor(ivs); rmv.visit(rm); return ivs.size() > 0; }
@Override public List<BaseColumnFieldDiff> diff( BaseColumn otherColumn ) { if ( otherColumn == null ) { return null; } List<BaseColumnFieldDiff> result = super.diff( otherColumn ); BRLConditionColumn other = (BRLConditionColumn) otherColumn; // Field: definition. if ( !isEqualOrNull( this.getDefinition(), other.getDefinition() ) ) { result.add( new BaseColumnFieldDiffImpl( FIELD_DEFINITION, this.getDefinition(), other.getDefinition() ) ); } // Field: childColumns. if ( !isEqualOrNull( this.getChildColumns(), other.getChildColumns() ) ) { result.addAll( getColumnDiffs( other.getChildColumns() ) ); } return result; }
@Override public FactPattern getLHSBoundFact(final String var) { for (CompositeColumn<? extends BaseColumn> col : dtable.getConditions()) { if (col instanceof Pattern52) { final Pattern52 p = (Pattern52) col; if (p.isBound() && p.getBoundName().equals(var)) { return new Pattern52FactPatternAdaptor(p); } } else if (col instanceof BRLConditionColumn) { //Delegate to super class's implementation final RuleModel rm = new RuleModel(); final BRLConditionColumn brl = (BRLConditionColumn) col; rm.lhs = brl.getDefinition().toArray(new IPattern[brl.getDefinition().size()]); final FactPattern fp = rm.getLHSBoundFact(var); if (fp != null) { return fp; } } } return super.getLHSBoundFact(var); }
public static boolean hasDSLSentences(final GuidedDecisionTable52 model) { for (CompositeColumn<? extends BaseColumn> column : model.getConditions()) { if (column instanceof BRLConditionColumn) { final BRLConditionColumn brlColumn = (BRLConditionColumn) column; for (IPattern pattern : brlColumn.getDefinition()) { if (pattern instanceof DSLSentence) { return true; } } } } for (ActionCol52 column : model.getActionCols()) { if (column instanceof BRLActionColumn) { final BRLActionColumn brlColumn = (BRLActionColumn) column; for (IAction action : brlColumn.getDefinition()) { if (action instanceof DSLSentence) { return true; } } } } return false; }
public String getBoundFactType(String boundName) { for (CompositeColumn<?> cc : this.model.getConditions()) { if (cc instanceof Pattern52) { final Pattern52 p = (Pattern52) cc; if (p.isBound() && p.getBoundName() .equals(boundName)) { return p.getFactType(); } } else if (cc instanceof BRLConditionColumn) { final BRLConditionColumn brl = (BRLConditionColumn) cc; for (IPattern p : brl.getDefinition()) { if (p instanceof FactPattern) { FactPattern fp = (FactPattern) p; if (fp.isBound() && fp.getBoundName() .equals(boundName)) { return fp.getFactType(); } } } } } return ""; }
public String getBoundFactType(String boundName) { for (CompositeColumn<?> cc : this.model.getConditions()) { if (cc instanceof Pattern52) { final Pattern52 p = (Pattern52) cc; if (p.isBound() && p.getBoundName() .equals(boundName)) { return p.getFactType(); } } else if (cc instanceof BRLConditionColumn) { final BRLConditionColumn brl = (BRLConditionColumn) cc; for (IPattern p : brl.getDefinition()) { if (p instanceof FactPattern) { FactPattern fp = (FactPattern) p; if (fp.isBound() && fp.getBoundName() .equals(boundName)) { return fp.getFactType(); } } } } } return ""; }
protected SingleFieldConstraint whenBRLFactPatternHasAField(final BRLConditionColumn brl, final String fieldName, final String fieldType, final String fieldBinding) { assertFalse("BRLConditionColumn has not been initialised. Was 'whenThereIsABRLFactPattern' called?", brl.getDefinition().isEmpty()); assertEquals("BRLConditionColumn has not been initialised correctly. Was 'whenThereIsABRLFactPattern' called?", 1, brl.getDefinition().size()); assertTrue("BRLConditionColumn has not been initialised correctly. Was 'whenThereIsABRLFactPattern' called?", brl.getDefinition().get(0) instanceof FactPattern); final FactPattern fp = (FactPattern) brl.getDefinition().get(0); final SingleFieldConstraint sfc = new SingleFieldConstraint(); sfc.setFactType(fp.getFactType()); sfc.setFieldName(fieldName); sfc.setFieldType(fieldType); sfc.setFieldBinding(fieldBinding); fp.addConstraint(sfc); brl.getDefinition().add(fp); return sfc; }
protected SingleFieldConstraint whenBRLFromCompositeFactPatternHasAField(final BRLConditionColumn brl, final String fieldName, final String fieldType, final String fieldBinding) { assertFalse("BRLConditionColumn has not been initialised. Was 'whenThereIsABRLFactPattern' called?", brl.getDefinition().isEmpty()); assertEquals("BRLConditionColumn has not been initialised correctly. Was 'whenThereIsABRLFactPattern' called?", 1, brl.getDefinition().size()); assertTrue("BRLConditionColumn has not been initialised correctly. Was 'whenThereIsABRLFactPattern' called?", brl.getDefinition().get(0) instanceof FromCompositeFactPattern); final FromCompositeFactPattern fcfp = (FromCompositeFactPattern) brl.getDefinition().get(0); final FactPattern fp = fcfp.getFactPattern(); final SingleFieldConstraint sfc = new SingleFieldConstraint(); sfc.setFactType(fp.getFactType()); sfc.setFieldName(fieldName); sfc.setFieldType(fieldType); sfc.setFieldBinding(fieldBinding); fp.addConstraint(sfc); brl.getDefinition().add(fp); return sfc; }
protected BRLConditionColumn whenThereIsABRLFactPattern(final String factType, final String binding) { final FactPattern fp = new FactPattern(factType); fp.setBoundName(binding); final BRLConditionColumn brl = new BRLConditionColumn(); brl.getDefinition().add(fp); dtable.getConditions().add(brl); return brl; }
protected BRLConditionColumn whenThereIsABRLFromCompositeFactPattern(final String factType, final String binding) { final FromCompositeFactPattern fcfp = new FromCompositeFactPattern(); final FactPattern fp = new FactPattern(factType); fp.setBoundName(binding); fcfp.setFactPattern(fp); final BRLConditionColumn brl = new BRLConditionColumn(); brl.getDefinition().add(fcfp); dtable.getConditions().add(brl); return brl; }
BRLConditionColumn clone(final DTColumnConfig52 column) { final BRLConditionColumn brlConditionColumn = (BRLConditionColumn) column; final BRLConditionColumn clone; if (tableFormat() == LIMITED_ENTRY) { clone = new LimitedEntryBRLConditionColumn(); } else { clone = new BRLConditionColumn(); clone.setChildColumns(cloneVariables(brlConditionColumn.getChildColumns())); } clone.setHeader(column.getHeader()); clone.setHideColumn(column.isHideColumn()); clone.setDefinition(cloneDefinition(brlConditionColumn.getDefinition())); clone.setOperator(brlConditionColumn.getOperator()); return clone; }
BRLConditionColumn clone(final DTColumnConfig52 column) { final BRLConditionColumn brlConditionColumn = (BRLConditionColumn) column; final BRLConditionColumn clone; if (tableFormat() == LIMITED_ENTRY) { clone = new LimitedEntryBRLConditionColumn(); } else { clone = new BRLConditionColumn(); clone.setChildColumns(cloneVariables(brlConditionColumn.getChildColumns())); } clone.setHeader(column.getHeader()); clone.setHideColumn(column.isHideColumn()); clone.setDefinition(cloneDefinition(brlConditionColumn.getDefinition())); clone.setOperator(brlConditionColumn.getOperator()); return clone; }
public static GuidedDecisionTable52 makeTableWithBRLFragmentConditionColWithPredicate(final String packageName, final Collection<Import> imports, final String tableName) { final GuidedDecisionTable52 dt = new GuidedDecisionTable52(); dt.setPackageName(packageName); dt.getImports().getImports().addAll(imports); dt.setTableName(tableName); final BRLConditionColumn brl = new BRLConditionColumn(); final FactPattern fp1 = new FactPattern(); fp1.setFactType("Applicant"); final SingleFieldConstraint sfc1 = new SingleFieldConstraint(); sfc1.setConstraintValueType(BaseSingleFieldConstraint.TYPE_PREDICATE); sfc1.setValue("age = 45"); fp1.addConstraint(sfc1); brl.getDefinition().add(fp1); brl.getChildColumns().add(new BRLConditionVariableColumn("f1", DataType.TYPE_BOOLEAN)); dt.getConditions().add(brl); dt.setData(DataUtilities.makeDataLists(new Object[][]{ new Object[]{"1", "desc", true} })); return dt; }
@Test public void testCloneWhenColumnIsALimitedEntryBRLConditionColumn() throws Exception { final List<IPattern> definition = new ArrayList<>(); final boolean hideColumn = false; final LimitedEntryBRLConditionColumn column = makeLimitedEntryBRLConditionColumn("header", hideColumn, definition); final BRLConditionColumn clone = plugin.clone(column); assertEquals(column.getHeader(), clone.getHeader()); assertEquals(column.isHideColumn(), clone.isHideColumn()); assertEquals(column.getDefinition(), clone.getDefinition()); assertNotSame(column, clone); assertTrue(clone.getChildColumns().isEmpty()); }