@Override public boolean isBound() { return condition.isBound(); }
ColumnLabelWidget makeColumnLabel(final ConditionCol52 conditionColumn) { final StringBuilder labelBuilder = new StringBuilder(); if (conditionColumn.isBound()) { labelBuilder.append(conditionColumn.getBinding()) .append(" : "); } labelBuilder.append(conditionColumn.getHeader()); final ColumnLabelWidget label = newColumnLabelWidget(labelBuilder.toString()); ColumnUtilities.setColumnLabelStyleWhenHidden(label, conditionColumn.isHideColumn()); return label; }
ColumnLabelWidget makeColumnLabel(final ConditionCol52 conditionColumn) { final StringBuilder labelBuilder = new StringBuilder(); if (conditionColumn.isBound()) { labelBuilder.append(conditionColumn.getBinding()) .append(" : "); } labelBuilder.append(conditionColumn.getHeader()); final ColumnLabelWidget label = newColumnLabelWidget(labelBuilder.toString()); ColumnUtilities.setColumnLabelStyleWhenHidden(label, conditionColumn.isHideColumn()); return label; }
@Override public Set<String> getBindings(final String className) { //For some reason, Fact Pattern data-types use the leaf name of the fully qualified Class Name //whereas Fields use the fully qualified Class Name. We don't use the generic fieldType (see //SuggestionCompletionEngine.TYPE) as we can't distinguish between different numeric types String simpleClassName = className; if (simpleClassName != null && simpleClassName.lastIndexOf(".") > 0) { simpleClassName = simpleClassName.substring(simpleClassName.lastIndexOf(".") + 1); } Set<String> bindings = new HashSet<String>(); for (Pattern52 p : model.getPatterns()) { if (className == null || p.getFactType().equals(simpleClassName)) { String binding = p.getBoundName(); if (!(binding == null || "".equals(binding))) { bindings.add(binding); } } for (ConditionCol52 c : p.getChildColumns()) { if (c.isBound()) { String fieldDataType = oracle.getFieldClassName(p.getFactType(), c.getFactField()); if (fieldDataType.equals(className)) { bindings.add(c.getBinding()); } } } } return bindings; }
@Override public Set<String> getBindings(final String className) { //For some reason, Fact Pattern data-types use the leaf name of the fully qualified Class Name //whereas Fields use the fully qualified Class Name. We don't use the generic fieldType (see //SuggestionCompletionEngine.TYPE) as we can't distinguish between different numeric types String simpleClassName = className; if (simpleClassName != null && simpleClassName.lastIndexOf(".") > 0) { simpleClassName = simpleClassName.substring(simpleClassName.lastIndexOf(".") + 1); } Set<String> bindings = new HashSet<String>(); for (Pattern52 p : model.getPatterns()) { if (className == null || p.getFactType().equals(simpleClassName)) { String binding = p.getBoundName(); if (!(binding == null || "".equals(binding))) { bindings.add(binding); } } for (ConditionCol52 c : p.getChildColumns()) { if (c.isBound()) { String fieldDataType = oracle.getFieldClassName(p.getFactType(), c.getFactField()); if (fieldDataType.equals(className)) { bindings.add(c.getBinding()); } } } } return bindings; }
@Override public List<String> getBoundVariablesInScope(final BaseSingleFieldConstraint con) { final Set<String> variables = new HashSet<>(); for (CompositeColumn<? extends BaseColumn> col : dtable.getConditions()) { if (col instanceof Pattern52) { final Pattern52 p = (Pattern52) col; if (p.isBound()) { variables.add(p.getBoundName()); } for (ConditionCol52 cc : p.getChildColumns()) { if (cc.isBound()) { variables.add(cc.getBinding()); } } } 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()]); variables.addAll(rm.getBoundVariablesInScope(con)); } } variables.addAll(super.getBoundVariablesInScope(con)); return new ArrayList<>(variables); }
if (cc.isBound()) { if (includeFields) { variables.add(cc.getBinding());
private void testMakeColumnLabelForAllConditionColumns(final boolean isColumnHidden, final boolean isColumnBound) { Stream.of(ConditionCol52.class, BRLConditionColumn.class) .map(classToMock -> { final ConditionCol52 column = mock(classToMock); final ColumnLabelWidget columnLabel = mockColumnLabelWidget(); doReturn(columnLabel).when(view).newColumnLabelWidget(anyString()); doReturn(column.getClass().toString()).when(column).getHeader(); doReturn(isColumnHidden).when(column).isHideColumn(); doReturn(isColumnBound).when(column).isBound(); doReturn("binding").when(column).getBinding(); return column; }) .forEach(column -> { final ColumnLabelWidget label = view.makeColumnLabel(column); verify(view).newColumnLabelWidget(isColumnBound ? "binding : " + column.getClass().toString() : column.getClass().toString()); testColumnLabelIsHidden(label, isColumnHidden); }); }
@Override public FactPattern getLHSParentFactPatternForBinding(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); } for (ConditionCol52 cc : p.getChildColumns()) { if (cc.isBound() && cc.getBinding().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.getLHSParentFactPatternForBinding(var); if (fp != null) { return fp; } } } return super.getLHSParentFactPatternForBinding(var); }
@Override public String getLHSBindingType(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 p.getFactType(); } for (ConditionCol52 cc : p.getChildColumns()) { if (cc.isBound() && cc.getBinding().equals(var)) { return cc.getFieldType(); } } } 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 String type = rm.getLHSBindingType(var); if (type != null) { return type; } } } return super.getLHSBindingType(var); }
@Override public SingleFieldConstraint getLHSBoundField(final String var) { for (CompositeColumn<? extends BaseColumn> col : dtable.getConditions()) { if (col instanceof Pattern52) { final Pattern52 p = (Pattern52) col; for (ConditionCol52 cc : p.getChildColumns()) { if (cc.isBound() && cc.getBinding().equals(var)) { final ConditionCol52FieldConstraintAdaptor sfcAdaptor = new ConditionCol52FieldConstraintAdaptor(cc); sfcAdaptor.setFactType(p.getFactType()); return sfcAdaptor; } } } 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 SingleFieldConstraint sfc = rm.getLHSBoundField(var); if (sfc != null) { return sfc; } } } return super.getLHSBoundField(var); }
if ((constraintValueType == BaseSingleFieldConstraint.TYPE_LITERAL || constraintValueType == BaseSingleFieldConstraint.TYPE_RET_VALUE) && c.isBound()) { sfc.setFieldBinding(c.getBinding());