001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.cocoon.portal.coplets.basket;
018:
019: import java.util.List;
020:
021: /**
022: * This is the manager for content-stores: baskets, briefcases and folders
023: * You can retrieve the current basket, briefcase or folder for the user
024: * from this manager.
025: *
026: * @version CVS $Id: BasketManager.java 433543 2006-08-22 06:22:54Z crossley $
027: */
028: public interface BasketManager {
029:
030: /** The component role */
031: String ROLE = BasketManager.class.getName();
032:
033: /** This key is used to store the current basket in the session */
034: String BASKET_KEY = BasketManager.class.getName() + "/Basket";
035:
036: /** This key is used to store the current briefcase in the session */
037: String BRIEFCASE_KEY = BasketManager.class.getName() + "/Briefcase";
038:
039: /** This key is used to store the current folder in the session */
040: String FOLDER_KEY = BasketManager.class.getName() + "/Folder";
041:
042: /** This key is used to store all briefcases in the session (of the admin) */
043: String ALL_BRIEFCASES_KEY = BasketManager.class.getName() + "/All";
044:
045: /**
046: * Return the basket of the current user
047: */
048: Basket getBasket();
049:
050: /**
051: * Return the briefcase of the current user
052: */
053: Briefcase getBriefcase();
054:
055: /**
056: * Return the folder of the current user
057: */
058: Folder getFolder();
059:
060: /**
061: * Return all briefcases.
062: * This is a list of {@link ContentStoreDescription} objects.
063: */
064: List getBriefcaseDescriptions();
065:
066: /**
067: * An action info consists of a name and a url
068: */
069: public static class ActionInfo {
070: public final String name;
071: public final String url;
072:
073: public ActionInfo(String n, String u) {
074: this .name = n;
075: this .url = u;
076: }
077: }
078:
079: /**
080: * Return all configured actions for a basket - this is a list of
081: * {@link ActionInfo}s.
082: */
083: List getBasketActions();
084:
085: /**
086: * Get the info
087: */
088: ActionInfo getBasketAction(String name);
089:
090: /**
091: * Return all configured actions for a briefcase - this is a list of
092: * {@link ActionInfo}s.
093: */
094: List getBriefcaseActions();
095:
096: /**
097: * Get the info
098: */
099: ActionInfo getBriefcaseAction(String name);
100:
101: void addBatch(ContentItem item, int frequencyInDays,
102: ActionInfo action);
103:
104: /**
105: * Update/save the content store
106: */
107: void update(ContentStore store);
108: }
|