1 28 29 package com.caucho.xpath.pattern; 30 31 import org.w3c.dom.Node ; 32 33 36 public class SelectedAttribute extends SelectedNode { 37 42 public SelectedAttribute(Node node) 43 { 44 super(node); 45 46 _level = 0; 47 for (Node ptr = node; ptr != null; ptr = ptr.getPreviousSibling()) 48 _level--; 49 } 50 51 54 public int compareTo(SelectedNode b) 55 { 56 Node aPtr = getNode(); 57 Node bPtr = b.getNode(); 58 59 int aDepth = _depth; 60 int bDepth = b._depth; 61 62 if (aPtr == bPtr) 63 return 0; 64 65 if (b instanceof SelectedAttribute) { 66 if (aPtr.getParentNode() == bPtr.getParentNode()) { 67 for (; bPtr != null; bPtr = bPtr.getNextSibling()) { 70 if (aPtr == bPtr) 71 return 1; 72 } 73 74 return -1; 75 } 76 else 77 return compareTo(aPtr.getParentNode(), aDepth - 1, 78 bPtr.getParentNode(), bDepth - 1); 79 } 80 else if (bPtr.getParentNode() == aPtr.getParentNode()) 81 return -1; 82 83 return compareTo(aPtr, aDepth, bPtr, bDepth); 84 } 85 } 86 | Popular Tags |