View Javadoc

1   package fr.in2p3.jsaga.impl.job.instance.stream;
2   
3   import fr.in2p3.jsaga.adaptor.job.control.JobControlAdaptor;
4   import fr.in2p3.jsaga.adaptor.job.control.interactive.*;
5   import fr.in2p3.jsaga.impl.job.instance.AbstractSyncJobImpl;
6   import org.ogf.saga.error.*;
7   
8   /* ***************************************************
9   * *** Centre de Calcul de l'IN2P3 - Lyon (France) ***
10  * ***             http://cc.in2p3.fr/             ***
11  * ***************************************************
12  * File:   StreamFactory
13  * Author: Sylvain Reynaud (sreynaud@in2p3.fr)
14  * Date:   23 mai 2008
15  * ***************************************************
16  * Description:                                      */
17  /**
18   * TODO: not used yet...
19   */
20  public class StreamFactory {
21      public static Stdin createStdin(AbstractSyncJobImpl job, JobControlAdaptor adaptor) throws NotImplementedException, DoesNotExistException, TimeoutException, NoSuccessException {
22          if (adaptor instanceof StreamableJobInteractiveSet) {
23              return new PostconnectedStdinOutputStream(job);
24          } else {
25              return new JobStdinOutputStream(job);
26          }
27      }
28  
29      public static Stdout createStdout(AbstractSyncJobImpl job, JobControlAdaptor adaptor, JobIOHandler ioHandler) throws NotImplementedException, PermissionDeniedException, DoesNotExistException, TimeoutException, NoSuccessException {
30          if (adaptor instanceof StreamableJobInteractiveGet) {
31              return new GetterInputStream(((JobIOGetterInteractive)ioHandler).getStdout());
32          } else if (adaptor instanceof StreamableJobInteractiveSet) {
33              return new PreconnectedStdoutInputStream(job);
34          } else if (adaptor instanceof StreamableJobBatch) {
35              return new JobStdoutInputStream(job, ioHandler);
36          } else {
37              throw new NotImplementedException("Unsupported streamable interface: "+adaptor.getClass().getName());
38          }
39      }
40  
41      public static Stdout createStderr(AbstractSyncJobImpl job, JobControlAdaptor adaptor, JobIOHandler ioHandler) throws NotImplementedException, PermissionDeniedException, DoesNotExistException, TimeoutException, NoSuccessException {
42          if (adaptor instanceof StreamableJobInteractiveGet) {
43              return new GetterInputStream(((JobIOGetterInteractive)ioHandler).getStderr());
44          } else if (adaptor instanceof StreamableJobInteractiveSet) {
45              return new PreconnectedStderrInputStream(job);
46          } else if (adaptor instanceof StreamableJobBatch) {
47              return new JobStderrInputStream(job, ioHandler);
48          } else {
49              throw new NotImplementedException("Unsupported streamable interface: "+adaptor.getClass().getName());
50          }
51      }
52  }