public boolean isTransient() { return object.getResolveState().isTransient(); }
public boolean isTransient() { return object != null && object.getResolveState().isTransient(); }
public boolean isTransient() { return object != null && object.getResolveState().isTransient(); }
public boolean isTransient() { return object != null && object.getResolveState().isTransient(); }
public boolean isTransient() { return object != null && object.getResolveState().isTransient(); }
/** * Returns false while object is having its field set up. */ public boolean respondToChangesInPersistentObjects() { // note: SERIALIZING_TRANSIENT is included twice here, through either isTransient() or isSerializing() return !( isNew() || isTransient() || isResolving() || isUpdating() || isSerializing() ); }
public Object getDefault() { ResolveState resolveState = getNakedObject().getResolveState(); if (resolveState.isTransient()) { return getScalarAssociation().getDefault(getNakedObject()); } return null; }
public void addElement(final NakedObject inObject, final NakedObject associate) { if (associate == null) { throw new IllegalArgumentException("Can't use null to add an item to a collection"); } if (readWrite()) { if (inObject.getResolveState().isPersistent() && associate.getResolveState().isTransient()) { throw new NakedObjectRuntimeException("can't set a reference to a transient object from a persistent one: " + inObject.titleString() + " (persistent) -> " + associate.titleString() + " (transient)"); } reflectiveAdapter.addAssociation(inObject, associate); } }
public void objectChanged(final NakedObject object) { if (object.getResolveState().isTransient()) { NakedObjectsContext.getUpdateNotifer().addChangedObject(object); } if (object.getResolveState().respondToChangesInPersistentObjects()) { checkTransactionInProgress(); clientSideTransaction.addObjectChanged(object); } }
public void setAssociation(final NakedObject inObject, final NakedObject associate) { if (isReadWrite()) { if (inObject.getResolveState().isPersistent() && associate != null && associate.getResolveState().isTransient()) { throw new NakedObjectRuntimeException("can't set a reference to a transient object from a persistent one: " + inObject.titleString() + " (persistent) -> " + associate.titleString() + " (transient)"); } reflectiveAdapter.setAssociation(inObject, associate); } }
private Consent setFieldOfMatchingType(final NakedObject target, final NakedObject source) { if (target.getResolveState().isTransient() && source.getResolveState().isPersistent()) { return new Veto("Can't set field in persistent object with reference to non-persistent object"); } else { NakedObjectField[] fields = target.getSpecification().getDynamicallyVisibleFields(target); for (int i = 0; i < fields.length; i++) { NakedObjectField fld = fields[i]; if (fld.isObject() && source.getSpecification().isOfType(fld.getSpecification())) { if (fld.get(target) == null && ((OneToOneAssociation) fld).isAssociationValid(target, source).isAllowed()) { return new Allow("Set field " + fld.getName()); } } } return new Veto("No empty field accepting object of type " + source.getSpecification().getSingularName() + " in " + title()); } }
private void persist(final NakedObject object, final PersistedObjectAdder persistor) { if (object.getResolveState().isTransient() && object.persistable() != Persistable.TRANSIENT) {
public void objectChanged(final NakedObject object) { ResolveState resolveState = object.getResolveState(); if (resolveState.respondToChangesInPersistentObjects()) { NakedObjectSpecification specification = object.getSpecification(); if (Features.isAlwaysImmutable(specification) || (Features.isImmutableOncePersisted(specification) && resolveState.isPersistent())) { throw new ObjectPersistenceException("cannot change immutable object"); } object.getSpecification().lifecycleEvent(object, NakedObjectSpecification.UPDATING); getTransaction().addCommand(objectStore.createSaveObjectCommand(object)); object.getSpecification().lifecycleEvent(object, NakedObjectSpecification.UPDATED); NakedObjectsContext.getUpdateNotifer().addChangedObject(object); } if (resolveState.respondToChangesInPersistentObjects() || resolveState.isTransient()) { object.fireChangedEvent(); NakedObjectsContext.getUpdateNotifer().addChangedObject(object); } }
if (target.getResolveState().isTransient()) { encoder.madePersistent(target, result.getPersistedTarget());
public Consent canSet(final NakedObject object) { NakedObjectSpecification targetType = getOneToOneAssociation().getSpecification(); NakedObjectSpecification spec = object.getSpecification(); if (isEditable().isVetoed()) { return isEditable(); } if (!spec.isOfType(targetType)) { return new Veto("Can only drop objects of type " + targetType.getSingularName()); } if (getParent().getResolveState().isPersistent() && object.getResolveState().isTransient()) { return new Veto("Can't drop a non-persistent into this persistent object"); } // if (object instanceof Aggregated) { // Aggregated aggregated = ((Aggregated) object); // if (aggregated.isAggregated() && aggregated.parent() != getParent()) { if (Features.isAggregated(spec) && spec.getAggregate(object) != getParent()) { return new Veto("Object is already associated with another object: " + spec.getAggregate(object)); } // } Consent perm = getOneToOneAssociation().isAssociationValid(getParent(), object); return perm; }
+ " are allowed in this collection"); if (parent.getResolveState().isPersistent() && object.getResolveState().isTransient()) { return new Veto("Can't set field in persistent object with reference to non-persistent object");