Coverage report

  %line %branch
nl.toolforge.karma.core.cmd.DefaultCommand
0% 
0% 

 1  
 /*
 2  
 Karma core - Core of the Karma application
 3  
 Copyright (C) 2004  Toolforge <www.toolforge.nl>
 4  
 
 5  
 This library is free software; you can redistribute it and/or
 6  
 modify it under the terms of the GNU Lesser General Public
 7  
 License as published by the Free Software Foundation; either
 8  
 version 2.1 of the License, or (at your option) any later version.
 9  
 
 10  
 This library is distributed in the hope that it will be useful,
 11  
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 12  
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 13  
 Lesser General Public License for more details.
 14  
 
 15  
 You should have received a copy of the GNU Lesser General Public
 16  
 License along with this library; if not, write to the Free Software
 17  
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 18  
 */
 19  
 package nl.toolforge.karma.core.cmd;
 20  
 
 21  
 import nl.toolforge.karma.core.boot.WorkingContext;
 22  
 import nl.toolforge.karma.core.bundle.BundleCache;
 23  
 import nl.toolforge.karma.core.cmd.event.CommandResponseListener;
 24  
 import org.apache.commons.cli.CommandLine;
 25  
 import org.apache.commons.logging.Log;
 26  
 import org.apache.commons.logging.LogFactory;
 27  
 
 28  
 import java.util.ResourceBundle;
 29  
 
 30  
 /**
 31  
  * Default stuff for a command. Provides the datastructure and some helper methods to implementing commands.
 32  
  *
 33  
  * @author D.A. Smedes
 34  
  * @version $Id: DefaultCommand.java,v 1.25 2004/11/10 23:53:08 asmedes Exp $
 35  
  */
 36  
 public abstract class DefaultCommand implements Command {
 37  
 
 38  0
   private static final Log logger = LogFactory.getLog(DefaultCommand.class);
 39  
 
 40  0
 	private CommandContext contextRef = null;
 41  
 
 42  0
 	private CommandLine commandLine = null;
 43  0
 	private String name = null;
 44  0
 	private String alias = null;
 45  0
 	private String description = null;
 46  0
 	private String helpText = null;
 47  
 
 48  0
   private CommandResponseListener responseListener = null;
 49  
 
 50  
   /**
 51  
 	 * Creates a command by initializing the command through its <code>CommandDescriptor</code>.
 52  
 	 *
 53  
 	 * @param descriptor The command descriptor instance containing the basic information for this command
 54  
 	 */
 55  0
 	public DefaultCommand(CommandDescriptor descriptor) {
 56  
 
 57  0
 		if (descriptor == null) {
 58  0
 			throw new IllegalArgumentException("Command descriptor cannot be null.");
 59  
 		}
 60  0
 		name = descriptor.getName();
 61  0
 		alias = descriptor.getAlias();
 62  0
 		description = descriptor.getDescription();
 63  0
 		helpText = descriptor.getHelp();
 64  0
 	}
 65  
 
 66  
 	/**
 67  
 	 * Sets the command context for this command. The command needs the command context during
 68  
 	 * the executing phase.
 69  
 	 *
 70  
 	 * @param contextRef The <code>CommandContext</code> for this command.
 71  
 	 */
 72  
 	public final void setContext(CommandContext contextRef) {
 73  0
     if (this.contextRef != null) {
 74  0
       throw new IllegalStateException("context is already set");
 75  
     }
 76  0
 		this.contextRef = contextRef;
 77  0
 	}
 78  
 
 79  
 	/**
 80  
 	 * Gets a command's name.
 81  
 	 *
 82  
 	 * @return A command's name as a <code>String</code>.
 83  
 	 */
 84  
 	public final String getName() {
 85  0
 		return name;
 86  
 	}
 87  
 
 88  
 	/**
 89  
 	 * Gets a command's alias; the shortcut name for the command. This alias could be a comma-separated String of
 90  
    * aliasses, all of which are valid aliasses.
 91  
 	 *
 92  
 	 * @return A command's alias as a <code>String</code>.
 93  
 	 */
 94  
 	public final String getAlias() {
 95  0
 		return alias;
 96  
 	}
 97  
 
 98  
   /**
 99  
    * Helper to get the current <code>WorkingContext</code>.
 100  
    *
 101  
    * @return The current <code>WorkingContext</code>.
 102  
    */
 103  
   public final WorkingContext getWorkingContext() {
 104  0
     return getContext().getWorkingContext();
 105  
   }
 106  
 
 107  
 	/**
 108  
 	 * Gets a localized version of a command's description.
 109  
 	 *
 110  
 	 * @return A command's description as a <code>String</code>.
 111  
 	 */
 112  
 	public final String getDescription() {
 113  0
 		return description;
 114  
 	}
 115  
 
 116  
 	public final void setCommandLine(CommandLine commandLine) {
 117  0
 		this.commandLine = commandLine;
 118  0
 	}
 119  
 
 120  
 	/**
 121  
 	 * Gets the parsed command line for this command. This command line can be queried by commands to check if options
 122  
 	 * had been set, or to retrieve application data.
 123  
 	 *
 124  
 	 * @return A command line instance.
 125  
 	 */
 126  
 	public final CommandLine getCommandLine() {
 127  0
 		return commandLine;
 128  
 	}
 129  
 
 130  
   public final void registerCommandResponseListener(CommandResponseListener responseListener) {
 131  0
     this.responseListener = responseListener;
 132  0
     CommandResponse commandResponse = getCommandResponse();
 133  0
     if (commandResponse != null) {
 134  0
       commandResponse.addCommandResponseListener(responseListener);
 135  
     } else {
 136  0
       logger.error("getCommandResponse() returned 'null' for command '"+getName()+"'.");
 137  
     }
 138  0
   }
 139  
 
 140  
   public final void deregisterCommandResponseListener(CommandResponseListener responseListener) {
 141  0
     CommandResponse commandResponse = getCommandResponse();
 142  0
     if (commandResponse != null) {
 143  0
       getCommandResponse().removeCommandReponseListener(responseListener);
 144  
     } else {
 145  0
       logger.error("getCommandResponse() returned 'null' for command '"+getName()+"'.");
 146  
     }
 147  0
   }
 148  
 
 149  
   /**
 150  
    * Gets the response listener object for this command.
 151  
    *
 152  
    * @return The response listener object for this command.
 153  
    */
 154  
   public final CommandResponseListener getResponseListener() {
 155  0
     return responseListener;
 156  
   }
 157  
 
 158  
 	/**
 159  
 	 * Accessor method for the commands' {@link CommandContext}.
 160  
 	 *
 161  
 	 * @return The commands' command context.
 162  
 	 */
 163  
 	public final CommandContext getContext() {
 164  0
 		return contextRef;
 165  
 	}
 166  
 
 167  
 	/**
 168  
 	 * A commands help text. Can be overridden for commands that have not provided xml data for the
 169  
 	 * <code>&lt;help&gt;</code>-element.
 170  
 	 *
 171  
 	 * @return Help text for this command.
 172  
 	 */
 173  
 	public String getHelp() {
 174  0
 		return helpText;
 175  
 	}
 176  
 
 177  
 	/**
 178  
 	 * Helper method to get a resource bundle for frontend messages for commands.
 179  
 	 *
 180  
 	 * @return The <code>ResourceBundle</code> for the current locale for frontend messages.
 181  
 	 */
 182  
 	protected final ResourceBundle getFrontendMessages() {
 183  0
 		return BundleCache.getInstance().getBundle(BundleCache.FRONTEND_MESSAGES_KEY);
 184  
 	}
 185  
 
 186  
   /**
 187  
    * Override to clean up stuff.
 188  
    */
 189  
   public void cleanUp() {
 190  
     // Nothing
 191  0
   }
 192  
 }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.