From 7e3b7270245cc14f09400e278620ce195c26fab8 Mon Sep 17 00:00:00 2001 From: Emmanuel Bigeon Date: Fri, 26 Oct 2018 09:06:28 -0400 Subject: [PATCH] Add echo command Signed-off-by: Emmanuel Bigeon --- .../bigeon/gclc/process/io/package-info.java | 34 +++++++ .../net/bigeon/gclc/process/package-info.java | 34 +++++++ .../net/bigeon/gclc/system/package-info.java | 34 +++++++ .../bigeon/gclc/command/base/EchoCommand.java | 89 +++++++++++++++++++ 4 files changed, 191 insertions(+) create mode 100644 gclc/src/main/java/net/bigeon/gclc/command/base/EchoCommand.java diff --git a/gclc-process/src/main/java/net/bigeon/gclc/process/io/package-info.java b/gclc-process/src/main/java/net/bigeon/gclc/process/io/package-info.java index 4fd9efb..8ab3e3b 100644 --- a/gclc-process/src/main/java/net/bigeon/gclc/process/io/package-info.java +++ b/gclc-process/src/main/java/net/bigeon/gclc/process/io/package-info.java @@ -6,3 +6,37 @@ * * @author Emmanuel Bigeon */ package net.bigeon.gclc.process.io; + +/*- + * #%L + * process + * %% + * Copyright (C) 2014 - 2018 Bigeon + * %% + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + * #L% + */ diff --git a/gclc-process/src/main/java/net/bigeon/gclc/process/package-info.java b/gclc-process/src/main/java/net/bigeon/gclc/process/package-info.java index 0afa2ad..ff17c63 100644 --- a/gclc-process/src/main/java/net/bigeon/gclc/process/package-info.java +++ b/gclc-process/src/main/java/net/bigeon/gclc/process/package-info.java @@ -12,3 +12,37 @@ * * @author Emmanuel Bigeon */ package net.bigeon.gclc.process; + +/*- + * #%L + * process + * %% + * Copyright (C) 2014 - 2018 Bigeon + * %% + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + * #L% + */ diff --git a/gclc.system/src/main/java/net/bigeon/gclc/system/package-info.java b/gclc.system/src/main/java/net/bigeon/gclc/system/package-info.java index 3af1652..c78cf19 100644 --- a/gclc.system/src/main/java/net/bigeon/gclc/system/package-info.java +++ b/gclc.system/src/main/java/net/bigeon/gclc/system/package-info.java @@ -6,3 +6,37 @@ * * @author Emmanuel Bigeon */ package net.bigeon.gclc.system; + +/*- + * #%L + * GCLC system command + * %% + * Copyright (C) 2016 - 2018 Bigeon + * %% + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/ or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + * #L% + */ diff --git a/gclc/src/main/java/net/bigeon/gclc/command/base/EchoCommand.java b/gclc/src/main/java/net/bigeon/gclc/command/base/EchoCommand.java new file mode 100644 index 0000000..9464a16 --- /dev/null +++ b/gclc/src/main/java/net/bigeon/gclc/command/base/EchoCommand.java @@ -0,0 +1,89 @@ +/* + * ralph.runner, Runs RALPH (belongs to IREQ) in sequence for several days + * Copyright (C) 2016-2018 E. Bigeon + * mailto:emmanuel@bigeon.fr + * + * This software is governed by the CeCILL license under French law and + * abiding by the rules of distribution of free software. You can use, + * modify and/or redistribute the software under the terms of the CeCILL + * license as circulated by CEA, CNRS and INRIA at the following URL + * "http://www.cecill.info". + * + * As a counterpart to the access to the source code and rights to copy, + * modify and redistribute granted by the license, users are provided only + * with a limited warranty and the software's author, the holder of the + * economic rights, and the successive licensors have only limited + * liability. + * + * In this respect, the user's attention is drawn to the risks associated + * with loading, using, modifying and/or developing or reproducing the + * software by the user in light of its specific status of free software, + * that may mean that it is complicated to manipulate, and that also + * therefore means that it is reserved for developers and experienced + * professionals having in-depth computer knowledge. Users are therefore + * encouraged to load and test the software's suitability as regards their + * requirements in conditions enabling the security of their systems and/or + * data to be ensured and, more generally, to use and operate it in the + * same conditions as regards security. + * + * The fact that you are presently reading this means that you have had + * knowledge of the CeCILL license and that you accept its terms. + */ +/** + * + */ +package net.bigeon.gclc.command.base; + +import java.io.IOException; +import java.text.MessageFormat; +import java.util.Arrays; + +import net.bigeon.gclc.command.Command; +import net.bigeon.gclc.exception.CommandRunException; +import net.bigeon.gclc.manager.ConsoleInput; +import net.bigeon.gclc.manager.ConsoleOutput; + +/** @author Emmanuel Bigeon */ +public class EchoCommand extends Command { + + /** @param name the command name */ + public EchoCommand(final String name) { + super(name); + } + + /* (non-Javadoc) + * @see + * fr.bigeon.gclc.command.ICommand#execute(fr.bigeon.gclc.manager.ConsoleOutput, + * fr.bigeon.gclc.manager.ConsoleInput, java.lang.String[]) */ + @Override + public void execute(final ConsoleOutput out, final ConsoleInput in, final String... args) + throws CommandRunException { + try { + if (args.length == 1) { + out.print(args[0]); + } + if (args.length > 1) { + out.print(MessageFormat.format(args[0], + (Object[]) Arrays.copyOfRange(args, 1, args.length))); + } + out.println(); + } catch (final IOException e) { + throw new CommandRunException("Printing failed", e); + } + } + + /* (non-Javadoc) + * @see fr.bigeon.gclc.command.ICommand#tip() */ + @Override + public String tip() { + return "Print the message"; + } + + /* (non-Javadoc) + * @see fr.bigeon.gclc.command.Command#usageDetail() */ + @Override + protected String usageDetail() { + return "A formatted message can be used"; + } + +}