1
2
3
4
5
6
7
8
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
74
75
76
77