View Javadoc

1   /**********************************************
2    * Copyright (C) 2009 Lukas Laag
3    * This file is part of Vectomatic.
4    * 
5    * Vectomatic is free software: you can redistribute it and/or modify
6    * it under the terms of the GNU General Public License as published by
7    * the Free Software Foundation, either version 3 of the License, or
8    * (at your option) any later version.
9    * 
10   * Vectomatic is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   * GNU General Public License for more details.
14   * 
15   * You should have received a copy of the GNU General Public License
16   * along with Vectomatic.  If not, see http://www.gnu.org/licenses/
17   **********************************************/
18  package org.vectomatic.common.rpc;
19  
20  
21  import com.google.gwt.user.client.rpc.RemoteService;
22  
23  /**
24   * Service interface to manage drawings
25   * @author Lukas Laag
26   */
27  public interface IDrawingService extends RemoteService {
28  	/**
29  	 * Returns all the drawings owned by the session
30  	 * @param jsessionid
31  	 * The session id
32  	 * @return
33  	 * All the drawings owned by the session
34  	 * @throws AccountServiceException
35  	 * If a session related error occurs
36  	 * @throws InternalServerException
37  	 * If the server code fails
38  	 */
39  	Drawing[] getDrawings(String jsessionid) throws AccountServiceException;
40  	
41  	/**
42  	 * Creates a new drawing
43  	 * @param jsessionid
44  	 * The session id
45  	 * @param name
46  	 * The drawing name (usually: "Untitled")
47  	 * @return
48  	 * A new drawing
49  	 * @throws AccountServiceException
50  	 * If a session related error occurs
51  	 * @throws InternalServerException
52  	 * If the server code fails
53  	 * @throws DrawingServiceException
54  	 * If the server quota is exceeded
55  	 */
56  	Drawing newDrawing(String jsessionid, String name) throws AccountServiceException, DrawingServiceException;
57  	
58  	/**
59  	 * Renames a drawing
60  	 * @param jsessionid
61  	 * The session id
62  	 * @param drawingid
63  	 * The drawing id
64  	 * @param newName
65  	 * The drawing new name
66  	 * @throws AccountServiceException
67  	 * If a session related error occurs
68  	 * @throws InternalServerException
69  	 * If the server code fails
70  	 * @throws DrawingServiceException
71  	 * If the drawing no longer exists
72  	 */
73  	void renameDrawing(String jsessionid, String drawingid, String newName) throws AccountServiceException, DrawingServiceException;
74  	
75  	/**
76  	 * Deletes drawings
77  	 * @param jsessionid
78  	 * The session id
79  	 * @param drawingids
80  	 * An array of drawing ids. Invalid drawing ids are ignored
81  	 * @throws AccountServiceException
82  	 * If a session related error occurs
83  	 * @throws InternalServerException
84  	 * If the server code fails
85  	 */
86  	void deleteDrawings(String jsessionid, String[] drawingids) throws AccountServiceException;
87  	
88  	/**
89  	 * Duplicates a drawing
90  	 * @param jsessionid
91  	 * The session id
92  	 * @param drawingid
93  	 * The drawing id
94  	 * @param newName
95  	 * The duplicate name (usually: "Copy of")
96  	 * @return
97  	 * The drawing duplicate.
98  	 * @throws AccountServiceException
99  	 * If a session related error occurs
100 	 * @throws InternalServerException
101 	 * If the server code fails
102 	 * @throws DrawingServiceException
103 	 * If the drawing no longer exists or the server quota has been exceeded
104 	 */
105 	Drawing duplicateDrawing(String jsessionid, String drawingid, String newName) throws AccountServiceException, DrawingServiceException;
106 	
107 	/**
108 	 * Publishes / unpublishes a drawing
109 	 * @param jsessionid
110 	 * The session id
111 	 * @param drawingid
112 	 * The drawing id
113 	 * @param boolean
114 	 * true to publish the drawing, false to unpublish it
115 	 * @throws AccountServiceException
116 	 * If a session related error occurs
117 	 * @throws InternalServerException
118 	 * If the server code fails
119 	 * @throws DrawingServiceException
120 	 * If the drawing no longer exists
121 	 */
122 	void publishDrawing(String jsessionid, String drawingid, boolean published) throws AccountServiceException, DrawingServiceException;
123 }