/** * Add a class to serializable with this mapper. Remeber to have nonparametric constructor (possibly private) * so deserializer could create its instances. * * @param klass to register */ public void registerClass(Class<? extends BiSerializable> klass) { registerAdapter(klass, new BiSerializableAdapter(klass)); }
@Override public Object deserialize(Binder binder, BiDeserializer deserializer) { try { Constructor c= objectClass.getDeclaredConstructor(); c.setAccessible(true); BiSerializable bs = (BiSerializable) c.newInstance(); bs.deserialize(binder, deserializer); return bs; } catch (Exception e) { throw new BiSerializationException("failed to deserialize " + typeName() + ": " + objectClass.getCanonicalName(), e); } } }