@Override
  protected List<BRLConditionVariableColumn> convertInterpolationVariables(
      Map<InterpolationVariable, Integer> ivs) {

    // If there are no variables add a boolean column to specify whether the fragment should apply
    if (ivs.size() == 0) {
      BRLConditionVariableColumn variable =
          new BRLConditionVariableColumn("", DataType.TYPE_BOOLEAN);
      variable.setHeader(editingCol.getHeader());
      variable.setHideColumn(editingCol.isHideColumn());
      List<BRLConditionVariableColumn> variables = new ArrayList<BRLConditionVariableColumn>();
      variables.add(variable);
      return variables;
    }

    // Convert to columns for use in the Decision Table
    BRLConditionVariableColumn[] variables = new BRLConditionVariableColumn[ivs.size()];
    for (Map.Entry<InterpolationVariable, Integer> me : ivs.entrySet()) {
      InterpolationVariable iv = me.getKey();
      int index = me.getValue();
      BRLConditionVariableColumn variable =
          new BRLConditionVariableColumn(
              iv.getVarName(), iv.getDataType(), iv.getFactType(), iv.getFactField());
      variable.setHeader(editingCol.getHeader());
      variable.setHideColumn(editingCol.isHideColumn());
      variables[index] = variable;
    }

    // Convert the array into a mutable list (Arrays.toList provides an immutable list)
    List<BRLConditionVariableColumn> variableList = new ArrayList<BRLConditionVariableColumn>();
    for (BRLConditionVariableColumn variable : variables) {
      variableList.add(variable);
    }
    return variableList;
  }
 private BRLConditionVariableColumn cloneVariable(BRLConditionVariableColumn variable) {
   BRLConditionVariableColumn clone =
       new BRLConditionVariableColumn(
           variable.getVarName(),
           variable.getFieldType(),
           variable.getFactType(),
           variable.getFactField());
   clone.setHeader(variable.getHeader());
   clone.setHideColumn(variable.isHideColumn());
   clone.setWidth(variable.getWidth());
   return clone;
 }