@Override public int size() { return ids.size(); }
private boolean match2(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[2]; JoinSide side1 = sides[1]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } return false; }
private boolean match2(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[2]; JoinSide side1 = sides[1]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } return false; }
private boolean match2(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[2]; JoinSide side1 = sides[1]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } return false; }
private boolean match3(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[3]; JoinSide side1 = sides[1], side2 = sides[2]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } return false; }
private boolean match3(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[3]; JoinSide side1 = sides[1], side2 = sides[2]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } return false; }
private boolean match3(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[3]; JoinSide side1 = sides[1], side2 = sides[2]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } return false; }
private boolean match4(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[4]; JoinSide side1 = sides[1], side2 = sides[2], side3 = sides[3]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); Numbers src3 = side3.bridge.reach(combo, 3, sides[3].futureIds); for (int i3 = -1; i3 < src3.size(); i3++) { combo[3] = i3 < 0 ? -1 : src3.at(i3); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } } return false; }
private boolean match4(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[4]; JoinSide side1 = sides[1], side2 = sides[2], side3 = sides[3]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); Numbers src3 = side3.bridge.reach(combo, 3, sides[3].futureIds); for (int i3 = -1; i3 < src3.size(); i3++) { combo[3] = i3 < 0 ? -1 : src3.at(i3); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } } return false; }
private boolean match4(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[4]; JoinSide side1 = sides[1], side2 = sides[2], side3 = sides[3]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); Numbers src3 = side3.bridge.reach(combo, 3, sides[3].futureIds); for (int i3 = -1; i3 < src3.size(); i3++) { combo[3] = i3 < 0 ? -1 : src3.at(i3); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } } return false; }
private boolean match5(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[5]; JoinSide side1 = sides[1], side2 = sides[2], side3 = sides[3], side4 = sides[4]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); Numbers src3 = side3.bridge.reach(combo, 3, sides[3].futureIds); for (int i3 = -1; i3 < src3.size(); i3++) { combo[3] = i3 < 0 ? -1 : src3.at(i3); Numbers src4 = side4.bridge.reach(combo, 4, sides[4].futureIds); for (int i4 = -1; i4 < src4.size(); i4++) { combo[4] = i4 < 0 ? -1 : src4.at(i4); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } } } return false; }
private boolean match5(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[5]; JoinSide side1 = sides[1], side2 = sides[2], side3 = sides[3], side4 = sides[4]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); Numbers src3 = side3.bridge.reach(combo, 3, sides[3].futureIds); for (int i3 = -1; i3 < src3.size(); i3++) { combo[3] = i3 < 0 ? -1 : src3.at(i3); Numbers src4 = side4.bridge.reach(combo, 4, sides[4].futureIds); for (int i4 = -1; i4 < src4.size(); i4++) { combo[4] = i4 < 0 ? -1 : src4.at(i4); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } } } return false; }
private boolean match5(AJoin[] joins, LinksBuilder[] builders, JoinSide[] sides, boolean exists) { long[] combo = new long[5]; JoinSide side1 = sides[1], side2 = sides[2], side3 = sides[3], side4 = sides[4]; Numbers src0 = sides[0].futureIds.fetch(); for (int i0 = -1; i0 < src0.size(); i0++) { combo[0] = i0 < 0 ? -1 : src0.at(i0); Numbers src1 = side1.bridge.reach(combo, 1, sides[1].futureIds); for (int i1 = -1; i1 < src1.size(); i1++) { combo[1] = i1 < 0 ? -1 : src1.at(i1); Numbers src2 = side2.bridge.reach(combo, 2, sides[2].futureIds); for (int i2 = -1; i2 < src2.size(); i2++) { combo[2] = i2 < 0 ? -1 : src2.at(i2); Numbers src3 = side3.bridge.reach(combo, 3, sides[3].futureIds); for (int i3 = -1; i3 < src3.size(); i3++) { combo[3] = i3 < 0 ? -1 : src3.at(i3); Numbers src4 = side4.bridge.reach(combo, 4, sides[4].futureIds); for (int i4 = -1; i4 < src4.size(); i4++) { combo[4] = i4 < 0 ? -1 : src4.at(i4); if (check(joins, combo, builders, sides, exists) && exists) { return true; } } } } } } return false; }
private boolean delink_(long from, long to) { // nice("DELINK " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); Numbers leftLinks = leftNums(from); if (!leftLinks.contains(to)) { return false; } // nice("DELINK2 " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); leftLinks = leftLinks.without(to); if (leftLinks.size() > 0) { left.put(from, leftLinks); } else { left.remove(from); } Numbers rightLinks = rightNums(to); if (!symmetric) { assert rightLinks.contains(from); } rightLinks = rightLinks.without(from); if (rightLinks.size() > 0) { rightish().put(to, rightLinks); } else { rightish().remove(to); } return true; }
private boolean delink_(long from, long to) { // nice("DELINK " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); Numbers leftLinks = leftNums(from); if (!leftLinks.contains(to)) { return false; } // nice("DELINK2 " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); leftLinks = leftLinks.without(to); if (leftLinks.size() > 0) { left.put(from, leftLinks); } else { left.remove(from); } Numbers rightLinks = rightNums(to); if (!symmetric) { assert rightLinks.contains(from); } rightLinks = rightLinks.without(from); if (rightLinks.size() > 0) { rightish().put(to, rightLinks); } else { rightish().remove(to); } return true; }
private boolean delink_(long from, long to) { // nice("DELINK " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); Numbers leftLinks = leftNums(from); if (!leftLinks.contains(to)) { return false; } // nice("DELINK2 " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); leftLinks = leftLinks.without(to); if (leftLinks.size() > 0) { left.put(from, leftLinks); } else { left.remove(from); } Numbers rightLinks = rightNums(to); if (!symmetric) { assert rightLinks.contains(from); } rightLinks = rightLinks.without(from); if (rightLinks.size() > 0) { rightish().put(to, rightLinks); } else { rightish().remove(to); } return true; }
private boolean link_(long from, long to) { // nice("LINK " + from + ":" + to + " ::: " + name + " : " // + trees.str(left)); Numbers leftLinks = leftNums(from); if (leftLinks.contains(to)) { return false; } // nice("LINK2 " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); Check.state(manyTos || leftLinks.size() == 0, "The ?-to-one relation %s already has link from %s", name, from); leftLinks = leftLinks.with(to); left.put(from, leftLinks); Numbers rightLinks = rightNums(to); if (!symmetric) { assert !rightLinks.contains(from); } Check.state(manyFroms || rightLinks.size() == 0, "The one-to-? relation %s already has link to %s", name, to); rightLinks = rightLinks.with(from); rightish().put(to, rightLinks); return true; }
private boolean link_(long from, long to) { // nice("LINK " + from + ":" + to + " ::: " + name + " : " // + trees.str(left)); Numbers leftLinks = leftNums(from); if (leftLinks.contains(to)) { return false; } // nice("LINK2 " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); Check.state(manyTos || leftLinks.size() == 0, "The ?-to-one relation %s already has link from %s", name, from); leftLinks = leftLinks.with(to); left.put(from, leftLinks); Numbers rightLinks = rightNums(to); if (!symmetric) { assert !rightLinks.contains(from); } Check.state(manyFroms || rightLinks.size() == 0, "The one-to-? relation %s already has link to %s", name, to); rightLinks = rightLinks.with(from); rightish().put(to, rightLinks); return true; }
private boolean link_(long from, long to) { // nice("LINK " + from + ":" + to + " ::: " + name + " : " // + trees.str(left)); Numbers leftLinks = leftNums(from); if (leftLinks.contains(to)) { return false; } // nice("LINK2 " + from + ":" + to + " ::: " + name + // " : " + trees.str(left)); Check.state(manyTos || leftLinks.size() == 0, "The ?-to-one relation %s already has link from %s", name, from); leftLinks = leftLinks.with(to); left.put(from, leftLinks); Numbers rightLinks = rightNums(to); if (!symmetric) { assert !rightLinks.contains(from); } Check.state(manyFroms || rightLinks.size() == 0, "The one-to-? relation %s already has link to %s", name, to); rightLinks = rightLinks.with(from); rightish().put(to, rightLinks); return true; }