text: /**
   * Copyright 2016 Red Hat, Inc. and/or its affiliates.
   *
   * Licensed under the Eclipse Public License version 1.0, available at
   * http://www.eclipse.org/legal/epl-v10.html
   */
  package org.jboss.forge.addon.shell.command;
  
  import javax.inject.Inject;
  
  import org.jboss.forge.addon.shell.ui.AbstractShellCommand;
  import org.jboss.forge.addon.ui.context.UIBuilder;
  import org.jboss.forge.addon.ui.context.UIContext;
  import org.jboss.forge.addon.ui.context.UIExecutionContext;
  import org.jboss.forge.addon.ui.input.UIInputMany;
  import org.jboss.forge.addon.ui.metadata.UICommandMetadata;
  import org.jboss.forge.addon.ui.result.Result;
  import org.jboss.forge.addon.ui.result.Results;
  import org.jboss.forge.addon.ui.util.Metadata;
  
  /**
   * 
   * @author <a href="ggastald@redhat.com">George Gastaldi</a>
   */
  public class EchoCommand extends AbstractShellCommand
  {
     @Inject
     private UIInputMany<String> arguments;
  
     @Override
     public void initializeUI(UIBuilder builder) throws Exception
     {
        builder.add(arguments);
     }
  
     @Override
     public UICommandMetadata getMetadata(UIContext context)
     {
        return Metadata.from(super.getMetadata(context), getClass()).name("echo")
                 .description("display a line of text");
     }
  
     @Override
     public Result execute(UIExecutionContext shellContext) throws Exception
     {
        StringBuilder sb = new StringBuilder();
        Iterable<String> value = arguments.getValue();
        if (value != null)
        {
           for (String val : value)
           {
              sb.append(val).append(' ');
           }
        }
        shellContext.getUIContext().getProvider().getOutput().out().println(sb);
        return Results.success();
     }
  }
  