public boolean validate(final Field column, final long lineNumber, final String value) {
      errorArgs = new String[] {lineNumber + "", column.getName(), value};

      // ignore a null value if this is the case
      if ((column.getType() == DataType.SCTID_OR_UUID) && isBlank(value)) return true;

      for (final Pattern pattern : patterns) {
        if (pattern.matcher(value).matches()) {
          return true;
        }
      }
      validationLog.assertionError(errorMessage, lineNumber, column.getName(), value);
      return false;
    }
 private ColumnType getColumnType(final Field field) {
   switch (field.getType()) {
     case SCTID:
       return ColumnType.SCTID;
     case SCTID_OR_UUID:
       return ColumnType.REL_SCTID;
     case UUID:
       return field.isMandatory() ? ColumnType.UUID : ColumnType.REL_UUID;
     case TIME:
       return field.isMandatory() ? ColumnType.TIME : ColumnType.REL_TIME;
     case BOOLEAN:
       return ColumnType.BOOLEAN;
     case INTEGER:
       return ColumnType.INTEGER;
     case STRING:
       return ColumnType.STRING;
   }
   return null;
 }