public InterpolationVariable[] getInterpolationVariablesList() { Map<InterpolationVariable, Integer> vars = getInterpolationVariables(); InterpolationVariable[] ret = new InterpolationVariable[vars.size() - 1]; for (Map.Entry<InterpolationVariable, Integer> entry : vars.entrySet()) { if (!ID_COLUMN_NAME.equals(entry.getKey().getVarName())) { ret[entry.getValue()] = entry.getKey(); } } return ret; }
private int getVariableColumnIndex(final String variableName) { final InterpolationVariable[] allVariables = this.model.getInterpolationVariablesList(); for (int iCol = 0; iCol < allVariables.length; iCol++) { final InterpolationVariable var = allVariables[iCol]; if (var.getVarName().equals(variableName)) { return iCol; } } //This should never happen throw new IllegalArgumentException("Variable '" + variableName + "' not found. This suggests an programming error."); }
public void putInSync() { //Nothing to synchronize if (table == null) { return; } //vars.KeySet is a set of InterpolationVariable, whereas table.keySet is a set of String Map<InterpolationVariable, Integer> vars = getInterpolationVariables(); // Retain all columns in table that are in vars Set<String> requiredVars = new HashSet<String>(); for (InterpolationVariable var : vars.keySet()) { if (table.containsKey(var.getVarName())) { requiredVars.add(var.getVarName()); } } table.keySet().retainAll(requiredVars); // Add empty columns for all vars that are not in table List<String> aux = new ArrayList<String>(rowsCount); for (int i = 0; i < rowsCount; i++) { aux.add(""); } for (InterpolationVariable var : vars.keySet()) { if (!requiredVars.contains(var.getVarName())) { table.put(var.getVarName(), new ArrayList<String>(aux)); } } }
private void setPattern( final IPattern pattern ) { this.pattern = pattern; this.varsInScope.clear(); final Set<InterpolationVariable> vars = new HashSet<InterpolationVariable>(); final GeneratorContextRuleModelVisitor visitor = new GeneratorContextRuleModelVisitor( vars ); visitor.visit( pattern ); for ( InterpolationVariable var : vars ) { varsInScope.add( var.getVarName() ); } hasNonTemplateOutput = visitor.hasNonTemplateOutput(); }
List<String> list = table.get(entry.getKey().getVarName()); if (list == null) { list = new ArrayList<String>(); table.put(entry.getKey().getVarName(), list); + rowsCount + " was: " + list.size()); if (ID_COLUMN_NAME.equals(entry.getKey().getVarName())) { list.add(rowId); } else {
private void setFieldConstraint( final FieldConstraint fieldConstraint ) { this.fieldConstraint = fieldConstraint; this.varsInScope.clear(); final Set<InterpolationVariable> vars = new HashSet<InterpolationVariable>(); final GeneratorContextRuleModelVisitor visitor = new GeneratorContextRuleModelVisitor( vars ); visitor.visit( fieldConstraint ); for ( InterpolationVariable var : vars ) { varsInScope.add( var.getVarName() ); } hasNonTemplateOutput = visitor.hasNonTemplateOutput(); }
private void setAction( final IAction action ) { this.action = action; final Set<InterpolationVariable> vars = new HashSet<InterpolationVariable>(); final GeneratorContextRuleModelVisitor visitor = new GeneratorContextRuleModelVisitor( vars ); visitor.visit( action ); for ( InterpolationVariable var : vars ) { varsInScope.add( var.getVarName() ); } hasNonTemplateOutput = visitor.hasNonTemplateOutput(); }
List<String> list = table.get(entry.getKey().getVarName()); if (list == null) { list = new ArrayList<String>(); table.put(entry.getKey().getVarName(), list); + rowsCount + " was: " + list.size()); if (ID_COLUMN_NAME.equals(entry.getKey().getVarName())) { list.add(index, rowId);
public String[][] getTableAsArray() { if (rowsCount <= 0) { return new String[0][0]; } //Refresh against interpolation variables putInSync(); String[][] ret = new String[rowsCount][table.size() - 1]; Map<InterpolationVariable, Integer> vars = getInterpolationVariables(); for (Map.Entry<InterpolationVariable, Integer> entry : vars.entrySet()) { InterpolationVariable var = entry.getKey(); String varName = var.getVarName(); if (ID_COLUMN_NAME.equals(varName)) { continue; } int idx = entry.getValue(); for (int row = 0; row < rowsCount; row++) { ret[row][idx] = table.get(varName).get(row); } } return ret; }
private void setActionFieldValue( final ActionFieldValue afv ) { this.afv = afv; final Set<InterpolationVariable> vars = new HashSet<InterpolationVariable>(); final GeneratorContextRuleModelVisitor visitor = new GeneratorContextRuleModelVisitor( vars ); visitor.visit( afv ); for ( InterpolationVariable var : vars ) { varsInScope.add( var.getVarName() ); } hasNonTemplateOutput = visitor.hasNonTemplateOutput(); }
@Override protected void marshalRuleHeader(final RuleModel model, final StringBuilder buf) { //Append Template header TemplateModel templateModel = (TemplateModel) model; buf.append("template header\n"); InterpolationVariable[] interpolationVariables = templateModel.getInterpolationVariablesList(); if (interpolationVariables.length == 0) { buf.append("test_var").append('\n'); } else { for (InterpolationVariable var : interpolationVariables) { buf.append(var.getVarName()).append('\n'); } } buf.append("\n"); //Append Package header super.marshalPackageHeader(model, buf); //Append Template definition buf.append("\ntemplate \"").append(super.marshalRuleName(templateModel)).append("\"\n\n"); super.marshalRuleHeader(model, buf); }
private void createRHSChildColumns(final RuleModel rm, final IAction action, final BRLActionColumn column, final List<BRLVariableColumn> variableColumns) { final Map<InterpolationVariable, Integer> templateKeys = new HashMap<>(); final RuleModelVisitor rmv = new RuleModelVisitor(rm.lhs, templateKeys); rmv.visit(action); final List<InterpolationVariable> ivs = new ArrayList<>(templateKeys.keySet()); for (BRLVariableColumn variableColumn : variableColumns) { final Iterator<InterpolationVariable> ivsIts = ivs.iterator(); while (ivsIts.hasNext()) { final InterpolationVariable iv = ivsIts.next(); if (iv.getVarName().equals(variableColumn.getVarName())) { final BRLActionVariableColumn source = (BRLActionVariableColumn) variableColumn; final BRLActionVariableColumn target = makeBRLActionVariableColumn(source, iv); column.getChildColumns().add(target); ivsIts.remove(); } } } }
TemplateDataColumn col = new TemplateDataColumn(var.getVarName(), var.getDataType(), var.getFactType(), changedCell); List<String> columnData = model.getTable().get(var.getVarName()); columnData.set(targetRowIndex, dcv);
/** * Convert an interpolation variable to a column */ public TemplateDataColumn makeModelColumn(InterpolationVariable var) { return new TemplateDataColumn(var.getVarName(), var.getDataType(), var.getFactType(), var.getFactField(), var.getOperator()); }
InterpolationVariable iv = me.getKey(); int index = me.getValue(); BRLActionVariableColumn variable = new BRLActionVariableColumn(iv.getVarName(), iv.getDataType(), iv.getFactType(),
InterpolationVariable iv = me.getKey(); int index = me.getValue(); BRLActionVariableColumn variable = new BRLActionVariableColumn(iv.getVarName(), iv.getDataType(), iv.getFactType(),
InterpolationVariable iv = me.getKey(); int index = me.getValue(); BRLConditionVariableColumn variable = new BRLConditionVariableColumn(iv.getVarName(), iv.getDataType(), iv.getFactType(),
InterpolationVariable iv = me.getKey(); int index = me.getValue(); BRLConditionVariableColumn variable = new BRLConditionVariableColumn(iv.getVarName(), iv.getDataType(), iv.getFactType(),
final String baseVariableName = baseVariable.getVarName();
TemplateDataColumn col = new TemplateDataColumn(var.getVarName(), var.getDataType(), var.getFactType(),