private String oidOrHashCode(final NakedObject object) { Oid oid = object.getOid(); /* * if (oid == null) { return "" + object.hashCode(); } */ return oid.toString(); /* * InlineTransferableWriter itw = new InlineTransferableWriter(); oid.writeData(itw); itw.close(); * return itw.toString(); */ }
void addAssociation(final NakedObject fieldContent, final String fieldId, final boolean ensurePersistent) { boolean notAlreadyPersistent = fieldContent != null && fieldContent.getOid().isTransient(); if (ensurePersistent && notAlreadyPersistent) { throw new IllegalStateException("Cannot save an object that is not persistent: " + fieldContent); } // LOG.debug("adding reference field " + fieldId +" " + fieldContent); set(fieldId, fieldContent == null ? null : fieldContent.getOid()); }
public void execute(final ExecutionContext context) throws ObjectPersistenceException { LOG.debug(" destroy object " + object); SerialOid oid = (SerialOid) object.getOid(); dataManager.remove(oid); object.setOptimisticLock(null); }
public void execute(final ExecutionContext context) { LOG.info(" delete object '" + object + "'"); oidObjectMap.remove(object.getOid()); NakedObjectSpecification specification = object.getSpecification(); LOG.debug(" destroy object " + object + " as instance of " + specification.getFullName()); TransientObjectStoreInstances ins = instancesFor(specification); ins.remove(object); // TODO need to do garbage collection instead // NakedObjects.getObjectLoader().unloaded(object); }
public void execute(final ExecutionContext context) { LOG.info(" create object " + object); NakedObjectSpecification specification = object.getSpecification(); LOG.debug(" saving object " + object + " as instance of " + specification.getFullName()); TransientObjectStoreInstances ins = instancesFor(specification); ins.add(object); oidObjectMap.put(object.getOid(), object); object.setOptimisticLock(new SerialNumberVersion(1, "user", new Date())); }
public Boolean isTransient(Object entity) { final NakedObject nakedObject = NakedObjectsContext.getObjectLoader().getAdapterFor(entity); if (nakedObject != null) { final HibernateOid hoid = (HibernateOid) nakedObject.getOid(); return Boolean.valueOf(hoid.isTransient()); } return super.isTransient(entity); }
public void resolveImmediately(final NakedObject object) { ObjectData data = (ObjectData) dataManager.loadData((SerialOid) object.getOid()); Assert.assertNotNull("Not able to read in data during resolve", object, data); initObject(object, data); }
private void updateOneToOneAssociation(final NakedObject object, final OneToOneAssociation field, final Data fieldData) { if (fieldData == null) { field.initAssociation(object, null); } else { NakedObject ref = recreateReference(fieldData); if (field.get(object) != ref) { LOG.debug(" association " + field + " changed to " + ref.getOid()); field.initAssociation(object, ref); } } }
private void destroy(final NakedObject object) { NakedObjectSpecification specification = object.getSpecification(); LOG.debug(" destroy object " + object + " as instance of " + specification.getShortName()); MemoryObjectStoreInstances ins = instancesFor(specification); ins.remove(object.getOid()); }
public synchronized void resolveImmediately(NakedObject object) { ResolveState resolveState = object.getResolveState(); if (resolveState.isResolvable(ResolveState.RESOLVING)) { Oid oid = object.getOid(); LOG.debug("resolve object (remotely from server)" + oid); ObjectData data = connection.resolveImmediately(NakedObjectsContext.getSession(), encoder.createIdentityData(object)); encoder.restore(data); } }
private void processChangedOid(final Oid oid) { if (oid.hasPrevious()) { Oid previous = oid.getPrevious(); NakedObject object = (NakedObject) identites.get(previous); if (object != null) { identites.remove(previous); Oid oidFromObject = object.getOid(); oidFromObject.copyFrom(oid); identites.put(oidFromObject, object); } } }
private void addAdapterToLoader(TestPojo pojo, NakedObject adapter) { objectLoader.addAdapter(pojo, adapter); objectLoader.addIdentity(adapter.getOid(), adapter); }
private void processChangedOid(final Oid oid) { Assert.assertNotNull("No OID", oid); if (oid.hasPrevious()) { Oid previous = oid.getPrevious(); NakedObject object = (NakedObject) identites.get(previous); if (object != null) { identites.remove(previous); Oid oidFromObject = object.getOid(); oidFromObject.copyFrom(oid); identites.put(oidFromObject, object); } } }
public void makePersistent(final NakedObject object) { object.setOptimisticLock(new TestProxyVersion(1)); object.changeState(ResolveState.RESOLVED); objects.put(object.getOid(), object); }
public void objectChanged(final NakedObject object) { actions.addElement("object changed " + object.getOid()); object.setOptimisticLock(((TestProxyVersion) object.getVersion()).next()); }
public void makePersistent(final NakedObject object) { actions.addElement("make persistent " + object.getOid()); NakedObjectsContext.getObjectLoader().madePersistent(object); // object.persistedAs(oid); object.setOptimisticLock(new DummyVersion(1)); }
private ObjectData createObjectData(final NakedObject object) { NakedObjectSpecification cls = object.getSpecification(); NakedObjectField[] fields = cls.getFields(); ObjectData data = new ObjectData(object.getOid(), object.getResolveState().name(), cls.getFullName()); for (int i = 0; i < fields.length; i++) { if (fields[i].isPersisted()) { createFieldData(object, data, fields[i]); } } return data; }
public void testExecuteClientActionFailsWithConcurrencyError() { NakedObject adapter = system.createPersistentTestObject(); adapter.setOptimisticLock(new TestProxyVersion(7)); Oid oid = adapter.getOid(); DummyIdentityData identityData = new DummyIdentityData(oid, TestProxyNakedObject.class.getName(), new TestProxyVersion(6)); try { server.executeClientAction(new NullSession(), new ReferenceData[] { identityData }, new int[] { ClientTransactionEvent.DELETE }); fail(); } catch (ConcurrencyException expected) { } }
public void testRecreateTransientAdapter() { Oid oid = new TestProxyOid(13, false); Object object = new TestPojo(); NakedObject adapter = objectLoader.recreateAdapter(oid, object); assertEquals(oid, adapter.getOid()); assertEquals(object, adapter.getObject()); assertEquals(ResolveState.TRANSIENT, adapter.getResolveState()); assertEquals(null, adapter.getVersion()); }
public void testRecreatePersistentAdapter() { Oid oid = new TestProxyOid(15, true); Object object = new TestPojo(); NakedObject adapter = objectLoader.recreateAdapter(oid, object); assertEquals(oid, adapter.getOid()); assertEquals(object, adapter.getObject()); assertEquals(ResolveState.GHOST, adapter.getResolveState()); assertEquals(null, adapter.getVersion()); }