コード例 #1
0
 public NodeSet deepIntersection(NodeSet other) {
   // ExtArrayNodeSet r = new ExtArrayNodeSet();
   AVLTreeNodeSet r = new AVLTreeNodeSet();
   NodeProxy l, p, q;
   for (Iterator i = iterator(); i.hasNext(); ) {
     l = (NodeProxy) i.next();
     if ((p = other.parentWithChild(l, false, true, NodeProxy.UNKNOWN_NODE_LEVEL)) != null) {
       if (p.getNodeId().equals(l.getNodeId())) p.addMatches(l);
       r.add(p);
     }
   }
   for (Iterator i = other.iterator(); i.hasNext(); ) {
     l = (NodeProxy) i.next();
     if ((q = parentWithChild(l, false, true, NodeProxy.UNKNOWN_NODE_LEVEL)) != null) {
       if ((p = r.get(q)) != null) {
         p.addMatches(l);
       } else r.add(l);
     }
   }
   return r;
 }