001: package org.emforge;
002:
003: import javax.jws.WebParam;
004: import javax.jws.WebService;
005:
006: import org.emforge.xfer.ReportTO;
007:
008: /**
009: * Web service definition to work with reports
010: *
011: * @author szakusov, 09.04.2008: created.
012: */
013: @WebService
014: public interface ReportService {
015:
016: public static final String PERM_CANNOT_ADD = "You are not allowed to add reports";
017: public static final String PERM_CANNOT_REVIEW = "You are not allowed to review reports";
018: public static final String PERM_CANNOT_DELETE = "You are not allowed to delete reports";
019:
020: /**
021: * Adds the specified report to the system.
022: *
023: * @param content is the report compilation content.
024: * @param description is the report description, can be used wiki-format.
025: * @throws EmForgeException if the specified report cannot be added.
026: */
027: public ReportTO add(@WebParam(name="content")
028: byte[] content, @WebParam(name="description")
029: String description) throws EmForgeException;
030:
031: /**
032: * Retrieves a report by specified name.
033: *
034: * @param name is a report name to retrieve.
035: * @return Required report or <code>null</code> if the specified report is not found.
036: * @throws EmForgeException if the specified report cannot be retrieved.
037: */
038: public ReportTO get(@WebParam(name="name")
039: String name) throws EmForgeException;
040:
041: /**
042: * Retrieves all reports.
043: *
044: * @return list of all reports.
045: * @throws EmForgeException if reports cannot be retrieved.
046: */
047: public ReportTO[] getAll() throws EmForgeException;
048:
049: /**
050: * Retrieves attachment filename.
051: *
052: * @param name is a report name to get its attachment filename.
053: * @return Attachment filename
054: * @throws EmForgeException if attachment filename of the specified report cannot be retrieved.
055: */
056: public String getFilename(@WebParam(name="name")
057: String name) throws EmForgeException;
058:
059: /**
060: * Retrieves content of specified report.
061: *
062: * @param name is a report name to retrieve content.
063: * @return Content of required report or <code>null</code> if the specified report is not found.
064: * @throws EmForgeException if the specified report content cannot be retrieved.
065: */
066: public byte[] getContent(@WebParam(name="name")
067: String name) throws EmForgeException;
068:
069: /**
070: * Checks if the specified report exists or not.
071: *
072: * @param name is a report name to check.
073: * @return <code>true</code> if the specified report exists, <code>false</code> otherwise.
074: */
075: public boolean exists(@WebParam(name="name")
076: String name);
077:
078: /**
079: * Deletes the specified report.
080: *
081: * @param name is a report name to delete.
082: * @throws EmForgeException if the specified report cannot be deleted.
083: */
084: public boolean delete(@WebParam(name="name")
085: String name) throws EmForgeException;
086:
087: /**
088: * Checks if the current user has permissions to review reports or not.
089: *
090: * @return <code>true</code> if the current user has review permissions, <code>false</code> otherwise.
091: */
092: public boolean canReview();
093:
094: /**
095: * Checks if the current user has permissions to operate reports or not.
096: *
097: * @return <code>true</code> if the current user has report operate permissions, <code>false</code> otherwise.
098: */
099: public boolean canOperate();
100: }
|