@Override public boolean visitToOne(final ToOneProperty property) { properties.add(property.getName()); return true; }
public boolean visitToOne(ToOneProperty property) { if (!property.isFault(peerInParentContext)) { Persistent destinationSource = (Persistent) property .readProperty(peerInParentContext); Object destinationTarget = destinationSource != null ? merge( destinationSource, property.getTargetDescriptor(), seen) : null; Object oldTarget = property.isFault(target) ? null : property .readProperty(target); property.writePropertyDirectly(target, oldTarget, destinationTarget); } return true; }
public boolean visitToOne(ToOneProperty property) { property.setTarget(source, target, false); return false; } });
public boolean visitToOne(ToOneProperty property) { if (prefetchTree != null) { PrefetchTreeNode child = prefetchTree.getNode(property.getName()); if (child != null) { Object destinationSource = property.readProperty(source); Object destinationTarget = destinationSource != null ? detach( destinationSource, property.getTargetDescriptor(), child) : null; if (destinationTarget != null) { fillReverseRelationship(destinationTarget, property); } ToOneProperty targetProperty = (ToOneProperty) targetDescriptor .getProperty(property.getName()); Object oldTarget = targetProperty.isFault(target) ? null : targetProperty.readProperty(target); targetProperty .writeProperty(target, oldTarget, destinationTarget); } } return true; }
@Override public boolean visitToOne(ToOneProperty property) { boolean isUsedForLocking = entity.getRelationship(property.getName()).isUsedForLocking(); // eagerly resolve optimistically locked relationships Object target = isUsedForLocking ? property.readProperty(object) : property.readPropertyDirectly(object); if (target instanceof Persistent) { target = ((Persistent) target).getObjectId(); } // else - null || Fault arcSnapshot.put(property.getName(), target); return true; } });
public TargetPropertyWriter getOrCreateWriter(ToOneProperty property) { if (!entity.equals(property.getRelationship().getSourceEntity())) { throw new LmRuntimeException("Property belongs to a different entity: " + property.getName()); } List<DbRelationship> dbRelationships = property.getRelationship().getDbRelationships(); if (dbRelationships.size() > 1) { // TODO: support for flattened to-one relationships LOGGER.info("TODO: not mapping db: path for a flattened relationship: " + property.getName()); return NULL_WRITER; } DbRelationship dbRelationship = dbRelationships.get(0); List<DbJoin> joins = dbRelationship.getJoins(); if (joins.size() > 1) { // TODO: support for multi-key to-one relationships LOGGER.info("TODO: not mapping db: path for a multi-key relationship: " + property.getName()); return NULL_WRITER; } return getOrCreateWriter( property.getName(), ASTDbPath.DB_PREFIX + joins.get(0).getSourceName(), () -> new TargetToOnePropertyWriter(property) ); }
public boolean visitToOne(ToOneProperty property) { ObjRelationship relationship = property.getRelationship(); if (relationship.isToPK()) { property.writeProperty(object, null, null); .isSourceDefiningTargetPrecenseAndType(context .getEntityResolver())) { property.invalidate(object); property.writeProperty( object, null,
@Override public boolean visitToOne(ToOneProperty property) { if (arcSnapshot == null) { return true; } Object newValue = property.readPropertyDirectly(object); if (newValue instanceof Fault) { return true; } Object oldValue = arcSnapshot.get(property.getName()); if (!Util.nullSafeEquals(oldValue, newValue != null ? ((Persistent) newValue).getObjectId() : null)) { modFound[0] = true; } return !modFound[0]; } });
@Override public boolean visitToOne(ToOneProperty property) { if (!property.getRelationship().isSourceIndependentFromTargetChange()) { writerFactory.getOrCreateWriter(property); } return true; }
@Override public boolean visitToOne(ToOneProperty property) { if (property .getRelationship() .isSourceIndependentFromTargetChange()) { property.invalidate(object); } return true; }
public boolean visitToOne(ToOneProperty property) { ObjRelationship rel = property.getRelationship(); Object targetObject = property.readPropertyDirectly(object); if (targetObject == null) { return true;
@Override public boolean willWrite(DataObject target, Object value) { Object oldValue = property.readProperty(target); return !Util.nullSafeEquals(oldValue, value); } }
public boolean visitToOne(ToOneProperty property) { if (state == PersistenceState.COMMITTED) { property.invalidate(source); } // TODO: andrus, 11/25/2006 - handle replacement of clean properties // of dirty objects. See DataRowUtils for details. return false; } });
public boolean visitToOne(ToOneProperty property) { Object target = property.readPropertyDirectly(persistent); if (target instanceof Persistent) { Persistent targetDO = (Persistent) target; // make sure it is registered registerNewObject(targetDO); getObjectStore().arcCreated(persistent.getObjectId(), targetDO.getObjectId(), property.getName()); } return true; }
public boolean visitToOne(ToOneProperty property) { ObjRelationship rel = property.getRelationship(); DbRelationship dbRel = rel.getDbRelationships().get(0); for (DbJoin join : dbRel.getJoins()) { DbAttribute src = join.getSource(); if (src.isForeignKey() && visited.add(src.getName())) { entityResult.addDbField(src.getName(), prefix + index[0]++); } } return true; } };
public boolean visitToOne(ToOneProperty property) { property.invalidate(object); return true; } });
public boolean visitToOne(ToOneProperty property) { property.setTarget(source, null, false); return false; } });
public boolean visitToOne(ToOneProperty property) { ObjRelationship rel = property.getRelationship(); DbRelationship dbRel = rel.getDbRelationships().get(0); for (DbJoin join : dbRel.getJoins()) { DbAttribute src = join.getSource(); if (src.isForeignKey() && visited.add(src.getName())) { result.addDbField("fetch." + prefix + "." + src.getName(), prefix + "." + src.getName()); } } return true; } };
public boolean visitToOne(ToOneProperty property) { property.invalidate(object); return true; } };
public boolean visitToOne(ToOneProperty property) { property.setTarget(source, target, false); return false; } });