blob: dfe8f685593394ea89604b8b9084f39bb6802c01 [file] [log] [blame]
/*
* Copyright 1999-2002,2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.cocoon.portal.coplet.adapter;
import org.apache.avalon.framework.component.Component;
import org.apache.cocoon.portal.coplet.CopletInstanceData;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
/**
* This is the "portlet" implementation.
* A coplet adapter is the interface between the portal engine and
* the implementation of a coplet.
* Usually there is only one instance of an adapter (= singleton).
* Whenever an instance of this coplet is rendered, the
* adapter is invoked to render the coplet.
*
* The behaviour of the adapter can be controlled by a set of
* parameters. In general, the coplet base data defines the default
* for all coplets, but the value can be overriden by the coplet
* data. The coplet base data stores the information in the coplet
* config map whereas the coplet data stores them in the attributes.
* Apart from that the keys and the data types are the same.
*
* Configuration:
*
* buffer - A boolean value (default is false) that defines if the
* xml data stream from the coplet is buffered. If the stream
* is not buffered and an exception occurs then the whole
* portal will be rendered invalid.
* timeout - An integer value (default is endless) that defines the
* maximum time (in seconds) the coplet has to deliver it's content.
* If the timeout is reached the content is assumed as not
* gettable. If you set a timeout, the content is automatically
* buffered.
*
* @author <a href="mailto:cziegeler@s-und-n.de">Carsten Ziegeler</a>
* @author <a href="mailto:volker.schmitt@basf-it-services.com">Volker Schmitt</a>
*
* @version CVS $Id: CopletAdapter.java,v 1.7 2004/03/05 13:02:10 bdelacretaz Exp $
*/
public interface CopletAdapter
extends Component {
String ROLE = CopletAdapter.class.getName();
/**
* Initialize the coplet
* This method is called immediately after a new instance is created.
* For each coplet, this method is only invoked once.
* @param coplet The coplet
*/
void init(CopletInstanceData coplet);
/**
* Destroy the coplet
* This method is invoked when a coplet instance will be destroyed
* For each coplet, this method is only invoked once.
* @param coplet
*/
void destroy(CopletInstanceData coplet);
/**
* Stream the content of the coplet
*/
void toSAX(CopletInstanceData coplet, ContentHandler contentHandler)
throws SAXException;
/**
* User logs in to a coplet
* This method is invoked when a user logs in for each coplet instance
* of the user
*/
void login(CopletInstanceData coplet);
/**
* User logs out from a coplet
* This method is invoked when a user logs out for each coplet instance
* of this user.
*/
void logout(CopletInstanceData coplet);
}