View Javadoc

1   /*$Id: VoSpaceClientWorkflowStore.java,v 1.1 2004/04/14 13:45:48 nw Exp $
2    * Created on 14-Apr-2004
3    *
4    * Copyright (C) AstroGrid. All rights reserved.
5    *
6    * This software is published under the terms of the AstroGrid 
7    * Software License version 1.2, a copy of which has been included 
8    * with this distribution in the LICENSE.txt file.  
9    *
10  **/
11  package org.astrogrid.portal.workflow.impl;
12  
13  import org.astrogrid.community.User;
14  import org.astrogrid.portal.workflow.intf.WorkflowInterfaceException;
15  import org.astrogrid.portal.workflow.intf.WorkflowStore;
16  import org.astrogrid.store.Ivorn;
17  import org.astrogrid.store.VoSpaceClient;
18  import org.astrogrid.workflow.beans.v1.Workflow;
19  
20  import org.exolab.castor.xml.CastorException;
21  
22  import java.io.IOException;
23  import java.io.InputStream;
24  import java.io.InputStreamReader;
25  import java.io.OutputStream;
26  import java.io.OutputStreamWriter;
27  
28  /*** Implementation of a workflow store
29   * @author Noel Winstanley nw@jb.man.ac.uk 14-Apr-2004
30   *
31   */
32  public class VoSpaceClientWorkflowStore implements WorkflowStore {
33      /*** Construct a new VoSpaceClientWorkflowStore
34       * 
35       */
36      public VoSpaceClientWorkflowStore() {
37          super();
38      }
39      /***
40       * @see org.astrogrid.portal.workflow.intf.WorkflowStore#readWorkflow(org.astrogrid.community.User, org.astrogrid.store.Ivorn)
41       */
42      public Workflow readWorkflow(User user, Ivorn locationToReadFrom) throws WorkflowInterfaceException {
43          try {
44              VoSpaceClient client = new VoSpaceClient(user);
45              InputStream is = client.getStream(locationToReadFrom);
46              return Workflow.unmarshalWorkflow(new InputStreamReader(is));
47           } catch (IOException e) {
48               throw new WorkflowInterfaceException("ReadWorkflow",e);
49          } catch (CastorException e) {
50              throw new WorkflowInterfaceException("ReadWorkflow",e);
51          }
52          
53      }
54      /***
55       * @see org.astrogrid.portal.workflow.intf.WorkflowStore#saveWorkflow(org.astrogrid.community.User, org.astrogrid.store.Ivorn, org.astrogrid.workflow.beans.v1.Workflow)
56       */
57      public void saveWorkflow(User user, Ivorn locationToSaveTo, Workflow workflow) throws WorkflowInterfaceException {
58          try {
59              VoSpaceClient client = new VoSpaceClient(user);
60              OutputStream os = client.putStream(locationToSaveTo);
61              workflow.marshal(new OutputStreamWriter(os));
62          } catch (IOException e) {
63              throw new WorkflowInterfaceException("SaveWorkflow",e);
64          } catch (CastorException e) {
65              throw new WorkflowInterfaceException("SaveWorkflow",e);
66          }
67          
68      }
69  }
70  
71  
72  /* 
73  $Log: VoSpaceClientWorkflowStore.java,v $
74  Revision 1.1  2004/04/14 13:45:48  nw
75  implemented cut down workflow store interface over Ivo Delegate
76   
77  */