in openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/MappingRepository.java [1311:1384]
protected ValueHandler defaultHandler(ValueMapping val, boolean adapting) {
if (val.isSerialized()) {
if (_dict.maxEmbeddedBlobSize != -1)
warnMaxEmbedded(val, _dict.maxEmbeddedBlobSize);
return BlobValueHandler.getInstance();
}
Object handler = mappedStrategy(val, val.getType(), adapting);
if (handler instanceof ValueHandler)
return (ValueHandler) handler;
if (val.getType() == byte[].class
|| val.getType() == Byte[].class) {
if (_dict.maxEmbeddedBlobSize != -1)
warnMaxEmbedded(val, _dict.maxEmbeddedBlobSize);
return ByteArrayValueHandler.getInstance();
}
if (val.getType() == char[].class
|| val.getType() == Character[].class) {
if (isClob(val, true))
return CharArrayStreamValueHandler.getInstance();
return CharArrayValueHandler.getInstance();
}
switch (val.getTypeCode()) {
case JavaTypes.BOOLEAN:
case JavaTypes.BYTE:
case JavaTypes.CHAR:
case JavaTypes.DOUBLE:
case JavaTypes.FLOAT:
case JavaTypes.INT:
case JavaTypes.LONG:
case JavaTypes.SHORT:
case JavaTypes.BOOLEAN_OBJ:
case JavaTypes.BYTE_OBJ:
case JavaTypes.CHAR_OBJ:
case JavaTypes.DOUBLE_OBJ:
case JavaTypes.FLOAT_OBJ:
case JavaTypes.INT_OBJ:
case JavaTypes.LONG_OBJ:
case JavaTypes.SHORT_OBJ:
case JavaTypes.BIGINTEGER:
case JavaTypes.BIGDECIMAL:
case JavaTypes.NUMBER:
case JavaTypes.DATE:
case JavaTypes.CALENDAR:
case JavaTypes.LOCALE:
case JavaTypes.LOCAL_DATE:
case JavaTypes.LOCAL_TIME:
case JavaTypes.LOCAL_DATETIME:
case JavaTypes.OFFSET_TIME:
case JavaTypes.OFFSET_DATETIME:
case JavaTypes.UUID_OBJ:
return ImmutableValueHandler.getInstance();
case JavaTypes.STRING:
if (isClob(val, true))
return ClobValueHandler.getInstance();
return ImmutableValueHandler.getInstance();
case JavaTypes.PC:
if (!val.getTypeMapping().isMapped()
&& useUntypedPCHandler(val))
return UntypedPCValueHandler.getInstance();
break;
case JavaTypes.PC_UNTYPED:
return UntypedPCValueHandler.getInstance();
case JavaTypes.OID:
return new ObjectIdValueHandler();
}
if (!getConfiguration().getCompatibilityInstance()
.getStoreMapCollectionInEntityAsBlob()
&& val.isEmbeddedPC())
return new ElementEmbedValueHandler();
return null;
}