⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simplenodetreenodeadapter.java

📁 检查Java程序漏洞
💻 JAVA
字号:
package net.sourceforge.pmd.util.viewer.model;

import net.sourceforge.pmd.ast.SimpleNode;

import javax.swing.tree.TreeNode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;


/**
 * provides the adapter for the tree model
 *
 * @author Boris Gruschko ( boris at gruschko.org )
 * @version $Id: SimpleNodeTreeNodeAdapter.java,v 1.2 2003/09/23 20:51:06 tomcopeland Exp $
 */
public class SimpleNodeTreeNodeAdapter
  implements TreeNode
{
  private SimpleNode                node;
  private List                      children;
  private SimpleNodeTreeNodeAdapter parent;

  /**
   * constructs the node
   *
   * @param node underlying AST's node
   */
  public SimpleNodeTreeNodeAdapter(
    SimpleNodeTreeNodeAdapter parent, SimpleNode node )
  {
    this.parent   = parent;
    this.node     = node;
  }

  /**
   * retrieves the underlying node
   *
   * @return AST node
   */
  public SimpleNode getSimpleNode(  )
  {
    return node;
  }

  /**
   * @see javax.swing.tree.TreeNode#getChildAt(int)
   */
  public TreeNode getChildAt( int childIndex )
  {
    checkChildren(  );

    return (TreeNode)children.get( childIndex );
  }

  /**
   * @see javax.swing.tree.TreeNode#getChildCount()
   */
  public int getChildCount(  )
  {
    checkChildren(  );

    return children.size(  );
  }

  /**
   * @see javax.swing.tree.TreeNode#getParent()
   */
  public TreeNode getParent(  )
  {
    return parent;
  }

  /**
   * @see javax.swing.tree.TreeNode#getIndex(javax.swing.tree.TreeNode)
   */
  public int getIndex( TreeNode node )
  {
    checkChildren(  );

    return children.indexOf( node );
  }

  /**
   * @see javax.swing.tree.TreeNode#getAllowsChildren()
   */
  public boolean getAllowsChildren(  )
  {
    return true;
  }

  /**
   * @see javax.swing.tree.TreeNode#isLeaf()
   */
  public boolean isLeaf(  )
  {
    checkChildren(  );

    return children.size(  ) == 0;
  }

  /**
   * @see javax.swing.tree.TreeNode#children()
   */
  public Enumeration children(  )
  {
    return Collections.enumeration( children );
  }

  /**
   * checks the children and creates them if neccessary
   */
  private void checkChildren(  )
  {
    if ( children == null )
    {
      children = new ArrayList( node.jjtGetNumChildren(  ) );

      for ( int i = 0; i < node.jjtGetNumChildren(  ); i++ )
      {
        children.add(
          new SimpleNodeTreeNodeAdapter(
            this, (SimpleNode)node.jjtGetChild( i ) ) );
      }
    }
  }

  /**
   * @see java.lang.Object#toString()
   */
  public String toString(  )
  {
    return node.toString(  );
  }
}


/*
 * $Log: SimpleNodeTreeNodeAdapter.java,v $ * Revision 1.2  2003/09/23 20:51:06  tomcopeland * Cleaned up imports *
 * Revision 1.1  2003/09/23 20:32:42  tomcopeland
 * Added Boris Gruschko's new AST/XPath viewer
 *
 * Revision 1.1  2003/09/24 01:33:03  bgr
 * moved to a new package
 *
 * Revision 1.1  2003/09/22 05:21:54  bgr
 * initial commit
 *
 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -