001: /*
002: * File : $Source: /usr/local/cvs/opencms/src/org/opencms/file/collectors/I_CmsResourceCollector.java,v $
003: * Date : $Date: 2008-02-27 12:05:43 $
004: * Version: $Revision: 1.12 $
005: *
006: * This library is part of OpenCms -
007: * the Open Source Content Management System
008: *
009: * Copyright (c) 2002 - 2008 Alkacon Software GmbH (http://www.alkacon.com)
010: *
011: * This library is free software; you can redistribute it and/or
012: * modify it under the terms of the GNU Lesser General Public
013: * License as published by the Free Software Foundation; either
014: * version 2.1 of the License, or (at your option) any later version.
015: *
016: * This library is distributed in the hope that it will be useful,
017: * but WITHOUT ANY WARRANTY; without even the implied warranty of
018: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: * Lesser General Public License for more details.
020: *
021: * For further information about Alkacon Software GmbH, please see the
022: * company website: http://www.alkacon.com
023: *
024: * For further information about OpenCms, please see the
025: * project website: http://www.opencms.org
026: *
027: * You should have received a copy of the GNU Lesser General Public
028: * License along with this library; if not, write to the Free Software
029: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
030: */
031:
032: package org.opencms.file.collectors;
033:
034: import org.opencms.file.CmsDataAccessException;
035: import org.opencms.file.CmsObject;
036: import org.opencms.main.CmsException;
037:
038: import java.util.List;
039:
040: /**
041: * A collector that generates list of {@link org.opencms.file.CmsResource} objects from the VFS.<p>
042: *
043: * @author Alexander Kandzior
044: *
045: * @version $Revision: 1.12 $
046: *
047: * @since 6.0.0
048: */
049: public interface I_CmsResourceCollector extends Comparable {
050:
051: /**
052: * Returns a list of all collector names (Strings) this collector implementation supports.<p>
053: *
054: * @return a list of all collector names this collector implementation supports
055: */
056: List getCollectorNames();
057:
058: /**
059: * Returns the link that must be executed when a user clicks on the direct edit
060: * "new" button on a list created by the default collector.<p>
061: *
062: * If this method returns <code>null</code>,
063: * it indicated that the selected collector implementation does not support a "create link",
064: * and so no "new" button will should shown on lists generated with this collector.<p>
065: *
066: * @param cms the current CmsObject
067: *
068: * @return the link to execute after a "new" button was clicked
069: *
070: * @throws CmsException if something goes wrong
071: * @throws CmsDataAccessException if the parameter attribute of the corresponding collector tag is invalid
072: * @see #getCreateParam(CmsObject, String, String)
073: *
074: */
075: String getCreateLink(CmsObject cms) throws CmsException,
076: CmsDataAccessException;
077:
078: /**
079: * Returns the link that must be executed when a user clicks on the direct edit
080: * "new" button on a list created by the named collector.<p>
081: *
082: * If this method returns <code>null</code>,
083: * it indicated that the selected collector implementation does not support a "create link",
084: * and so no "new" button will should shown on lists generated with this collector.<p>
085: *
086: * @param cms the current CmsObject
087: * @param collectorName the name of the collector to use
088: * @param param an optional collector parameter
089: *
090: * @return the link to execute after a "new" button was clicked
091: *
092: * @throws CmsException if something goes wrong
093: * @throws CmsDataAccessException if the parameter attribute of the corresponding collector tag is invalid
094: * @see #getCreateParam(CmsObject, String, String)
095: *
096: */
097: String getCreateLink(CmsObject cms, String collectorName,
098: String param) throws CmsException, CmsDataAccessException;
099:
100: /**
101: * Returns the default parameter that must be passed to the
102: * {@link #getCreateLink(CmsObject, String, String)} method.<p>
103: *
104: * If this method returns <code>null</code>,
105: * it indicates that the selected collector implementation does not support a "create link",
106: * and so no "new" button will should shown on lists generated with this collector.<p>
107: *
108: * @param cms the current CmsObject
109: *
110: * @return the parameter that will be passed to the {@link #getCreateLink(CmsObject, String, String)} method, or null
111: *
112: * @throws CmsDataAccessException if the param attrib of the corresponding collector tag is invalid
113: *
114: * @see #getCreateLink(CmsObject, String, String)
115: */
116: String getCreateParam(CmsObject cms) throws CmsDataAccessException;
117:
118: /**
119: * Returns the parameter that must be passed to the
120: * {@link #getCreateLink(CmsObject, String, String)} method.<p>
121: *
122: * If this method returns <code>null</code>,
123: * it indicates that the selected collector implementation does not support a "create link",
124: * and so no "new" button will should shown on lists generated with this collector.<p>
125: *
126: * @param cms the current CmsObject
127: * @param collectorName the name of the collector to use
128: * @param param an optional collector parameter from the current page context
129: *
130: * @return the parameter that will be passed to the {@link #getCreateLink(CmsObject, String, String)} method, or null
131: *
132: * @throws CmsDataAccessException if the parameter attribute of the corresponding collector tag is invalid
133: *
134: * @see #getCreateLink(CmsObject, String, String)
135: */
136: String getCreateParam(CmsObject cms, String collectorName,
137: String param) throws CmsDataAccessException;
138:
139: /**
140: * Returns the default collector name to use for collecting resources.<p>
141: *
142: * @return the default collector name
143: */
144: String getDefaultCollectorName();
145:
146: /**
147: * Returns the default collector parameter to use for collecting resources.<p>
148: *
149: * @return the default collector parameter
150: */
151: String getDefaultCollectorParam();
152:
153: /**
154: * Returns the "order weight" of this collector.<p>
155: *
156: * The "order weight" is important because two collector classes may provide a collector with
157: * the same name. If this is the case, the collector implementation with the higher
158: * order number "overrules" the lower order number class.<p>
159: *
160: * @return the "order weight" of this collector
161: */
162: int getOrder();
163:
164: /**
165: * Returns a list of {@link org.opencms.file.CmsResource} Objects that are
166: * gathered in the VFS using the default collector name and parameter.<p>
167: *
168: * @param cms the current CmsObject
169: *
170: * @return a list of CmsXmlContent objects
171: *
172: * @throws CmsException if something goes wrong
173: * @throws CmsDataAccessException if the parameter attribute of the corresponding collector tag is invalid
174: */
175: List getResults(CmsObject cms) throws CmsDataAccessException,
176: CmsException;
177:
178: /**
179: * Returns a list of {@link org.opencms.file.CmsResource} Objects that are
180: * gathered in the VFS using the named collector.<p>
181: *
182: * @param cms the current CmsObject
183: * @param collectorName the name of the collector to use
184: * @param param an optional collector parameter
185: *
186: * @return a list of CmsXmlContent objects
187: *
188: * @throws CmsException if something goes wrong
189: * @throws CmsDataAccessException if the parameter attribute of the corresponding collector tag is invalid
190: */
191: List getResults(CmsObject cms, String collectorName, String param)
192: throws CmsDataAccessException, CmsException;
193:
194: /**
195: * Sets the default collector name to use for collecting resources.<p>
196: *
197: * @param collectorName the default collector name
198: */
199: void setDefaultCollectorName(String collectorName);
200:
201: /**
202: * Sets the default collector parameter to use for collecting resources.<p>
203: *
204: * @param param the default collector parameter
205: */
206: void setDefaultCollectorParam(String param);
207:
208: /**
209: * Sets the "order weight" of this collector.<p>
210: *
211: * @param order the order weight to set
212: *
213: * @see #getOrder()
214: */
215: void setOrder(int order);
216: }
|