/** * Decode object from storage format. * * @param stored Object in the storage format. * @param encoder the {@link Encoder} used for data conversion. * @param wrapper the {@link Wrapper} used to decorate the converted data. * @return Object decoded and unwrapped. */ public static Object fromStorage(Object stored, Encoder encoder, Wrapper wrapper) { if (encoder == null || wrapper == null) { throw new IllegalArgumentException("Both Encoder and Wrapper must be provided!"); } if (stored == null) return null; return encoder.fromStorage(wrapper.unwrap(stored)); }