private void addOwners(LeftJoin node, RepositoryConnection leftOwner, RepositoryConnection rightOwner, boolean local) { if (leftOwner == null && rightOwner == null) { if (local) { TupleExpr union = null; for (RepositoryConnection member : members) { OwnedTupleExpr arg = new OwnedTupleExpr(member, // NOPMD node.clone()); union = union == null ? arg : new Union(union, arg); // NOPMD } node.replaceWith(union); } } else if (leftOwner == rightOwner) { // NOPMD node.replaceWith(new OwnedTupleExpr(leftOwner, node.clone())); } else { if (local) { addDistinctOwnersLocal(node, leftOwner, rightOwner); } else { addDistinctOwnersNonLocal(node, leftOwner, rightOwner); } } }
private void addDistinctOwnersLocal(LeftJoin node, RepositoryConnection leftOwner, RepositoryConnection rightOwner) { if (rightOwner == null) { node.replaceWith(new OwnedTupleExpr(leftOwner, node.clone())); } else if (leftOwner == null) { TupleExpr union = null; for (RepositoryConnection member : members) { if (rightOwner == member) { OwnedTupleExpr arg = new OwnedTupleExpr(member, // NOPMD node.clone()); union = union == null ? arg : new Union(union, arg); // NOPMD } else { OwnedTupleExpr arg = new OwnedTupleExpr(member, // NOPMD node.getLeftArg().clone()); union = union == null ? arg : new Union(union, arg); // NOPMD } } node.replaceWith(union); } else { node.replaceWith(new OwnedTupleExpr(leftOwner, node.getLeftArg().clone())); } }
TupleExpr union = null; for (RepositoryConnection member : members) { OwnedTupleExpr arg = new OwnedTupleExpr(member, node.clone()); union = union == null ? arg : new Union(union, arg); node.replaceWith(new OwnedTupleExpr(leftOwner, node.clone())); node.replaceWith(new OwnedTupleExpr(leftOwner, node.clone())); for (RepositoryConnection member : members) { if (rightOwner == member) { OwnedTupleExpr arg = new OwnedTupleExpr(member, node.clone()); union = union == null ? arg : new Union(union, arg);