interface Value directly.enum DateEntityGrain.interface Value directly.interface Value directly.class DateEntityValue && class DateIntervalEntityValue can be seen as date range.class DateEntityValue && class DateIntervalEntityValue can be seen as date range.enum DateEntityGrain.enum DateEntityGrain.interface Value directly.enum DateEntityGrain.interface Value directly.enum DateEntityGrain.interface Value serializer/deserializer.interface Value type.interface Value directly.enum DateEntityGrain.ValueResolverRepository.registerType for each new value type
if you don't want to store class name of the value.interface Value serializer/deserializer.interface Value type.interface Value type.