/**
   * Get the Data Type corresponding to a given column. If the column is a ConditonCol52 and it is
   * not associated with a Pattern52 in the decision table (e.g. it has been cloned) the overloaded
   * method getDataType(Pattern52, ConditionCol52) should be used.
   *
   * @param column
   * @return
   */
  public DataType.DataTypes getDataType(BaseColumn column) {

    // Limited Entry are simply boolean
    if (column instanceof LimitedEntryCol) {
      return DataType.DataTypes.BOOLEAN;
    }

    // Action Work Items are always boolean
    if (column instanceof ActionWorkItemCol52) {
      return DataType.DataTypes.BOOLEAN;
    }

    // Actions setting Field Values from Work Item Result Parameters are always boolean
    if (column instanceof ActionWorkItemSetFieldCol52
        || column instanceof ActionWorkItemInsertFactCol52) {
      return DataType.DataTypes.BOOLEAN;
    }

    // Operators "is null" and "is not null" require a boolean cell
    if (column instanceof ConditionCol52) {
      ConditionCol52 cc = (ConditionCol52) column;
      if (cc.getOperator() != null
          && (cc.getOperator().equals("== null") || cc.getOperator().equals("!= null"))) {
        return DataType.DataTypes.BOOLEAN;
      }
    }

    // Extended Entry...
    return utils.getTypeSafeType(column);
  }
  /**
   * Get the Data Type corresponding to a given column
   *
   * @param pattern Pattern52
   * @param action ActionSetFieldCol52
   * @return
   */
  public DataType.DataTypes getDataType(Pattern52 pattern, ActionSetFieldCol52 action) {

    // Limited Entry are simply boolean
    if (action instanceof LimitedEntryCol) {
      return DataType.DataTypes.BOOLEAN;
    }

    // Extended Entry...
    return utils.getTypeSafeType(pattern, action);
  }
  /**
   * Get the Data Type corresponding to a given column
   *
   * @param pattern Pattern52
   * @param condition ConditionCol52
   * @return
   */
  public DataType.DataTypes getDataType(Pattern52 pattern, ConditionCol52 condition) {

    // Limited Entry are simply boolean
    if (condition instanceof LimitedEntryCol) {
      return DataType.DataTypes.BOOLEAN;
    }

    // Operators "is null" and "is not null" require a boolean cell
    if (condition.getOperator() != null
        && (condition.getOperator().equals("== null")
            || condition.getOperator().equals("!= null"))) {
      return DataType.DataTypes.BOOLEAN;
    }

    // Extended Entry...
    return utils.getTypeSafeType(pattern, condition);
  }