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()
+ "]");
}
}