001    package org.crsh.shell.impl.command;
002    
003    import org.crsh.shell.ShellProcessContext;
004    import org.crsh.shell.ShellResponse;
005    import org.crsh.text.Text;
006    
007    import java.io.IOException;
008    
009    /**
010    * @author Julien Viet
011    */
012    class CRaSHResponseProcess extends CRaSHProcess {
013    
014      /** . */
015      private final StringBuilder msg;
016    
017      /** . */
018      private final ShellResponse response;
019    
020      public CRaSHResponseProcess(CRaSHSession session, String request, StringBuilder msg, ShellResponse response) {
021        super(session, request);
022    
023        //
024        this.msg = msg;
025        this.response = response;
026      }
027    
028      @Override
029      ShellResponse doInvoke(ShellProcessContext context) throws InterruptedException {
030        if (msg.length() > 0) {
031          try {
032            context.write(Text.create(msg));
033          }
034          catch (IOException ignore) {
035          }
036        }
037        return response;
038      }
039    }