private boolean isManyToMany() { boolean isNotHaveAttributes = joinEntity.getAttributes().size() == 0; return isNotHaveAttributes && reverseRelationship1 != null && reverseRelationship1.isToDependentPK() && reverseRelationship2 != null && reverseRelationship2.isToDependentPK() && entity1 != null && entity2 != null; }
/** * Returns <code>true</code> if a method <code>isToDependentPK</code> of * reverse relationship of this relationship returns <code>true</code>. */ public boolean isToMasterPK() { if (isToMany() || isToDependentPK()) { return false; } DbRelationship revRel = getReverseRelationship(); return revRel != null && revRel.isToDependentPK(); }
/** * Returns true if underlying DbRelationships point to dependent entity. */ public boolean isToDependentEntity() { return (getDbRelationships().get(0)).isToDependentPK(); }
/** * Returns true if underlying DbRelationships point to dependent entity. */ public boolean isToDependentEntity() { return ((DbRelationship) getDbRelationships().get(0)).isToDependentPK(); }
/** * Returns <code>true</code> if a method <code>isToDependentPK</code> of reverse * relationship of this relationship returns <code>true</code>. */ public boolean isToMasterPK() { if (isToMany() || isToDependentPK()) { return false; } DbRelationship revRel = getReverseRelationship(); return (revRel != null) ? revRel.isToDependentPK() : false; }
@Override public boolean isToDependentEntity() { return getDbRelationship().isToDependentPK(); }
/** * @deprecated Since 1.2 unused. */ public boolean mapsToDependentDbEntity() { Iterator i = getDbPathIterator(); if (!i.hasNext()) { return false; } Object o = i.next(); if (!i.hasNext()) { return false; } Object o1 = i.next(); if (!(o1 instanceof DbAttribute)) { return false; } DbRelationship toDependent = (DbRelationship) o; return toDependent.isToDependentPK(); }
/** * Returns a boolean indicating whether modifying a target of such * relationship in any way will not change the underlying table row of the * source. * * @since 4.0 */ public boolean isSourceIndependentFromTargetChange() { // note - call "isToPK" at the end of the chain, since // if it is to a dependent PK, we still should return true... return isToMany() || isToDependentPK() || !isToPK(); }
@Override public boolean isPrimaryKey() { return getDbRelationship().getReverseRelationship().isToDependentPK(); }
private DbRelationship findMasterToDependentDbRelationship( DbEntity masterDbEntity, DbEntity dependentDbEntity) { Iterator it = masterDbEntity.getRelationshipMap().values().iterator(); while (it.hasNext()) { DbRelationship relationship = (DbRelationship) it.next(); if (dependentDbEntity.equals(relationship.getTargetEntity()) && relationship.isToDependentPK()) { if (relationship.isToMany()) { throw new CayenneRuntimeException( "Only 'to one' master-detail relationships can be processed."); } return relationship; } } return null; } }
@Override public List<String> createSql(DbAdapter adapter) { if (!rel.isToMany() && rel.isToPK() && !rel.isToDependentPK()) {
for (Iterator j = origin.getRelationships().iterator(); j.hasNext();) { DbRelationship relation = (DbRelationship) j.next(); if (relation.isToDependentPK()) { DbEntity dst = (DbEntity) relation.getTargetEntity(); if (origin.equals(dst)) {
public Object getValueAt(int row, int col) { DbRelationship rel = getRelationship(row); if (rel == null) { return null; } switch (col) { case NAME: return rel.getName(); case TARGET: return rel.getTargetEntity(); case TO_DEPENDENT_KEY: return rel.isToDependentPK() ? Boolean.TRUE : Boolean.FALSE; case CARDINALITY: return rel.isToMany() ? Boolean.TRUE : Boolean.FALSE; default: return null; } }
private void checkOnGeneratedStrategyConflict(DbRelationship relationship, ValidationResult validationResult) { if (relationship.isToDependentPK()) { Collection<DbAttribute> attributes = relationship.getTargetEntity().getGeneratedAttributes(); for (DbAttribute attribute : attributes) { if (attribute.isGenerated()) { addFailure( validationResult, relationship, "'To Dep Pk' incompatible with Database-Generated on '%s' relationship", toString(relationship)); } } } }
if ((!candidate.isToMany() && !candidate.isToDependentPK()) || candidate.isToMasterPK()) { DbEntity target = (DbEntity) candidate.getTargetEntity();
if (reverseRelationship.isToDependentPK()) { return false;
/** * Creates a new relationship with the same set of joins, but going in the * opposite direction. * * @since 1.0.5 */ public DbRelationship createReverseRelationship() { DbEntity targetEntity = (DbEntity) getTargetEntity(); DbRelationship reverse = new DbRelationship(); reverse.setSourceEntity(targetEntity); reverse.setTargetEntityName(getSourceEntity().getName()); // TODO: andrus 12/24/2007 - one more case to handle - set reverse // toDepPK = true // if this relationship toDepPK is false, but the entities are joined on // a PK... // on the other hand, these can still be two independent entities... if (isToDependentPK() && !toMany && joins.size() == targetEntity.getPrimaryKeys().size()) { reverse.setToMany(false); } else { reverse.setToMany(!toMany); } for (DbJoin join : joins) { DbJoin reverseJoin = join.createReverseJoin(); reverseJoin.setRelationship(reverse); reverse.addJoin(reverseJoin); } return reverse; }
if (rel.isToPK() && !rel.isToDependentPK()) {
/** * Prints itself as XML to the provided XMLEncoder. * * @since 1.1 */ public void encodeAsXML(XMLEncoder encoder) { encoder.print("<db-relationship name=\""); encoder.print(Util.encodeXmlAttribute(getName())); encoder.print("\" source=\""); encoder.print(getSourceEntity().getName()); if (getTargetEntityName() != null && getTargetEntity() != null) { encoder.print("\" target=\""); encoder.print(getTargetEntityName()); } if (isToDependentPK() && isValidForDepPk()) { encoder.print("\" toDependentPK=\"true"); } encoder.print("\" toMany=\""); encoder.print(isToMany()); encoder.println("\">"); encoder.indent(1); encoder.print(getJoins()); encoder.indent(-1); encoder.println("</db-relationship>"); }
/** * Prints itself as XML to the provided XMLEncoder. * * @since 1.1 */ public void encodeAsXML(XMLEncoder encoder) { encoder.print("<db-relationship name=\""); encoder.print(Util.encodeXmlAttribute(getName())); encoder.print("\" source=\""); encoder.print(Util.encodeXmlAttribute(getSourceEntity().getName())); if (getTargetEntityName() != null && getTargetEntity() != null) { encoder.print("\" target=\""); encoder.print(Util.encodeXmlAttribute(getTargetEntityName())); } if (isToDependentPK() && isValidForDepPk()) { encoder.print("\" toDependentPK=\"true"); } encoder.print("\" toMany=\""); encoder.print(isToMany()); encoder.println("\">"); encoder.indent(1); encoder.print(getJoins()); encoder.indent(-1); encoder.println("</db-relationship>"); }