// Path: core/src/main/java/it/nerdammer/spash/shell/command/Command.java
// public interface Command {
// 
//     /**
//      * Executes the command action.
//      *
//      * @param ctx the execution context
//      * @return the associated {@code CommandResult}
//      */
//     CommandResult execute(ExecutionContext ctx);
// 
// }
// 
// Path: core/src/main/java/it/nerdammer/spash/shell/command/CommandResult.java
// public class CommandResult {
// 
//     /**
//      * The executed command.
//      */
//     private Command command;
// 
//     /**
//      * Indicates whether the command completed successfully.
//      */
//     private boolean success;
// 
//     /**
//      * An error message explaining the problem when the command failed to execute.
//      */
//     private String errorMessage;
// 
//     /**
//      * The result of the command.
//      */
//     private SpashCollection<String> content;
// 
//     private CommandResult(Command command, boolean success, String errorMessage, SpashCollection<String> content) {
//         this.command = command;
//         this.success = success;
//         this.errorMessage = errorMessage;
//         this.content = content;
//     }
// 
//     public static CommandResult success(Command command, SpashCollection<String> content) {
//         return new CommandResult(command, true, null, content);
//     }
// 
//     public static CommandResult success(Command command) {
//         return new CommandResult(command, true, null, null);
//     }
// 
//     public static CommandResult error(Command command, String errorMessage) {
//         return new CommandResult(command, false, errorMessage, null);
//     }
// 
//     public Command getCommand() {
//         return command;
//     }
// 
//     public void setCommand(Command command) {
//         this.command = command;
//     }
// 
//     public boolean isSuccess() {
//         return success;
//     }
// 
//     public void setSuccess(boolean success) {
//         this.success = success;
//     }
// 
//     public String getErrorMessage() {
//         return errorMessage;
//     }
// 
//     public void setErrorMessage(String errorMessage) {
//         this.errorMessage = errorMessage;
//     }
// 
//     public SpashCollection<String> getContent() {
//         return content;
//     }
// 
//     public void setContent(SpashCollection<String> content) {
//         this.content = content;
//     }
// 
//     @Override
//     public String toString() {
//         return "CommandResult{" +
//                 "command=" + command +
//                 ", success=" + success +
//                 '}';
//     }
// 
// }
// 
// Path: core/src/main/java/it/nerdammer/spash/shell/SpashSession.java
// public class SpashSession {
// 
//     /**
//      * The default working directory.
//      */
//     private static final String DEFAULT_WORKING_DIR = "/";
// 
//     /**
//      * The user connected to this session.
//      */
//     private String user;
// 
//     /**
//      * The current working directory.
//      */
//     private String workingDir = DEFAULT_WORKING_DIR;
// 
//     public SpashSession(String user) {
//         this.user = user;
//     }
// 
//     public String getUser() {
//         return user;
//     }
// 
//     public void setUser(String user) {
//         this.user = user;
//     }
// 
//     public String getWorkingDir() {
//         return workingDir;
//     }
// 
//     public void setWorkingDir(String workingDir) {
//         this.workingDir = workingDir;
//     }
// 
//     @Override
//     public String toString() {
//         return "SpashSession{" +
//                 "user='" + user + '\'' +
//                 '}';
//     }
// }
// 
// Path: core/src/main/java/it/nerdammer/spash/shell/command/ExecutionContext.java
// public class ExecutionContext {
// 
//     private SpashSession session;
// 
//     private CommandResult previousCommandResult;
// 
//     public ExecutionContext() {
//     }
// 
//     public ExecutionContext(SpashSession session, CommandResult previousCommandResult) {
//         this.session = session;
//         this.previousCommandResult = previousCommandResult;
//     }
// 
//     public SpashSession getSession() {
//         return session;
//     }
// 
//     public void setSession(SpashSession session) {
//         this.session = session;
//     }
// 
//     public CommandResult getPreviousCommandResult() {
//         return previousCommandResult;
//     }
// 
//     public void setPreviousCommandResult(CommandResult previousCommandResult) {
//         this.previousCommandResult = previousCommandResult;
//     }
// }


import it.nerdammer.spash.shell.command.Command;
import it.nerdammer.spash.shell.command.CommandResult;
import it.nerdammer.spash.shell.SpashSession;
import it.nerdammer.spash.shell.command.ExecutionContext;
package it.nerdammer.spash.shell.command.spi;


/**
 * A command that does not do anything.
 *
 * @author Nicola Ferraro
 */
public class NoOpCommand implements Command {

    public NoOpCommand(String commandStr) {}

    @Override
// Path: core/src/main/java/it/nerdammer/spash/shell/command/Command.java
// public interface Command {
// 
//     /**
//      * Executes the command action.
//      *
//      * @param ctx the execution context
//      * @return the associated {@code CommandResult}
//      */
//     CommandResult execute(ExecutionContext ctx);
// 
// }
// 
// Path: core/src/main/java/it/nerdammer/spash/shell/command/CommandResult.java
// public class CommandResult {
// 
//     /**
//      * The executed command.
//      */
//     private Command command;
// 
//     /**
//      * Indicates whether the command completed successfully.
//      */
//     private boolean success;
// 
//     /**
//      * An error message explaining the problem when the command failed to execute.
//      */
//     private String errorMessage;
// 
//     /**
//      * The result of the command.
//      */
//     private SpashCollection<String> content;
// 
//     private CommandResult(Command command, boolean success, String errorMessage, SpashCollection<String> content) {
//         this.command = command;
//         this.success = success;
//         this.errorMessage = errorMessage;
//         this.content = content;
//     }
// 
//     public static CommandResult success(Command command, SpashCollection<String> content) {
//         return new CommandResult(command, true, null, content);
//     }
// 
//     public static CommandResult success(Command command) {
//         return new CommandResult(command, true, null, null);
//     }
// 
//     public static CommandResult error(Command command, String errorMessage) {
//         return new CommandResult(command, false, errorMessage, null);
//     }
// 
//     public Command getCommand() {
//         return command;
//     }
// 
//     public void setCommand(Command command) {
//         this.command = command;
//     }
// 
//     public boolean isSuccess() {
//         return success;
//     }
// 
//     public void setSuccess(boolean success) {
//         this.success = success;
//     }
// 
//     public String getErrorMessage() {
//         return errorMessage;
//     }
// 
//     public void setErrorMessage(String errorMessage) {
//         this.errorMessage = errorMessage;
//     }
// 
//     public SpashCollection<String> getContent() {
//         return content;
//     }
// 
//     public void setContent(SpashCollection<String> content) {
//         this.content = content;
//     }
// 
//     @Override
//     public String toString() {
//         return "CommandResult{" +
//                 "command=" + command +
//                 ", success=" + success +
//                 '}';
//     }
// 
// }
// 
// Path: core/src/main/java/it/nerdammer/spash/shell/SpashSession.java
// public class SpashSession {
// 
//     /**
//      * The default working directory.
//      */
//     private static final String DEFAULT_WORKING_DIR = "/";
// 
//     /**
//      * The user connected to this session.
//      */
//     private String user;
// 
//     /**
//      * The current working directory.
//      */
//     private String workingDir = DEFAULT_WORKING_DIR;
// 
//     public SpashSession(String user) {
//         this.user = user;
//     }
// 
//     public String getUser() {
//         return user;
//     }
// 
//     public void setUser(String user) {
//         this.user = user;
//     }
// 
//     public String getWorkingDir() {
//         return workingDir;
//     }
// 
//     public void setWorkingDir(String workingDir) {
//         this.workingDir = workingDir;
//     }
// 
//     @Override
//     public String toString() {
//         return "SpashSession{" +
//                 "user='" + user + '\'' +
//                 '}';
//     }
// }
// 
// Path: core/src/main/java/it/nerdammer/spash/shell/command/ExecutionContext.java
// public class ExecutionContext {
// 
//     private SpashSession session;
// 
//     private CommandResult previousCommandResult;
// 
//     public ExecutionContext() {
//     }
// 
//     public ExecutionContext(SpashSession session, CommandResult previousCommandResult) {
//         this.session = session;
//         this.previousCommandResult = previousCommandResult;
//     }
// 
//     public SpashSession getSession() {
//         return session;
//     }
// 
//     public void setSession(SpashSession session) {
//         this.session = session;
//     }
// 
//     public CommandResult getPreviousCommandResult() {
//         return previousCommandResult;
//     }
// 
//     public void setPreviousCommandResult(CommandResult previousCommandResult) {
//         this.previousCommandResult = previousCommandResult;
//     }
// }


// Path: core/src/main/java/it/nerdammer/spash/shell/command/spi/NoOpCommand.java
import it.nerdammer.spash.shell.command.Command;
import it.nerdammer.spash.shell.command.CommandResult;
import it.nerdammer.spash.shell.SpashSession;
import it.nerdammer.spash.shell.command.ExecutionContext;

package it.nerdammer.spash.shell.command.spi;


/**
 * A command that does not do anything.
 *
 * @author Nicola Ferraro
 */
public class NoOpCommand implements Command {

    public NoOpCommand(String commandStr) {}

    @Override
    public CommandResult execute(ExecutionContext ctx) {