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

📄 commandinterpreter.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// CommandInterpreter.java// $Id: CommandInterpreter.java,v 1.7 2002/02/04 17:28:12 cbournez Exp $// (c) COPYRIGHT MIT and INRIA, 2002.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.tools.offline.command;import org.w3c.tools.offline.browse.StoreFinder ;import java.io.BufferedReader;import java.io.FileReader;import java.io.InputStreamReader;import java.io.IOException;import java.util.Vector;/** * <p>The jigshell interpreter class. */public class CommandInterpreter {	/**	 * The StoreFinder instance to handle the store files.	 */	protected static StoreFinder sf = null ;	/**	 * A boolean to switch to batch mode when a script file is given	 */	protected static boolean interactive = true ;	/**	 * A reader for commands input. 	 */	protected static BufferedReader reader = null ;		/**	 * A CommandInterpreter initializer.	 * @param args arguments provided when launching jigshell	 */    public CommandInterpreter(String [] args) {		boolean interactive = true ;	    if(args.length < 2 ) {    	    String[] arg = {"config/stores","http-server"};			System.out.println("assuming arguments are `config/stores http-server`");        	sf = new org.w3c.tools.offline.browse.StoreFinder(arg[0],arg[1]);    	} else {			if (args.length > 3)  {				System.out.println("usage :");				System.out.print("java org.w3c.tools.offline.command.Main ");				System.out.print("stores_directory server [batch_file]\n");				System.exit(1) ;			}			if (args.length == 3){				System.out.println("entering batch mode...");				interactive=false;			}         	sf = new org.w3c.tools.offline.browse.StoreFinder(args[0],args[1]);    	}		try {			sf.readStoreIndex() ;		}		catch (IOException e){			System.out.println("Can't read store. Exiting.");			System.exit(2);		}		try {			sf.readStoreRoot() ;		}		catch (Exception e){			System.out.println("can't find root file");			System.exit(3);		}		if (interactive) runInteractive();		else runScriptFile(args[2]);	}	/**	* Run a script file (batch mode)	* @param batchFile the script file name.	*/	private void runScriptFile(String batchFile){		interactive = false ;		try {			reader = new BufferedReader(new FileReader(batchFile)); 		} 		catch (java.io.FileNotFoundException e) { 			System.out.println("batch not found: " + batchFile); 			System.exit(4);		}		run() ;	}	/**	* Run the interactive mode.	*/	private void runInteractive(){		interactive = true ;	    reader = new BufferedReader(new InputStreamReader(System.in), 1);		run() ;	}	/**	* Run the interpreter	*/	private void run(){			while (true) try {			if ( interactive ) { 				System.out.print(prompt()); 				System.out.flush(); 			}			String theLine = reader.readLine(); 			if (theLine == null) break;  			if (theLine.equals("exit")) break; 			CommandLine cl = new CommandLine (theLine) ;			this.ProcessCommand(cl);		} 		catch (IOException e) { 			System.err.println(e); 		}    }		private String prompt (){		return ("jigshell-alpha> ");	}	/**	* Process a command line instance and initiate the action	* through the StoreFinder.	* @param cl the CommandLine.	*/	protected void ProcessCommand(CommandLine cl){		try {			cl.parse() ;			String action = cl.getAction();			boolean recursive = false ;			String opt = cl.getOption();			if (opt.indexOf(cl.REC) != -1){				recursive = true ;			//	System.out.println ("recursive action"+recursive);			}			if (opt.indexOf(cl.ATTR) != -1 && action.compareTo(cl.LIST)==0){				action = "listatt" ;			//	System.out.println ("list with attributes");			}			if (action != null){				if (action.compareTo(cl.WHERE)==0) {					sf.printWorkingRep();				} else if (action.compareTo(cl.GO)==0) {					sf.setWorkingRep(cl.getTarget());					} else {					sf.finderAction(action,cl.getTarget(), recursive);					}			}		}		catch (CommandParseException e) {			System.out.println("syntax error"); 		}	}	}

⌨️ 快捷键说明

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