View Javadoc
1 package net.sourceforge.pmd.util.viewer.model; 2 3 import net.sourceforge.pmd.ast.SimpleNode; 4 5 import javax.swing.tree.TreeNode; 6 import java.util.ArrayList; 7 import java.util.Collections; 8 import java.util.Enumeration; 9 import java.util.List; 10 11 12 /*** 13 * provides the adapter for the tree model 14 * 15 * @author Boris Gruschko ( boris at gruschko.org ) 16 * @version $Id: SimpleNodeTreeNodeAdapter.java,v 1.2 2003/09/23 20:51:06 tomcopeland Exp $ 17 */ 18 public class SimpleNodeTreeNodeAdapter 19 implements TreeNode 20 { 21 private SimpleNode node; 22 private List children; 23 private SimpleNodeTreeNodeAdapter parent; 24 25 /*** 26 * constructs the node 27 * 28 * @param node underlying AST's node 29 */ 30 public SimpleNodeTreeNodeAdapter( 31 SimpleNodeTreeNodeAdapter parent, SimpleNode node ) 32 { 33 this.parent = parent; 34 this.node = node; 35 } 36 37 /*** 38 * retrieves the underlying node 39 * 40 * @return AST node 41 */ 42 public SimpleNode getSimpleNode( ) 43 { 44 return node; 45 } 46 47 /*** 48 * @see javax.swing.tree.TreeNode#getChildAt(int) 49 */ 50 public TreeNode getChildAt( int childIndex ) 51 { 52 checkChildren( ); 53 54 return (TreeNode)children.get( childIndex ); 55 } 56 57 /*** 58 * @see javax.swing.tree.TreeNode#getChildCount() 59 */ 60 public int getChildCount( ) 61 { 62 checkChildren( ); 63 64 return children.size( ); 65 } 66 67 /*** 68 * @see javax.swing.tree.TreeNode#getParent() 69 */ 70 public TreeNode getParent( ) 71 { 72 return parent; 73 } 74 75 /*** 76 * @see javax.swing.tree.TreeNode#getIndex(javax.swing.tree.TreeNode) 77 */ 78 public int getIndex( TreeNode node ) 79 { 80 checkChildren( ); 81 82 return children.indexOf( node ); 83 } 84 85 /*** 86 * @see javax.swing.tree.TreeNode#getAllowsChildren() 87 */ 88 public boolean getAllowsChildren( ) 89 { 90 return true; 91 } 92 93 /*** 94 * @see javax.swing.tree.TreeNode#isLeaf() 95 */ 96 public boolean isLeaf( ) 97 { 98 checkChildren( ); 99 100 return children.size( ) == 0; 101 } 102 103 /*** 104 * @see javax.swing.tree.TreeNode#children() 105 */ 106 public Enumeration children( ) 107 { 108 return Collections.enumeration( children ); 109 } 110 111 /*** 112 * checks the children and creates them if neccessary 113 */ 114 private void checkChildren( ) 115 { 116 if ( children == null ) 117 { 118 children = new ArrayList( node.jjtGetNumChildren( ) ); 119 120 for ( int i = 0; i < node.jjtGetNumChildren( ); i++ ) 121 { 122 children.add( 123 new SimpleNodeTreeNodeAdapter( 124 this, (SimpleNode)node.jjtGetChild( i ) ) ); 125 } 126 } 127 } 128 129 /*** 130 * @see java.lang.Object#toString() 131 */ 132 public String toString( ) 133 { 134 return node.toString( ); 135 } 136 } 137 138 139 /* 140 * $Log: SimpleNodeTreeNodeAdapter.java,v $ 141 * Revision 1.2 2003/09/23 20:51:06 tomcopeland 142 * Cleaned up imports 143 * 144 * Revision 1.1 2003/09/23 20:32:42 tomcopeland 145 * Added Boris Gruschko's new AST/XPath viewer 146 * 147 * Revision 1.1 2003/09/24 01:33:03 bgr 148 * moved to a new package 149 * 150 * Revision 1.1 2003/09/22 05:21:54 bgr 151 * initial commit 152 * 153 */

This page was automatically generated by Maven