void setupEditingCol() { editingCol = newBRLActionColumn(); if (!isNewColumn()) { editingCol().setHeader(originalCol().getHeader()); editingCol().setDefinition(originalCol().getDefinition()); editingCol().setChildColumns(originalCol().getChildColumns()); editingCol().setHideColumn(originalCol().isHideColumn()); fireChangeEvent(additionalInfoPage); } }
private BRLActionColumn actionCallMethod(final String boundName) { final ActionCallMethod action = new ActionCallMethod(); action.setVariable(boundName); action.setMethodName("toString()"); final BRLActionColumn brl = new BRLActionColumn(); brl.setHeader("brl-action"); brl.setDefinition(Collections.singletonList(action)); brl.getChildColumns().add(new BRLActionVariableColumn() {{ setHeader("brl-action-v0"); }}); return brl; }
@Test public void getSafeHtml_BrlAction() { // Definition diffs are currently not supported, maybe #soon? BRLActionColumn originalColumn = new BRLActionColumn(); // originalColumn.setDefinition(Arrays.asList(new ActionRetractFact("fact1"))); originalColumn.setHeader("action1"); originalColumn.setHideColumn(false); BRLActionColumn newColumn = new BRLActionColumn(); // newColumn.setDefinition(Arrays.asList(new ActionRetractFact("fact2"), new ActionRetractFact("fact3"))); newColumn.setHeader("action2"); newColumn.setHideColumn(true); List<BaseColumnFieldDiff> diffs = originalColumn.diff(newColumn); SafeHtml result = helper.getSafeHtml(new UpdateColumnAuditLogEntry("mock user", originalColumn, newColumn, diffs)); assertEquals(getHeaderRepre(newColumn.getHeader()) + getDiffRepre(diffs), result.asString()); }
@Override public List<BaseColumnFieldDiff> diff( BaseColumn otherColumn ) { if ( otherColumn == null ) { return null; } List<BaseColumnFieldDiff> result = super.diff( otherColumn ); BRLActionColumn other = (BRLActionColumn) 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; }
private ActionCol52 getLinkedDefinitionColumn(final GuidedDecisionTable52 model, final BRLActionColumn fragment, final String factType, final String fieldName) { final Map<String, List<String>> rhsTypeFields = rhsTypeFieldsExtractor.extract(model, fragment.getDefinition()); if (rhsTypeFields.containsKey(factType)) { for (String field : rhsTypeFields.get(factType)) { if (field.equals(fieldName)) { return fragment.getChildColumns().get(0); } } } return null; } }
actionCol0.getHeader()); assertEquals(2, actionCol0.getChildColumns().size()); List<IAction> actionCol0definition = actionCol0.getDefinition(); assertEquals(1, actionCol0definition.size()); BRLActionVariableColumn actionCol0param0 = actionCol0.getChildColumns().get(0); assertEquals("param1", actionCol0param0.getVarName()); BRLActionVariableColumn actionCol0param1 = actionCol0.getChildColumns().get(1); assertEquals("param2", actionCol0param1.getVarName()); actionCol1.getHeader()); assertEquals(1, actionCol1.getChildColumns().size()); List<IAction> actionCol1definition = actionCol1.getDefinition(); assertEquals(1, actionCol1definition.size()); BRLActionVariableColumn actionCol1param0 = actionCol1.getChildColumns().get(0); assertEquals("param3", actionCol1param0.getVarName()); actionCol2.getHeader());
private void setupBRLActionColumn() { final BRLActionColumn brl = new BRLActionColumn(); final ActionInsertFact ifc1 = new ActionInsertFact(); ifc1.setFactType("Person"); ifc1.setBoundName("$a"); final ActionFieldValue afv1 = new ActionFieldValue(); afv1.setNature(FieldNatureType.TYPE_TEMPLATE); afv1.setField("name"); afv1.setValue("f1"); ifc1.addFieldValue(afv1); final ActionFieldValue afv2 = new ActionFieldValue(); afv2.setNature(FieldNatureType.TYPE_TEMPLATE); afv2.setField("age"); afv2.setValue("f2"); ifc1.addFieldValue(afv2); brl.getDefinition().add(ifc1); brl.getChildColumns().add(new BRLActionVariableColumn("f1", DataType.TYPE_STRING)); brl.getChildColumns().add(new BRLActionVariableColumn("f2", DataType.TYPE_NUMERIC_INTEGER)); model.getActionCols().add(brl); when(dmo.getFieldType(eq("Person"), eq("name"))).thenReturn(DataType.TYPE_STRING); when(dmo.getFieldType(eq("Person"), eq("age"))).thenReturn(DataType.TYPE_NUMERIC_INTEGER); } }
private void addBrlInsertActionToModel(final GuidedDecisionTable52 model, final String factType, final String field) { final BRLActionColumn brlAction = new BRLActionColumn(); final ActionInsertFact aif = new ActionInsertFact(factType); final ActionFieldValue afv = new ActionFieldValue(field, "$var", DataType.TYPE_STRING); afv.setNature(FieldNatureType.TYPE_VARIABLE); aif.addFieldValue(afv); brlAction.setDefinition(Collections.singletonList(aif)); BRLActionVariableColumn variableColumn = new BRLActionVariableColumn("$var", DataType.TYPE_STRING, factType, field); brlAction.getChildColumns().add(variableColumn); model.getActionCols().add(brlAction); }
@Test public void testUpdate1() throws VetoException { final BRLActionColumn column = spy(new BRLActionColumn()); final BRLActionVariableColumn columnV0 = new BRLActionVariableColumn("$age", DataType.TYPE_NUMERIC_INTEGER, "Applicant", "age"); column.getChildColumns().add(columnV0); column.setHeader("col1"); columnV0.setHeader("col1v0"); assertTrue(uiModel.getColumns().get(2) instanceof IntegerUiColumn); final BRLActionColumn edited = new BRLActionColumn(); final BRLActionVariableColumn editedColumnV0 = new BRLActionVariableColumn("$name", DataType.TYPE_STRING, "Applicant", "name"); edited.getChildColumns().add(editedColumnV0); edited.setHideColumn(true); edited.setHeader("updated"); editedColumnV0.setHeader("updated"); verify(column).diff(edited);
@Before public void setup() { column1 = new BRLActionColumn(); List<IAction> definition1 = Arrays.asList(new ActionRetractFact("var")); column1.setDefinition(definition1); List<BRLActionVariableColumn> childColumns1 = Arrays.asList(new BRLActionVariableColumn("var", "FieldType")); column1.setChildColumns(childColumns1); column1.setHeader("header"); column1.setHideColumn(false); column2 = new BRLActionColumn(); List<IAction> definition2 = Arrays.asList(new ActionRetractFact("var")); column2.setDefinition(definition2); List<BRLActionVariableColumn> childColumns2 = Arrays.asList(new BRLActionVariableColumn("var", "FieldType")); column2.setChildColumns(childColumns2); column2.setHeader("header"); column2.setHideColumn(false); }
private RuleModel newRuleModel() { final BRLRuleModel ruleModel = new BRLRuleModel(presenter.getModel()); final List<IAction> definition = editingCol.getDefinition(); ruleModel.rhs = definition.toArray(new IAction[definition.size()]); return ruleModel; }
public BRLActionColumn getBRLColumn(BRLActionVariableColumn col) { for (ActionCol52 ac : actionCols) { if (ac instanceof BRLActionColumn) { final BRLActionColumn brl = (BRLActionColumn) ac; if (brl.getChildColumns().contains(col)) { return brl; } } } throw new IllegalStateException("col is not a child of any of the defined BRLColumns."); }
@Test public void testAppend1() throws VetoException { //Single Column, single variable final BRLActionColumn column = new BRLActionColumn(); final BRLActionVariableColumn columnV0 = new BRLActionVariableColumn("$age", DataType.TYPE_NUMERIC_INTEGER, "Applicant", "age"); column.getChildColumns().add(columnV0); column.setHeader("col1"); columnV0.setHeader("col1v0"); modelSynchronizer.appendColumn(column); assertEquals(3, model.getExpandedColumns().size()); assertEquals(1, model.getActionCols().size()); assertEquals(3, uiModel.getColumns().size()); assertTrue(uiModel.getColumns().get(2) instanceof IntegerUiColumn); }
public static BRLActionColumn createBRLActionColumn() { final BRLActionColumn brlActionColumn = new BRLActionColumn(); final ArrayList<IAction> definition = new ArrayList<IAction>(); definition.add(mock(IAction.class)); brlActionColumn.setDefinition(definition); return brlActionColumn; }
final BRLActionColumn editedColumn = (BRLActionColumn) editedMetaData.getColumn(); final List<BaseColumnFieldDiff> diffs = originalColumn.diff(editedColumn); for (BRLActionVariableColumn variable : originalColumn.getChildColumns()) { int iColumnIndex = model.getExpandedColumns().indexOf(variable); final List<DTCellValue52> originalColumnData = new ArrayList<DTCellValue52>(); for (BRLActionVariableColumn childModelColumn : editedColumn.getChildColumns()) { final String key = makeUpdateBRLActionColumnKey(childModelColumn); if (originalColumnsData.containsKey(key)) {
private void setCompositeColumnHeader(final BRLActionColumn column) { final List<BRLActionVariableColumn> columnVariableColumns = column.getChildColumns(); final StringBuilder sb = new StringBuilder(); final List<String> variableColumnHeaders = new ArrayList<>(); sb.append("Converted from ["); for (int i = 0; i < columnVariableColumns.size(); i++) { final BRLActionVariableColumn variableColumn = columnVariableColumns.get(i); final String header = variableColumn.getHeader(); variableColumnHeaders.add(header); sb.append("'").append(header).append("'"); sb.append(i < columnVariableColumns.size() - 1 ? ", " : ""); } sb.append("]"); column.setHeader(sb.toString()); for (int i = 0; i < columnVariableColumns.size(); i++) { final BRLActionVariableColumn variableColumn = columnVariableColumns.get(i); variableColumn.setHeader(variableColumnHeaders.get(i)); } }
@Test public void testInsertBRLActionColumn() throws Exception { BRLActionColumn brlActionOne = new BRLActionColumn(); BRLActionVariableColumn a = new BRLActionVariableColumn(); BRLActionVariableColumn b = new BRLActionVariableColumn(); BRLActionColumn brlActionTwo = new BRLActionColumn(); BRLActionVariableColumn c = new BRLActionVariableColumn(); BRLActionVariableColumn d = new BRLActionVariableColumn(); brlActionOne.setChildColumns(Arrays.asList(a, b)); brlActionTwo.setChildColumns(Arrays.asList(c, d)); model.setActionCols(Arrays.asList(brlActionOne, brlActionTwo)); decisionTableAnalyzer.insertColumn(brlActionOne); verify(updateManager).newColumn(model, 2); }
@Test public void testGenerateColumnWhenColumnIsNew() throws Exception { final GuidedDecisionTable52 model = mock(GuidedDecisionTable52.class); final ArrayList<ActionCol52> actionCol52s = new ArrayList<>(); when(model.getActionCols()).thenReturn(actionCol52s); when(presenter.getModel()).thenReturn(model); when(editingCol.getHeader()).thenReturn("header"); when(plugin.isNewColumn()).thenReturn(true); final Boolean success = plugin.generateColumn(); assertTrue(success); verify(plugin).getDefinedVariables(any()); verify(editingCol).setDefinition(any()); verify(presenter).appendColumn(editingCol); verify(translationService, never()).format(any()); }
BRLActionColumn newBRLActionColumn() { switch (tableFormat()) { case EXTENDED_ENTRY: return new BRLActionColumn(); case LIMITED_ENTRY: return new LimitedEntryBRLActionColumn(); default: throw new UnsupportedOperationException("Unsupported table format: " + tableFormat()); } }
@Test public void testDiffDefinitions() { List<IAction> definition1 = Arrays.asList(new ActionRetractFact("var1")); column1.setDefinition(definition1); List<IAction> definition2 = Arrays.asList(new ActionRetractFact("var2")); column2.setDefinition(definition2); checkSingleDiff(FIELD_DEFINITION, definition1, definition2, column1, column2); }