An abstract value type that is meant to be used by the ORB, not the user. Semantically it is treated as a custom value type's implicit base class, although the custom valuetype does not actually inherit it in IDL. The implementer of a custom value type shall provide an implementation of the CustomMarshal operations. The manner in which this is done is specified in the IDL to Java langauge mapping. Each custom marshaled value type shall have its own implementation.