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

📄 direxploreritem.java

📁 一个agent 工具包,可以开发移动设备应用,考虑了安全措施
💻 JAVA
字号:
package SOMA.explorer;

import java.io.*;
import java.util.*;

/**
* Un direttorio rappresenta un menu.
*
* Siccome un direttorio puo' contenere altri direttori DirExplorerItem
* e' sottoclasse di ExplorerItem.
*
* Le operazioni di base fornite all'utente sono:
* <UL>
* <I><LI>&lt;Invio&gt; </I>Visualizza il contenuto del direttorio (= <I>ls</I>)</LI>
* <I><LI>/ </I>Riferimento al direttorio radice.</LI>
* <I><LI>cd </I>Cambia direttorio.</LI>
* <I><LI>help </I>Ottiene aiuto su una voce del menu.</LI></UL>
*
* @author Livio Profiri
*/

public class DirExplorerItem extends ExplorerItem
{
  /** @serial*/
  private final Hashtable Items = new Hashtable();
  /** @serial*/
  private final List Index = Collections.synchronizedList(new ArrayList());

  /** @serial*/
  String DirectoryName;

  static public final String UpperLevelDirectoryString = "..";
  static public final String RootDirectoryString = "/";
  static final int EndPosition = -1;
  // root directory.

  /** Costruttore che specifica il nome del direttorio. */
  public DirExplorerItem( String DirectoryName )
  {
    this.DirectoryName = DirectoryName;
    Syntax = "Directory";

    addItem( "/", new ExplorerItem( "root directory" )
      {
        public Object Execute( Collection Parameters, PrintStream out )
        {
          return FindRootDirectory().Execute( Parameters, out );
        }
      });

    addItem( "cd", new ChangeDirExplorerItem() );
    addItem( "help", new HelpExplorerItem() );

    /*
    addItem( "get", new ExplorerItem( "item path" )
      {
        public Object Execute( Collection Parameters, PrintStream out )
        {
          return getItem( Parameters );
        }
      });*/
  }

  public String toString()
  {
    return "Directory: " + BuildPath();
  }

  /** Esegue il comando rappresentato da una stringa specificando il PrintStream di output.*/
  public Object Execute( String ParametersLine, PrintStream out )
  {
    return Execute( StringToParameters( ParametersLine ), out );
  }

  /** Esegue il comando rappresentato da una stringa.*/
  public Object Execute( String ParametersLine )
  {
    return Execute( StringToParameters( ParametersLine ) );
  }

  /** Converte una stringa contenente una sequenza di parametri
  * in una Collection di singoli parametri.
  */
  public Collection StringToParameters( String ParametersLine )
  {
    final String StringDelimiters = "\"'`";     // Elenco separatori di stringhe: " ' `
    final String TokenDelimiters = " ";       // Elenco separatori di items: scartati nella lettura
    Collection Parameters = new Vector();

    StringTokenizer stok = new StringTokenizer( ParametersLine, TokenDelimiters + StringDelimiters, true );

    try
    {
      while( stok.hasMoreTokens() )
      {
        String Token = stok.nextToken();

        if( (StringDelimiters.indexOf( Token ) != -1) ) //Se ho uno dei separatori di stringa
        {
          // Salto all'altro separatore
          Parameters.add( stok.nextToken( Token ) );
          //Scarto il token contenente il separatore e resetto l'insiseme dei separatori
          stok.nextToken( TokenDelimiters + StringDelimiters );
        }
        else if( TokenDelimiters.indexOf( Token ) == -1 )  // Scarto gli spazi
          Parameters.add( Token );
      }
    }
    catch( NoSuchElementException  e )
    {}   // Nessun problema: semplicemente 

⌨️ 快捷键说明

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