001: /*
002: * Copyright (c) 2003 - 2007 OpenSubsystems s.r.o. Slovak Republic. All rights reserved.
003: *
004: * Project: OpenChronicle
005: *
006: * $Id: BlogController.java,v 1.3 2007/02/20 02:12:32 bastafidli Exp $
007: *
008: * This program is free software; you can redistribute it and/or modify
009: * it under the terms of the GNU General Public License as published by
010: * the Free Software Foundation; version 2 of the License.
011: *
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
015: * GNU General Public License for more details.
016: *
017: * You should have received a copy of the GNU General Public License
018: * along with this program; if not, write to the Free Software
019: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020: */
021:
022: package org.opensubsystems.blog.logic;
023:
024: import java.rmi.RemoteException;
025:
026: import org.opensubsystems.blog.data.Blog;
027: import org.opensubsystems.core.error.OSSException;
028: import org.opensubsystems.core.logic.ModifiableDataController;
029:
030: /**
031: * This interface define business logic related to blogs.
032: *
033: * @version $Id: BlogController.java,v 1.3 2007/02/20 02:12:32 bastafidli Exp $
034: * @author Miro Halas
035: * @code.reviewer Miro Halas
036: * @code.reviewed Initial revision
037: */
038: public interface BlogController extends ModifiableDataController {
039: /**
040: * Get blog knowing just the folder where it's entries are displayed.
041: *
042: * @param strFolder - folder where entries for given folder are displayed
043: * @return Blog - specified blog or null if not found
044: * @throws OSSException - an error has occured
045: * @throws RemoteException - required since this method can be called remotely
046: */
047: Blog get(String strFolder) throws OSSException, RemoteException;
048:
049: /**
050: * Get all entries for a given blog.
051: *
052: * @param iBlogId - id of a blog to get entries for
053: * @param iPageNumber - page number of page of blogs to get
054: * @return Object[] - index 0 is list of entries or null if blog doesn't
055: * contain any entries
056: * index 1 is ListOptions describing the position in the
057: * list of blogs
058: * @throws OSSException - an error has occured
059: * @throws RemoteException - required since this method can be called remotely
060: */
061: Object[] getEntries(int iBlogId, int iPageNumber)
062: throws OSSException, RemoteException;
063:
064: /**
065: * Get blog and its entries knowing just the folder where it's entries
066: * are displayed.
067: *
068: * @param strFolder - folder where entries for given folder are displayed
069: * @param iPageNumber - page number to get
070: * @return Object[] - index 0 is blog
071: * index 1 is list of its entries
072: * index 2 is ListOptions describing the position in the
073: * list of entries
074: * @throws OSSException - an error has occured
075: * @throws RemoteException - required since this method can be called remotely
076: */
077: Object[] getWithEntries(String strFolder, int iPageNumber)
078: throws OSSException, RemoteException;
079:
080: /**
081: * Get blog and entry knowing just the folder where the entry are displayed
082: * and the id of the entry.
083: *
084: * @param strFolder - folder where entries for given folder are displayed
085: * @param iEntryId - id of the blog entry to load
086: * @return Object[] - index 0 is blog and index 1 is the entry
087: * @throws OSSException - an error has occured
088: * @throws RemoteException - required since this method can be called remotely
089: */
090: Object[] getWithEntry(String strFolder, int iEntryId)
091: throws OSSException, RemoteException;
092:
093: /**
094: * Get blog and entry knowing just the id of the blog and the id of the entry.
095: *
096: * @param iBlogId - id of the blog to load
097: * @param iEntryId - id of the blog entry to load
098: * @return Object[] - index 0 is blog and index 1 is the entry
099: * @throws OSSException - an error has occured
100: * @throws RemoteException - required since this method can be called remotely
101: */
102: Object[] getWithEntry(int iBlogId, int iEntryId)
103: throws OSSException, RemoteException;
104:
105: /**
106: * Get page of blogs.
107: *
108: * @param iPageNumber - page number of page of blogs to get
109: * @return Object[] - index 0 is list of blogs
110: * index 1 is ListOptions describing the position in the
111: * list of blogs
112: * @throws OSSException - an error has occured
113: * @throws RemoteException - required since this method can be called remotely
114: */
115: Object[] getPage(int iPageNumber) throws OSSException,
116: RemoteException;
117:
118: /**
119: * Delete entry. We have to define separate method for this operation since
120: * the default data type for this controller is blog and therefore the default
121: * implementation will just delete blogs.
122: *
123: * @param iId - id of the entry to delete
124: * @throws OSSException - an error has occured
125: * @throws RemoteException - required since this method can be called remotely
126: */
127: void deleteEntry(int iId) throws OSSException, RemoteException;
128: }
|