@Override boolean incorrectObjectType(Object object) { if (!(object instanceof Persistent)) { return true; } Persistent persistent = (Persistent) object; if (persistent.getObjectContext() != context) { return true; } return false; }
boolean incorrectObjectType(Object object) { if (!(object instanceof Persistent)) { return true; } Persistent persistent = (Persistent) object; if (persistent.getObjectContext() != context) { return true; } return false; }
void postprocessRemove(Object removedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, removedObject, null); } }
void postprocessAdd(Object addedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, null, addedObject); } }
/** * Returns an object that should be stored as a value in this ValueHolder, ensuring * that it is registered with the same context. */ protected Object connect(Persistent persistent) { if (persistent == null) { return null; } if (relationshipOwner.getObjectContext() != persistent.getObjectContext()) { throw new CayenneRuntimeException("Cannot set object as destination of relationship %s " + "because it is in a different ObjectContext", relationshipName); } return persistent; }
/** * Returns an object that should be stored as a value in this ValueHolder, ensuring * that it is registered with the same context. */ protected Object connect(Persistent persistent) { if (persistent == null) { return null; } if (relationshipOwner.getObjectContext() != persistent.getObjectContext()) { throw new CayenneRuntimeException( "Cannot set object as destination of relationship " + relationshipName + " because it is in a different ObjectContext"); } return persistent; }
/** * Returns mapped ObjEntity for object. If an object is transient or is not * mapped returns null. */ public static ObjEntity getObjEntity(Persistent p) { return (p.getObjectContext() != null) ? p.getObjectContext().getEntityResolver().getObjEntity(p) : null; }
void postprocessRemove(Object removedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, removedObject, null); if (removedObject instanceof Persistent) { Util.unsetReverse(relationshipOwner, relationshipName, (Persistent) removedObject); } } }
protected void postprocessAdd(Object addedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, null, addedObject); if (addedObject instanceof Persistent) { Util.setReverse(relationshipOwner, relationshipName, (Persistent) addedObject); } } }
protected void postprocessRemove(Object removedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, removedObject, null); if (removedObject instanceof Persistent) { Util.unsetReverse(relationshipOwner, relationshipName, (Persistent) removedObject); } } }
protected void postprocessRemove(Object removedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, removedObject, null); if (removedObject instanceof Persistent) { Util.unsetReverse( relationshipOwner, relationshipName, (Persistent) removedObject); } } }
void postprocessAdd(Object addedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, null, addedObject); if (addedObject instanceof Persistent) { Util.setReverse(relationshipOwner, relationshipName, (Persistent) addedObject); } } }
protected void postprocessAdd(Object addedObject) { // notify ObjectContext if (relationshipOwner.getObjectContext() != null) { relationshipOwner.getObjectContext().propertyChanged( relationshipOwner, relationshipName, null, addedObject); if (addedObject instanceof Persistent) { Util.setReverse( relationshipOwner, relationshipName, (Persistent) addedObject); } } }
protected Map<?, ?> toMap(Object o) { if (o instanceof Map) { return (Map<?, ?>) o; } else if (o instanceof ObjectId) { return ((ObjectId) o).getIdSnapshot(); } else if (o instanceof Persistent) { Persistent persistent = (Persistent) o; // before reading full snapshot, check if we can use smaller ID // snapshot ... it is much cheaper... return persistent.getObjectContext() != null ? toMap_AttachedObject(persistent.getObjectContext(), persistent) : toMap_DetachedObject(persistent); } else { return null; } }
ClassDescriptor getClassDescriptor() { // class descriptor is initiated in constructor, but is nullified on // serialization if (classDescriptor == null) { EntityResolver entityResolver = object.getObjectContext().getEntityResolver(); this.classDescriptor = entityResolver.getClassDescriptor(entityName); } return classDescriptor; }
protected void resolveFault(Object object) throws PropertyException { try { Persistent persistent = (Persistent) object; ObjectContext context = persistent.getObjectContext(); if (context != null) { context.prepareForAccess(persistent, getName(), false); } } catch (ClassCastException e) { throw new PropertyException("Object is not a Persistent: '" + object.getClass().getName() + "'", this, object, e); } } }
void resolveFault(Object object) throws PropertyAccessException { try { Persistent persistent = (Persistent) object; ObjectContext context = persistent.getObjectContext(); if (context != null) { context.prepareForAccess(persistent, getName()); } } catch (ClassCastException e) { throw new PropertyAccessException("Object is not a Persistent: '" + object.getClass().getName() + "'", this, object, e); } } }
Object doResolveFault(Persistent sourceObject, String relationshipName) { RelationshipQuery query = new RelationshipQuery( sourceObject.getObjectId(), relationshipName, false); List objects = sourceObject.getObjectContext().performQuery(query); if (objects.isEmpty()) { return null; } else if (objects.size() == 1) { return objects.get(0); } else { throw new CayenneRuntimeException("Error resolving to-one fault. " + "More than one object found. Source Id: %s, relationship: %s" , sourceObject.getObjectId(), relationshipName); } } }
/** * Returns class descriptor for the object or null if the object is not * registered with an ObjectContext or descriptor was not found. */ public static ClassDescriptor getClassDescriptor(Persistent object) { ObjectContext context = object.getObjectContext(); if (context == null) { return null; } return context.getEntityResolver().getClassDescriptor(object.getObjectId().getEntityName()); }
protected void updateReverse(List resolved) { EntityResolver resolver = relationshipOwner.getObjectContext().getEntityResolver(); ObjEntity sourceEntity = resolver.getObjEntity(relationshipOwner.getObjectId().getEntityName()); ObjRelationship relationship = sourceEntity.getRelationship(relationshipName); ObjRelationship reverse = relationship.getReverseRelationship(); if (reverse != null && !reverse.isToMany()) { PropertyDescriptor property = resolver.getClassDescriptor(reverse.getSourceEntity().getName()).getProperty( reverse.getName()); for (Object o : resolved) { property.writePropertyDirectly(o, null, relationshipOwner); } } } }