001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/osp/tags/sakai_2-4-1/presentation/api/src/java/org/theospi/portfolio/presentation/PresentationManager.java $
003: * $Id: PresentationManager.java 21790 2007-02-21 03:26:25Z joshua.ryan@asu.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2005, 2006, 2007 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.theospi.portfolio.presentation;
021:
022: import java.io.IOException;
023: import java.io.InputStream;
024: import java.io.OutputStream;
025: import java.util.Collection;
026: import java.util.List;
027:
028: import org.jdom.Document;
029: import org.sakaiproject.entity.api.Reference;
030: import org.sakaiproject.metaobj.shared.model.Agent;
031: import org.sakaiproject.metaobj.shared.model.Id;
032: import org.theospi.portfolio.presentation.model.Presentation;
033: import org.theospi.portfolio.presentation.model.PresentationComment;
034: import org.theospi.portfolio.presentation.model.PresentationItem;
035: import org.theospi.portfolio.presentation.model.PresentationItemDefinition;
036: import org.theospi.portfolio.presentation.model.PresentationLayout;
037: import org.theospi.portfolio.presentation.model.PresentationLog;
038: import org.theospi.portfolio.presentation.model.PresentationPage;
039: import org.theospi.portfolio.presentation.model.PresentationTemplate;
040: import org.theospi.portfolio.presentation.model.TemplateFileRef;
041: import org.theospi.portfolio.security.model.CleanupableService;
042: import org.theospi.portfolio.shared.model.Node;
043:
044: /**
045: * This class provides a management layer into the presentations included in the system.
046: * @author John Bush (jbush@rsmart.com)
047: * $Header: /opt/CVS/osp2.x/presentation/api/src/java/org/theospi/portfolio/presentation/PresentationManager.java,v 1.5 2005/10/26 23:53:01 jellis Exp $
048: * $Revision: 8645 $
049: * $Date: 2007-02-20 22:26:25 -0500 (Tue, 20 Feb 2007) $
050: */
051:
052: public interface PresentationManager extends CleanupableService {
053:
054: public static final String PRESENTATION_PROPERTIES_FOLDER = "portfolioPropertyForms";
055: public static final String PRESENTATION_PROPERTIES_FOLDER_DISPNAME = "portfolioPropertyForms.displayName";
056: public static final String PRESENTATION_PROPERTIES_FOLDER_DESC = "portfolioPropertyForms.description";
057: public static final String PORTFOLIO_INTERACTION_FOLDER_DISPNAME = "portfolioInteraction.displayName";
058: public static final String PORTFOLIO_INTERACTION_FOLDER_DESC = "portfolioInteraction.description";
059: public static final String PRESENTATION_PROPERTIES_FOLDER_PATH = "/"
060: + PRESENTATION_PROPERTIES_FOLDER + "/";
061: public static final String PRESENTATION_MESSAGE_BUNDLE = "org.theospi.portfolio.presentation.bundle.Messages";
062:
063: public PresentationTemplate storeTemplate(
064: PresentationTemplate template);
065:
066: public PresentationTemplate storeTemplate(
067: PresentationTemplate template, boolean checkAuthz,
068: boolean updateDates);
069:
070: public boolean deletePresentationTemplate(Id id);
071:
072: public void deletePresentationLayout(Id id);
073:
074: public PresentationTemplate getPresentationTemplate(Id id);
075:
076: public PresentationItemDefinition getPresentationItemDefinition(
077: Id item);
078:
079: public void deletePresentationItem(Id item);
080:
081: public Presentation getPresentation(Id id);
082:
083: public Presentation getLightweightPresentation(Id id);
084:
085: public Presentation storePresentation(Presentation presentation);
086:
087: public Presentation storePresentation(Presentation presentation,
088: boolean checkAuthz, boolean updateDates);
089:
090: public void deletePresentation(Id presentation);
091:
092: public PresentationItem getPresentationItem(Id itemDef);
093:
094: public void updateItemDefintion(PresentationItemDefinition itemDef);
095:
096: public void deletePresentationItemDefinition(Id itemDef);
097:
098: public TemplateFileRef getTemplateFileRef(Id refId);
099:
100: public void updateTemplateFileRef(TemplateFileRef ref);
101:
102: public void deleteTemplateFileRef(Id refId);
103:
104: /**
105: * returns a list of all presentation owned by agent.
106: *
107: * @param owner
108: * @return
109: */
110: public Collection findPresentationsByOwner(Agent owner);
111:
112: /**
113: * returns a list of all presentation owned by agent within the given toolId.
114: *
115: * @param owner
116: * @return
117: */
118: public Collection findPresentationsByOwner(Agent owner,
119: String toolId);
120:
121: /**
122: * returns a list of all presentation templates owned by agent.
123: *
124: * @param owner
125: * @return
126: */
127: public Collection findTemplatesByOwner(Agent owner);
128:
129: /**
130: * returns a list of all presentation templates owned by agent within the given siteId.
131: *
132: * @param owner
133: * @return
134: */
135: public Collection findTemplatesByOwner(Agent owner, String siteId);
136:
137: public Collection findPublishedTemplates(String siteId);
138:
139: public Collection findGlobalTemplates();
140:
141: public Collection findPublishedTemplates();
142:
143: public Collection findPublishedLayouts(String siteId);
144:
145: public Collection findLayoutsByOwner(Agent owner, String siteId);
146:
147: public Collection findMyGlobalLayouts();
148:
149: public Collection findAllGlobalLayouts();
150:
151: public PresentationLayout storeLayout(PresentationLayout layout);
152:
153: public PresentationLayout storeLayout(PresentationLayout layout,
154: boolean checkAuthz);
155:
156: public PresentationLayout getPresentationLayout(Id layoutId);
157:
158: public List getPresentationPagesByPresentation(Id presentationId);
159:
160: public PresentationPage getPresentationPage(Id id);
161:
162: public Document getPresentationLayoutAsXml(
163: Presentation presentation, String pageId);
164:
165: /**
166: * Creates an xml document represenation of the requested page from the
167: * presentation passed in.
168: *
169: * @param presentation
170: * @param pageId
171: * @return xml representation of the requested page or null
172: */
173: public Document getPresentationPreviewLayoutAsXml(
174: Presentation presentation, String pageId);
175:
176: /**
177: * returns a list of all presentations agent can view </br>
178: *
179: * @param viewer
180: * @return
181: */
182: public Collection findPresentationsByViewer(Agent viewer);
183:
184: /**
185: * returns a list of all presentations agent can view within the given tool</br>
186: *
187: * @param viewer
188: * @param toolId
189: * @return
190: */
191: public Collection findPresentationsByViewer(Agent viewer,
192: String toolId);
193:
194: /**
195: *
196: * @param viewer
197: * @param toolId
198: * @param showHidden
199: * @return
200: */
201: public Collection findPresentationsByViewer(Agent viewer,
202: String toolId, boolean showHidden);
203:
204: public void createComment(PresentationComment comment);
205:
206: public void createComment(PresentationComment comment,
207: boolean checkAuthz, boolean updateDates);
208:
209: public List getPresentationComments(Id presentationId, Agent viewer);
210:
211: public PresentationComment getPresentationComment(Id id);
212:
213: public void deletePresentationComment(PresentationComment comment);
214:
215: public void updatePresentationComment(PresentationComment oldComment);
216:
217: /**
218: * returns list of comments owned by agent in given tool. Includes comments created by the owner.
219: * @param owner
220: * @param sortBy
221: * @return
222: */
223: public List getOwnerComments(Agent owner, CommentSortBy sortBy);
224:
225: /**
226: * returns list of comments owned by agent in given tool. Includes comments created by the owner.
227: * @param owner
228: * @param toolId
229: * @param sortBy
230: * @param excludeOwner - set to true to exclude comments created by the owner
231: * @return
232: */
233: public List getOwnerComments(Agent owner, String toolId,
234: CommentSortBy sortBy, boolean excludeOwner);
235:
236: /**
237: * returns list of comments owned by agent in given tool. Includes comments created by the owner.
238: * @param owner
239: * @param toolId
240: * @param sortBy
241: * @return
242: */
243: public List getOwnerComments(Agent owner, String toolId,
244: CommentSortBy sortBy);
245:
246: public List getCreatorComments(Agent creator, CommentSortBy sortBy);
247:
248: /**
249: * returns list of comments created by creator in given tool.
250: * @param creator
251: * @param toolId
252: * @param sortBy
253: * @return
254: */
255: public List getCreatorComments(Agent creator, String toolId,
256: CommentSortBy sortBy);
257:
258: public PresentationTemplate copyTemplate(Id templateId);
259:
260: public String packageTemplateForExport(Id templateId,
261: OutputStream os) throws IOException;
262:
263: public PresentationTemplate uploadTemplate(String templateFileName,
264: String toContext, InputStream zipFileStream)
265: throws IOException;
266:
267: public void storePresentationLog(PresentationLog log);
268:
269: public Collection findLogsByPresID(Id presID);
270:
271: public Collection getPresentationItems(Id artifactId);
272:
273: public Collection getPresentationsBasedOnTemplateFileRef(
274: Id artifactId);
275:
276: public Collection findPresentationsByTool(Id id);
277:
278: public Node getNode(Id artifactId);
279:
280: public Node getNode(Reference ref);
281:
282: /**
283: * Get node within the context of this presentation
284: * @param ref
285: * @param presentation
286: * @return
287: */
288: public Node getNode(Reference ref, Presentation presentation);
289:
290: public Node getNode(Id artifactId, Presentation presentation);
291:
292: public Node getNode(Id artifactId, PresentationLayout layout);
293:
294: public Collection loadArtifactsForItemDef(
295: PresentationItemDefinition itemDef, Agent agent);
296:
297: public Document createDocument(Presentation presentation);
298:
299: public Collection getAllPresentationsForWarehouse();
300:
301: public Collection getAllPresentationLayouts();
302:
303: public Collection getAllPresentationTemplates();
304:
305: public Presentation getPresentation(Id id, String secretExportKey);
306:
307: public boolean isGlobal();
308:
309: }
|