/* * Written and copyright 2001-2004 Tobias Minich. Distributed under the GNU * General Public License; see the README file. This code comes with NO * WARRANTY. * * Move.java * * Created on 23.03.2004 * */ package org.gudy.azureus2.ui.console.commands; import java.util.*; import org.gudy.azureus2.core3.util.AERunStateHandler; import org.gudy.azureus2.ui.console.ConsoleInput; /** * @author Tobias Minich */ public class RunState extends IConsoleCommand { public RunState() { super("runstate", "rs"); } public String getCommandDescriptions() { return("runstate\t\trs\tShows and modified the current Vuze run-state."); } public void execute(String commandName, ConsoleInput ci, List<String> args) { ci.out.println( "Current run state:" ); long mode = AERunStateHandler.getResourceMode(); Map<String,Long> mode_map = new HashMap<String,Long>(); mode_map.put( "all", AERunStateHandler.RS_ALL_LOW ); for ( int i=0;i<AERunStateHandler.RS_MODES.length;i++){ String mode_name = AERunStateHandler.RS_MODE_NAMES[i]; long mode_value = AERunStateHandler.RS_MODES[i]; String[] bits = mode_name.split(":"); for ( String bit: bits ){ mode_map.put( bit.trim().toLowerCase(), mode_value ); } } boolean bad = false; for ( String arg: args ){ String[] bits = arg.split( "=" ); if ( bits.length != 2 ){ bad = true; break; } Long this_mode = mode_map.get( bits[0].toLowerCase()); if ( this_mode == null ){ bad = true; }else{ boolean on = false; String rhs = bits[1].toLowerCase(); if ( rhs.equals( "on" )){ on = true; }else if ( rhs.equals( "off" )){ }else{ bad = true; } if ( !bad ){ if ( on ){ mode |= this_mode; }else{ mode &= ~this_mode; } AERunStateHandler.setResourceMode( mode ); } } } if ( bad ){ ci.out.println("> Command 'runstate': invalid parameters (example: dui=On, all=off)" ); }else{ for ( int i=0;i<AERunStateHandler.RS_MODES.length;i++){ String mode_name = AERunStateHandler.RS_MODE_NAMES[i]; long mode_value = AERunStateHandler.RS_MODES[i]; ci.out.println( "\t" + mode_name + "=" + ((mode&mode_value)==0?"Off":"On" )); } } } }