public void run() {
        super.run();
        if (operation == Operation.getType) {
            result = ((ComponentSession) getSession()).getExternalComponent().getType();
        }
        else if (operation == Operation.getCategory) {
            result = ((ComponentSession) getSession()).getExternalComponent().getCategory();
        }
        else if (operation == Operation.getInitialSubdomain) {
            result = ((ComponentSession) getSession()).getExternalComponent().getInitialSubdomain();
        }
        else if (operation == Operation.getSubdomains) {
            result = ((ComponentSession) getSession()).getExternalComponent().getSubdomains();
        }
        else if (operation == Operation.getName) {
            result = ((ComponentSession) getSession()).getExternalComponent().getName();
        }
        else if (operation == Operation.getDescription) {
            result = ((ComponentSession) getSession()).getExternalComponent().getDescription();
        }
        else if (operation == Operation.start) {
            ((ComponentSession) getSession()).getExternalComponent().start();
        }
        else if (operation == Operation.shutdown) {
            ((ComponentSession) getSession()).getExternalComponent().shutdown();
        }
    }
Class that defines possible remote operations that could be performed
on remote component sessions (for external components only).

@author Gaston Dombiak
xmppserver/src/main/java/org/jivesoftware/openfire/session/ComponentSessionTask.java