/**
* Copyright (c) 2009 Juwi MacMillan Group GmbH
*
* 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 de.juwimm.cms.plugins.server;
import java.util.Date;
import org.xml.sax.ContentHandler;
/**
* @author <a href="mailto:michael.meyer@juwimm.com">Michael Meyer</a><br/>
*
*/
public interface TizzitPlugin extends ContentHandler {
/**
* This method will be called if the plugin has got all its configurational
* stuff through the sax events.
* It depends on the plugin, if it is willing to react on this method call -
* convinient method would be to fire up right now the sax events which
* are containing the xhtml output.
*/
public void processContent();
/**
* Diese Methode soll verwendet werden, um das Plugin zu konfigurieren.
*
* @param request Contains the HTTPRequest
* @param parent The parent-ContentHandler to submit the SAX-streamed output of the plugin
* @param uniquePageId The uniquePageId (internal: viewComponentId) of the webpage where this
* plugin has been called. Can be used to find out from which page this plugin has been called or
* to save into a database or to read out by this id from the database.
*/
public void configurePlugin(Request request, Response response, ContentHandler parent, Integer uniquePageId);
/**
* Is necessary to find out if the page containing this plugin can be cached
* @return
*/
public boolean isCacheable();
/**
* Will only be called if the actual plugin is cacheable. In this case the module should
* return a guilty modified date, not a null value.
* @return
*/
public Date getLastModifiedDate();
}