@Override ObjectAdapter recreateAdapter( final ObjectAdapterMemento oam, ConcurrencyChecking concurrencyChecking) { ObjectSpecId objectSpecId = oam.objectSpecId; ObjectSpecification objectSpec = SpecUtils.getSpecificationFor(objectSpecId); final EncodableFacet encodableFacet = objectSpec.getFacet(EncodableFacet.class); return encodableFacet.fromEncodedString(oam.encodableValue); }
private void init(final ObjectAdapter adapter) { final ObjectSpecification specification = adapter.getSpecification(); final EncodableFacet encodableFacet = specification.getFacet(EncodableFacet.class); final boolean isEncodable = encodableFacet != null; if (isEncodable) { encodableValue = encodableFacet.toEncodedString(adapter); type = Type.ENCODEABLE; return; } final RootOid oid = (RootOid) adapter.getOid(); if (oid.isTransient()) { transientMemento = new Memento(adapter); type = Type.TRANSIENT; return; } persistentOidStr = oid.enString(getOidMarshaller()); type = Type.PERSISTENT; }