Rev 94 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
// Internal node for the PRQuadTreepublic class PRQuadTreeNodeInternal implements PRQuadTreeNode {// Node in each quadrantprivate PRQuadTreeNode NW;private PRQuadTreeNode NE;private PRQuadTreeNode SW;private PRQuadTreeNode SE;private PRQuadTreeNodeFlyweight flyweight; // Flyweight// Constructor to initialize the node with flyweightspublic PRQuadTreeNodeInternal(PRQuadTreeNodeFlyweight flyweight) {// Initialize all subnodes with the flyweightNW = NE = SW = SE = flyweight;this.flyweight = flyweight;}// Queries if all subnodes are flyweightspublic boolean isEmpty() {return (NW == flyweight)&&(NE == flyweight)&&(SW == flyweight)&&(SE == flyweight);}// Test if node contains other internal nodespublic boolean containsAllLeavesOrFlyweight() {// Queries if all subnodes are either leaves or flyweightsreturn (NW instanceof PRQuadTreeNodeLeaf || NW instanceof PRQuadTreeNodeFlyweight)&&(NE instanceof PRQuadTreeNodeLeaf || NE instanceof PRQuadTreeNodeFlyweight)&&(SW instanceof PRQuadTreeNodeLeaf || SW instanceof PRQuadTreeNodeFlyweight)&&(SE instanceof PRQuadTreeNodeLeaf || SE instanceof PRQuadTreeNodeFlyweight);}// Returns the number of all records in all subleavespublic int countOfAllLeafNodes() {int ret = 0;if (NW instanceof PRQuadTreeNodeLeaf)ret += ((PRQuadTreeNodeLeaf) NW).getCount();if (NE instanceof PRQuadTreeNodeLeaf)ret += ((PRQuadTreeNodeLeaf) NE).getCount();if (SW instanceof PRQuadTreeNodeLeaf)ret += ((PRQuadTreeNodeLeaf) SW).getCount();if (SE instanceof PRQuadTreeNodeLeaf)ret += ((PRQuadTreeNodeLeaf) SE).getCount();return ret;}// Returns the number of records in a node if it is a leaf nodepublic int countOfLeafNode(PRQuadTreeNode node) {if (node instanceof PRQuadTreeNodeLeaf)return ((PRQuadTreeNodeLeaf) node).getCount();elsereturn 0;}// Encapsulation functionspublic PRQuadTreeNode getNW() {return NW;}public void setNW(PRQuadTreeNode nW) {NW = nW;}public PRQuadTreeNode getNE() {return NE;}public void setNE(PRQuadTreeNode nE) {NE = nE;}public PRQuadTreeNode getSW() {return SW;}public void setSW(PRQuadTreeNode sW) {SW = sW;}public PRQuadTreeNode getSE() {return SE;}public void setSE(PRQuadTreeNode sE) {SE = sE;}}