{
//TODO optimize without instantiation
PRIMITIVES_ENUMERATION enumeratedType = PrimitiveJavaTypesUtil.getEnumeratedType(originalClass.getName());
//TODO pass enumeratedType directly to 'composeInstance'
ByteBuffer buffer = _threadLocalBuffer.get();
buffer.clear();
buffer.put(value1);
buffer.flip();
Comparable val1 = (Comparable) PrimitiveJavaTypesUtil.getAsWrappedPrimitive(enumeratedType, buffer);
Comparable val2 = composeInstance(originalClass, value2, context.getSession());
return convertCompareResult(val1.compareTo(val2));