if ( Main.getCurrentEnigma() == null ) {
System.out.println( "No Enigma is loaded! Please load one using 'load <type>'" );
return;
}
Enigma enigma = Main.getCurrentEnigma();
if ( args.length == 1 && args[0].equalsIgnoreCase( "info" ) ) {
int counter = 1;
for ( Roller roller : enigma.getRollers() ) {
System.out.println( "Position of Roller #" + counter + ": " + Letter.fromId( roller.getPosition() ).toString() );
++counter;
}
} else if ( args.length == 1 && args[0].equalsIgnoreCase( "reset" ) ) {
for ( Roller roller : enigma.getRollers() ) {
roller.setPosition( 0 );
}
System.out.println( "All rollers reset" );
} else if ( args.length == 3 && args[0].equalsIgnoreCase( "set" ) ) {
// Estimate roller id
int rollerId;
try {
rollerId = Integer.parseInt( args[1] );
} catch ( NumberFormatException e ) {
System.out.println( "Please enter a valid integer" );
return;
}
// Check for valid roller id
if ( enigma.getRollers().length < rollerId || rollerId <= 0 ) {
System.out.println( "Roller id not found" );
return;
}
// Estimate position
Letter position;
try {
position = Letter.fromId( Integer.parseInt( args[2] ) );
} catch ( NumberFormatException e ) {
try {
position = Letter.fromChar( args[2].toCharArray()[0] );
} catch ( IllegalArgumentException e1 ) {
System.out.println( "Please enter either an id or the letter itself" );
return;
}
}
// Update object
enigma.getRollers()[rollerId - 1].setPosition( position );
System.out.println( "Position of roller #" + rollerId + " updated to " + position.toString() );
} else if ( args.length == 2 && args[0].equalsIgnoreCase( "rotate" ) ) {
// Estimate roller id
int rollerId;
try {
rollerId = Integer.parseInt( args[1] );
} catch ( NumberFormatException e ) {
System.out.println( "Please enter a valid integer" );
return;
}
// Check for valid roller id
if ( enigma.getRollers().length < rollerId || rollerId <= 0 ) {
System.out.println( "Roller id not found" );
return;
}
Roller roller = enigma.getRollers()[rollerId - 1];
roller.rotateForward();
System.out.println( "Rotated Roller #" + rollerId + " - New Position: " + Letter.fromId( roller.getPosition() ) );
} else {