public static Collection<InterpolationVariable> extractInterpolationVariables(final String text) { if (text == null || text.length() == 0) { return Collections.emptyList(); } List<InterpolationVariable> interpolationVariableList = new ArrayList<>(); int pos = 0; while ((pos = text.indexOf("@{", pos)) != -1) { int end = text.indexOf('}', pos + 2); if (end != -1) { String varName = text.substring(pos + 2, end); pos = end + 1; InterpolationVariable var = new InterpolationVariable(varName, DataType.TYPE_OBJECT); interpolationVariableList.add(var); } else { break; } } return interpolationVariableList; }
/** * 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()); }
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; }
final String baseVariableName = baseVariable.getVarName(); final int iCol = getVariableColumnIndex(valueHolder.getValue()); final InterpolationVariable variable = allVariables[iCol]; final String field = variable.getFactField(); if (oracle.isDependentEnum(baseVariable.getFactType(), baseVariable.getFactField(), field)) { dependentColumnIndexes.add(iCol);
private BRLConditionVariableColumn makeBRLConditionVariableColumn(final BRLConditionVariableColumn source, final InterpolationVariable iv) { final String varName = source.getVarName(); final String dataType = iv.getDataType() == null ? DataType.TYPE_OBJECT : iv.getDataType(); final String factType = iv.getFactType(); final String factField = iv.getFactField(); BRLConditionVariableColumn target; if (factType != null && factField != null) { target = new BRLConditionVariableColumn(varName, dataType, factType, factField); } else { target = new BRLConditionVariableColumn(varName, dataType); } target.setHeader(source.getHeader()); return target; }
final String baseVariableName = baseVariable.getVarName(); final int iCol = getVariableColumnIndex(valueHolder.getValue()); final InterpolationVariable variable = allVariables[iCol]; final String field = variable.getFactField();
private void updateInterpolationVariableFieldTypes(TemplateModel model) { //Fields' data-types may be qualified with Fact type. This can be removed for (InterpolationVariable variable : model.getInterpolationVariablesList()) { variable.setFactField(variable.getFactField()); } } }
TemplateDataColumn col = new TemplateDataColumn(var.getVarName(), var.getDataType(), var.getFactType(), var.getFactField(), var.getOperator()); List<String> columnData = model.getTable().get(var.getVarName()); columnData.set(targetRowIndex, dcv);
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."); }
private BRLActionVariableColumn makeBRLActionVariableColumn(final BRLActionVariableColumn source, final InterpolationVariable iv) { final String varName = source.getVarName(); final String dataType = iv.getDataType() == null ? DataType.TYPE_OBJECT : iv.getDataType(); final String factType = iv.getFactType(); final String factField = iv.getFactField(); BRLActionVariableColumn target; if (factType != null && factField != null) { target = new BRLActionVariableColumn(varName, dataType, factType, factField); } else { target = new BRLActionVariableColumn(varName, dataType); } target.setHeader(source.getHeader()); return target; }
InterpolationVariable iv = me.getKey(); int index = me.getValue(); BRLConditionVariableColumn variable = new BRLConditionVariableColumn(iv.getVarName(), iv.getDataType(), iv.getFactType(), iv.getFactField(), iv.getOperator()); variable.setHeader(editingCol.getHeader()); variable.setHideColumn(editingCol.isHideColumn());
private void extractInterpolationVariablesAbstractActionMultiConstraintBendableMatch(final AbstractActionMultiConstraintBendableMatch constraintMatch) { Collection<InterpolationVariable> interpolationVariables = constraintMatch.extractInterpolationVariables(); assertEquals(2, interpolationVariables.size()); assertTrue(interpolationVariables.contains(new InterpolationVariable("var1", DataType.TYPE_OBJECT))); assertTrue(interpolationVariables.contains(new InterpolationVariable("var2", DataType.TYPE_OBJECT))); }
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)); } } }
InterpolationVariable iv = me.getKey(); int index = me.getValue(); BRLConditionVariableColumn variable = new BRLConditionVariableColumn(iv.getVarName(), iv.getDataType(), iv.getFactType(), iv.getFactField(), iv.getOperator()); variable.setHeader(editingCol.getHeader()); variable.setHideColumn(editingCol.isHideColumn());
@Test public void extractInterpolationVariablesContainsVariables() { String string = "foo bar @{var1} baz @{var2}"; Collection<InterpolationVariable> interpolationVariables = TemplateUtils.extractInterpolationVariables(string); assertEquals(2, interpolationVariables.size()); assertTrue(interpolationVariables.contains(new InterpolationVariable("var1", DataType.TYPE_OBJECT))); assertTrue(interpolationVariables.contains(new InterpolationVariable("var2", DataType.TYPE_OBJECT))); }
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(); }
TemplateDataColumn col = new TemplateDataColumn(var.getVarName(), var.getDataType(), var.getFactType(), var.getFactField(), var.getOperator());
private void extractInterpolationVariablesAbstractActionConstraintMatch(final AbstractActionConstraintMatch constraintMatch) { Collection<InterpolationVariable> interpolationVariables = constraintMatch.extractInterpolationVariables(); assertEquals(1, interpolationVariables.size()); assertTrue(interpolationVariables.contains(new InterpolationVariable("var1", DataType.TYPE_OBJECT))); }
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(); }
InterpolationVariable iv = me.getKey(); int index = me.getValue(); BRLActionVariableColumn variable = new BRLActionVariableColumn(iv.getVarName(), iv.getDataType(), iv.getFactType(), iv.getFactField()); variable.setHeader(editingCol.getHeader()); variable.setHideColumn(editingCol.isHideColumn());