private String getType(final Pattern52 pattern, final ConditionCol52 col) {

    // Columns with "Value Lists" etc are always Text (for now)
    if (hasValueList(col)) {
      return DataType.TYPE_STRING;
    }

    // Operator "in" and "not in" requires a List as the value. These are always Text (for now)
    if (OperatorsOracle.operatorRequiresList(col.getOperator())) {
      return DataType.TYPE_STRING;
    }

    // Literals without operators are always Text (as the user can specify the operator "in cell")
    if (col.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_LITERAL) {
      if (col.getOperator() == null || "".equals(col.getOperator())) {
        return DataType.TYPE_STRING;
      }
    }

    // Formula are always Text (as the user can specify anything "in cell")
    if (col.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_PREDICATE) {
      return DataType.TYPE_STRING;
    }

    // Predicates are always Text (as the user can specify anything "in cell")
    if (col.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_RET_VALUE) {
      return DataType.TYPE_STRING;
    }

    // Otherwise lookup from SuggestionCompletionEngine
    final String factType = pattern.getFactType();
    final String fieldName = col.getFactField();
    return getTypeFromDataOracle(factType, fieldName);
  }
 public boolean isConstraintValid(final DTColumnConfig52 col) {
   if (col instanceof RowNumberCol52) {
     return true;
   }
   if (col instanceof DescriptionCol52) {
     return true;
   }
   if (col instanceof MetadataCol52) {
     return true;
   }
   if (col instanceof AttributeCol52) {
     return true;
   }
   if (col instanceof ConditionCol52) {
     final ConditionCol52 c = (ConditionCol52) col;
     if (c.getConstraintValueType() == BaseSingleFieldConstraint.TYPE_LITERAL) {
       if (c.getFactField() == null || c.getFactField().equals("")) {
         return false;
       }
       if (c.getOperator() == null || c.getOperator().equals("")) {
         return false;
       }
       return true;
     }
     return true;
   }
   if (col instanceof ActionCol52) {
     return true;
   }
   return false;
 }