/** * Bulk link an object to its parent. * @param parent The parent object. * @param children The children objects (link datas). * @param context The context. * @param classloader The classloader. * @param rootobject The root object. */ public void bulkLinkObjects(Object parent, List children, AReadContext context) throws Exception { // System.out.println("bulk link for: "+parent+" "+children); for(int i=0; i<children.size(); i++) { LinkData linkdata = (LinkData)children.get(i); linkObject(linkdata.getChild(), parent, linkdata.getLinkinfo(), linkdata.getPathname(), context); } }
childs.add(linkdata.getChild()); QName[] pathname = linkdata.getPathname(); int startidx = 0; for(int i=1; i<children.size(); i++) QName[] pn = ld.getPathname(); if(!Arrays.equals(pathname, pn)) startidx = i; childs.add(ld.getChild());
/** * Initiate the bulk link calls. */ protected void handleBulkLinking(List childs, Object parent, AReadContext context, QName[] pathname, List linkdatas, int startidx) throws Exception { if(childs.size()>1) { try { bulkLinkObjects(childs, parent, ((LinkData)linkdatas.get(startidx)).getLinkinfo(), pathname, context); } catch(Exception e) { context.getReporter().report("Warning. Bulk link initiated but not successful: "+childs+" "+parent+" "+e, "warning", context, context.getLocation()); for(int i=0; i<childs.size(); i++) { linkObject(childs.get(i), parent, ((LinkData)linkdatas.get(startidx+i)).getLinkinfo(), pathname, context); } } } else { linkObject(childs.get(0), parent, ((LinkData)linkdatas.get(startidx)).getLinkinfo(), pathname, context); } }
readcontext.addChild(pse.getObject(), new LinkData(topse.getObject(), linkinfo==null? null: linkinfo, (jadex.xml.stax.QName[])pathname.toArray(new jadex.xml.stax.QName[pathname.size()])));
/** * Bulk link an object to its parent. * @param parent The parent object. * @param children The children objects (link datas). * @param context The context. * @param classloader The classloader. * @param rootobject The root object. */ public void bulkLinkObjects(Object parent, List children, AReadContext context) throws Exception { // System.out.println("bulk link for: "+parent+" "+children); for(int i=0; i<children.size(); i++) { LinkData linkdata = (LinkData)children.get(i); linkObject(linkdata.getChild(), parent, linkdata.getLinkinfo(), linkdata.getPathname(), context); } }