@Override public void delink(long fromId, long toId) { rel.delink(fromId, toId); }
@Override public void link(long fromId, long toId) { rel.link(fromId, toId); }
@Override protected synchronized <FROM, TO> RWRelation relation(Table<FROM> from, String name, Table<TO> to, boolean symmetric, boolean manyFroms, boolean manyTos) { // relation might be already created in LoadedData.fillData RWRelation rel = relations.get(name); if (rel == null) { rel = new RelationImpl<FROM, TO>(from, name, to, store, ids, transactor, lockManager, stats, symmetric, manyFroms, manyTos); relations.put(name, rel); } else { rel.kind(symmetric, manyFroms, manyTos); } return rel; }
protected long[] froms_(long id) { return rel.linksFrom(id).toArray(); }
@Override public boolean hasLink(long fromId, long toId) { return rel.hasLink(fromId, toId); }
protected FROM[] tos_(TO to) { return fetch(tos_(U.getId(to)), rel.from()); }
public ReadOnlyRelation randomRel(Db db, String name, Table<?> tbl1, Table<?> tbl2, int max) { RWRelation rel = relation(db, tbl1, name, tbl2); rel.clear(); int count = Nums.rnd(1, max); for (int i = 0; i < count; i++) { UTILS.link(rel, Nums.rnd(10), Nums.random(1, max, 0, max * 2)); } return rel; }
protected long from_(long id) { return only(rel.linksFrom(id).toArray()); }
@Override public boolean hasLink(FROM from, TO to) { long fromId = U.getId(from); long toId = U.getId(to); return rel.hasLink(fromId, toId); }
protected FROM to_(TO to) { return fetch(to_(U.getId(to)), rel.from()); }
private void exportRelations(long id) { U.encode(relations.size(), SER_HELPER); for (Entry<String, RWRelation> rel : relations.entrySet()) { U.encode(rel.getKey(), SER_HELPER); long[] links = rel.getValue().linksFrom(id).toArray(); U.encode(links.length, SER_HELPER); for (long link : links) { U.encode(link, SER_HELPER); } } }
public static void delink(RWRelation rel, long from, Numbers tos) { for (long to : tos.toArray()) { rel.delink(from, to); } }
public static void link(RWRelation rel, long from, Numbers tos) { for (long to : tos.toArray()) { rel.link(from, to); } }
@Override protected synchronized <FROM, TO> RWRelation relation(Table<FROM> from, String name, Table<TO> to, boolean symmetric, boolean manyFroms, boolean manyTos) { // relation might be already created in LoadedData.fillData RWRelation rel = relations.get(name); if (rel == null) { rel = new RelationImpl<FROM, TO>(from, name, to, store, ids, transactor, lockManager, stats, symmetric, manyFroms, manyTos); relations.put(name, rel); } else { rel.kind(symmetric, manyFroms, manyTos); } return rel; }
private void exportRelations(long id) { U.encode(relations.size(), SER_HELPER); for (Entry<String, RWRelation> rel : relations.entrySet()) { U.encode(rel.getKey(), SER_HELPER); long[] links = rel.getValue().linksFrom(id).toArray(); U.encode(links.length, SER_HELPER); for (long link : links) { U.encode(link, SER_HELPER); } } }
public static void delink(RWRelation rel, long from, Numbers tos) { for (long to : tos.toArray()) { rel.delink(from, to); } }
public static void link(RWRelation rel, long from, Numbers tos) { for (long to : tos.toArray()) { rel.link(from, to); } }
@Override protected synchronized <FROM, TO> RWRelation relation(Table<FROM> from, String name, Table<TO> to, boolean symmetric, boolean manyFroms, boolean manyTos) { // relation might be already created in LoadedData.fillData RWRelation rel = relations.get(name); if (rel == null) { rel = new RelationImpl<FROM, TO>(from, name, to, store, ids, transactor, lockManager, stats, symmetric, manyFroms, manyTos); relations.put(name, rel); } else { rel.kind(symmetric, manyFroms, manyTos); } return rel; }
private void exportRelations(long id) { U.encode(relations.size(), SER_HELPER); for (Entry<String, RWRelation> rel : relations.entrySet()) { U.encode(rel.getKey(), SER_HELPER); long[] links = rel.getValue().linksFrom(id).toArray(); U.encode(links.length, SER_HELPER); for (long link : links) { U.encode(link, SER_HELPER); } } }
public static void delink(RWRelation rel, long from, Numbers tos) { for (long to : tos.toArray()) { rel.delink(from, to); } }