/** * Encode object to storage format. * * @param toStore Object to be encoded. * @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 toStorage(Object toStore, Encoder encoder, Wrapper wrapper) { if (encoder == null || wrapper == null) { throw new IllegalArgumentException("Both Encoder and Wrapper must be provided!"); } if (toStore == null) return null; return wrapper.wrap(encoder.toStorage(toStore)); } }