public static Links linksFromTos(long[][] fromTos) { int size = fromTos.length; long[] keys = new long[size]; long[][] numbers = new long[size][]; for (int i = 0; i < size; i++) { long[] fromTo = fromTos[i]; keys[i] = fromTo[0]; int len = fromTo.length - 1; numbers[i] = new long[len]; System.arraycopy(fromTo, 1, numbers[i], 0, len); } return from(keys, numbers); }
public Links links(long[]... fromTos) { return UTILS.linksFromTos(fromTos); }
public static boolean equal(Links[] l1, Links[] l2) { if (l1.length != l2.length) { return false; } for (int i = 0; i < l1.length; i++) { if (!equal(l1[i], l2[i])) { return false; } } return true; }
@Override public Links inverse() { LinksBuilder builder = UTILS.linkBuilder(); for (int i = 0; i < size(); i++) { long from = from(i); long[] toNums = to(i); if (from == -1) { for (long to : toNums) { builder.link(to, -1); } } else { if (toNums.length == 0) { builder.link(-1, from); } else { for (long to : toNums) { builder.link(to, from); } } } } return builder.build(); }
@Override public final String toString() { return UTILS.toString(this); }
public Links build() { SortedSet<Long> rights = links.get(-1L); if (rights != null) { rights.removeAll(linkedTos); } return UTILS.linksFrom(links); }
public static boolean equal(Links[] l1, Links[] l2) { if (l1.length != l2.length) { return false; } for (int i = 0; i < l1.length; i++) { if (!equal(l1[i], l2[i])) { return false; } } return true; }
@Override public Links inverse() { LinksBuilder builder = UTILS.linkBuilder(); for (int i = 0; i < size(); i++) { long from = from(i); long[] toNums = to(i); if (from == -1) { for (long to : toNums) { builder.link(to, -1); } } else { if (toNums.length == 0) { builder.link(-1, from); } else { for (long to : toNums) { builder.link(to, from); } } } } return builder.build(); }
@Override public final String toString() { return UTILS.toString(this); }
public Links build() { SortedSet<Long> rights = links.get(-1L); if (rights != null) { rights.removeAll(linkedTos); } return UTILS.linksFrom(links); }
public static boolean equal(Links[] l1, Links[] l2) { if (l1.length != l2.length) { return false; } for (int i = 0; i < l1.length; i++) { if (!equal(l1[i], l2[i])) { return false; } } return true; }
public static Links linksFromTos(long[][] fromTos) { int size = fromTos.length; long[] keys = new long[size]; long[][] numbers = new long[size][]; for (int i = 0; i < size; i++) { long[] fromTo = fromTos[i]; keys[i] = fromTo[0]; int len = fromTo.length - 1; numbers[i] = new long[len]; System.arraycopy(fromTo, 1, numbers[i], 0, len); } return from(keys, numbers); }
@Override public Links inverse() { LinksBuilder builder = UTILS.linkBuilder(); for (int i = 0; i < size(); i++) { long from = from(i); long[] toNums = to(i); if (from == -1) { for (long to : toNums) { builder.link(to, -1); } } else { if (toNums.length == 0) { builder.link(-1, from); } else { for (long to : toNums) { builder.link(to, from); } } } } return builder.build(); }
@Override public final String toString() { return UTILS.toString(this); }
public Links build() { SortedSet<Long> rights = links.get(-1L); if (rights != null) { rights.removeAll(linkedTos); } return UTILS.linksFrom(links); }