package net.ion.craken.node.crud; import net.ion.craken.node.ReadNode; import net.ion.craken.node.TransactionJob; import net.ion.craken.node.WriteSession; import net.ion.craken.node.convert.rows.FieldContext; import net.ion.craken.node.convert.rows.FieldDefinition; import net.ion.craken.node.convert.rows.FieldRender; public class TestMultiRefChildren extends TestBaseCrud { public void testMultiRefChildren() throws Exception { session.tran(new TransactionJob<Void>() { @Override public Void handle(WriteSession wsession) throws Exception { wsession.pathBy("/afields/mfield").refTos("category", "/category/bleujin", "/category/hero", "/category/jin").property("id", "mfield").refTos("lower", "/afields/m1", "/afields/m2") ; wsession.pathBy("/afields/yfield").refTos("category", "/category/bleujin", "/category/jin").property("id", "yfield") ; wsession.pathBy("/afields/m1").property("id", "m1").refTos("lower", "/afields/m3") ; wsession.pathBy("/afields/m2").property("id", "m2") ; wsession.pathBy("/afields/m3").property("id", "m3") ; return null; } }) ; WalkRefChildren children = session.ghostBy("/afields").childTermQuery("@category", "/category/bleujin", false).find().walkRefChildren("lower") ; children.toAdRows("id", new FieldDefinition("lvl", new FieldRender<Integer>() { @Override public Integer render(FieldContext fcontext, ReadNode current) { WalkReadNode self = (WalkReadNode) current ; return self.level(); } }), new FieldDefinition("parent", new FieldRender<String>() { @Override public String render(FieldContext fcontext, ReadNode current) { WalkReadNode self = (WalkReadNode) current ; return self.from().fqn().name(); } })).debugPrint(); ; } }