/
area/
classes/net/sourceforge/pain/logic/
classes/net/sourceforge/pain/logic/event/
classes/net/sourceforge/pain/logic/fn/util/
classes/net/sourceforge/pain/network/console/
classes/net/sourceforge/pain/plugin/
classes/net/sourceforge/pain/plugin/reset/
classes/net/sourceforge/pain/plugin/shutdown/
classes/net/sourceforge/pain/plugin/social/
classest/net/sourceforge/pain/db/data/
doc/
doc/paindb/resources/
src/net/sourceforge/pain/logic/
src/net/sourceforge/pain/logic/event/
src/net/sourceforge/pain/logic/fn/util/
src/net/sourceforge/pain/network/console/
src/net/sourceforge/pain/network/console/telnet/
src/net/sourceforge/pain/plugin/
src/net/sourceforge/pain/plugin/command/
src/net/sourceforge/pain/plugin/reset/
src/net/sourceforge/pain/plugin/shutdown/
src/net/sourceforge/pain/plugin/social/
src/net/sourceforge/pain/util/
tests/
tests/net/sourceforge/pain/db/data/
package net.sourceforge.pain.logic.event.console.command.builder;

import net.sourceforge.pain.network.console.*;
import net.sourceforge.pain.data.prototype.*;
import net.sourceforge.pain.logic.fn.*;

/**
 * PAiN  Date: 05.06.2003  Time: 1:40:02
 */
public final class BC_Remove extends BuilderCommand {

	public void processBuilderCommand(BuilderShell p, String args) throws Exception {
		Prototype role = p.builder.getEditedRole();
		if (role == null) {
			MessageOutFn.outln(p.console, "No active role found!");
		} else if (args == null) {
			showHelp(p.console);
		} else {
			args = args.trim();
			try {
				Class protoClass = Class.forName("net.sourceforge.pain.data.prototype." + args);
				if (!role.is(protoClass)) {
					MessageOutFn.outln(p.console, "Role not found in active prototype:" + args);
				} else if (protoClass == PrototypeInfo.class) {
					MessageOutFn.outln(p.console, "PrototypeInfo can't not be removed!");
				} else {
					if (role.getClass() == protoClass) {
						p.builder.setEditedRole((Prototype)role.getRole(PrototypeInfo.class));
					}
					role.removeRole(protoClass);
					MessageOutFn.outln(p.console, "Role Removed:" + protoClass.getName());
				}
			} catch (ClassNotFoundException e) {
				MessageOutFn.outln(p.console, "No prototype found with name:" + args);
			}
		}
	}

	public void showHelp(Console console) {
		MessageOutFn.outln(console, "Builder command REMOVE removes specified role from the active prototype");
		MessageOutFn.outln(console, "Usage: remove <Prototype_Role_Name>");
	}

}