public String getString()

in core/src/main/java/org/apache/hop/core/row/value/ValueMetaBase.java [2076:2288]


  public String getString(Object object) throws HopValueException {
    try {
      String string;

      switch (type) {
        case TYPE_STRING:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = object == null ? null : object.toString();
              break;
            case STORAGE_TYPE_BINARY_STRING:
              string = (String) convertBinaryStringToNativeType((byte[]) object);
              break;
            case STORAGE_TYPE_INDEXED:
              string = object == null ? null : (String) index[((Integer) object).intValue()];
              break;
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          if (string != null) {
            string = trim(string);
          }
          break;

        case TYPE_DATE:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = convertDateToString((Date) object);
              break;
            case STORAGE_TYPE_BINARY_STRING:
              string = convertDateToString((Date) convertBinaryStringToNativeType((byte[]) object));
              break;
            case STORAGE_TYPE_INDEXED:
              string =
                  object == null
                      ? null
                      : convertDateToString((Date) index[((Integer) object).intValue()]);
              break;
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          break;

        case TYPE_NUMBER:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = convertNumberToString((Double) object);
              break;
            case STORAGE_TYPE_BINARY_STRING:
              string =
                  convertNumberToString((Double) convertBinaryStringToNativeType((byte[]) object));
              break;
            case STORAGE_TYPE_INDEXED:
              string =
                  object == null
                      ? null
                      : convertNumberToString((Double) index[((Integer) object).intValue()]);
              break;
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          break;

        case TYPE_INTEGER:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = convertIntegerToString((Long) object);
              break;
            case STORAGE_TYPE_BINARY_STRING:
              string =
                  convertIntegerToString((Long) convertBinaryStringToNativeType((byte[]) object));
              break;
            case STORAGE_TYPE_INDEXED:
              string =
                  object == null
                      ? null
                      : convertIntegerToString((Long) index[((Integer) object).intValue()]);
              break;
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          break;

        case TYPE_BIGNUMBER:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = convertBigNumberToString((BigDecimal) object);
              break;
            case STORAGE_TYPE_BINARY_STRING:
              string =
                  convertBigNumberToString(
                      (BigDecimal) convertBinaryStringToNativeType((byte[]) object));
              break;
            case STORAGE_TYPE_INDEXED:
              string =
                  object == null
                      ? null
                      : convertBigNumberToString((BigDecimal) index[((Integer) object).intValue()]);
              break;
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          break;

        case TYPE_BOOLEAN:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = convertBooleanToString((Boolean) object);
              break;
            case STORAGE_TYPE_BINARY_STRING:
              string =
                  convertBooleanToString(
                      (Boolean) convertBinaryStringToNativeType((byte[]) object));
              break;
            case STORAGE_TYPE_INDEXED:
              string =
                  object == null
                      ? null
                      : convertBooleanToString((Boolean) index[((Integer) object).intValue()]);
              break;
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          break;

        case TYPE_BINARY:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = convertBinaryStringToString((byte[]) object);
              break;
            case STORAGE_TYPE_BINARY_STRING:
              string = convertBinaryStringToString((byte[]) object);
              break;
            case STORAGE_TYPE_INDEXED:
              string =
                  object == null
                      ? null
                      : convertBinaryStringToString((byte[]) index[((Integer) object).intValue()]);
              break;
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          break;

        case TYPE_SERIALIZABLE:
          switch (storageType) {
            case STORAGE_TYPE_NORMAL:
              string = object == null ? null : object.toString();
              break; // just go for the default toString()
            case STORAGE_TYPE_BINARY_STRING:
              string = convertBinaryStringToString((byte[]) object);
              break;
            case STORAGE_TYPE_INDEXED:
              string = object == null ? null : index[((Integer) object).intValue()].toString();
              break; // just go for the default toString()
            default:
              throw new HopValueException(
                  this
                      + MSG_UNKNOWN_STORAGE_TYPE
                      + getStorageTypeDesc(storageType)
                      + MSG_SPECIFIED);
          }
          break;

        default:
          throw new HopValueException(this + MSG_UNKNOWN_TYPE + getTypeDesc(type) + MSG_SPECIFIED);
      }

      if (isOutputPaddingEnabled() && getLength() > 0) {
        string = ValueDataUtil.rightPad(string, getLength());
      }

      return string;
    } catch (ClassCastException e) {
      throw new HopValueException(
          this
              + MSG_DATA_TYPE_ERROR
              + object.getClass().getName()
              + MSG_OBJECT
              + object
              + MSG_DOES_NOT_CORRESPOND
              + toStringMeta()
              + "]");
    }
  }