org.ajax4jsf.framework.resource.ResourceRenderer Maven / Gradle / Ivy
/**
* Licensed under the Common Development and Distribution License,
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.sun.com/cddl/
*
* 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.ajax4jsf.framework.resource;
import java.io.IOException;
import java.util.Map;
import javax.faces.context.FacesContext;
/**
* "Brige" for concrete resource types - images, scripts, styles.
* @author [email protected] (latest modification by $Author: alexsmirnov $)
* @version $Revision: 1.3 $ $Date: 2006/09/04 10:47:47 $
*
*/
public interface ResourceRenderer {
/**
* @return content type ( image/jpeg , text/javascript etc. ) for given type.
*/
String getContentType();
/**
* Encode concrete HTML element for resource.
* @param context
* @param data
* @throws IOException
*/
void encode(InternetResource resource, FacesContext context, Object data) throws IOException;
/**
* Encode concrete HTML element for resource.
* @param context
* @param data
* @throws IOException
*/
void encode(InternetResource resource, FacesContext context, Object data, Map attributes) throws IOException;
void encodeBegin(InternetResource base, FacesContext context, Object data, Map attributes) throws IOException;
void encodeEnd(InternetResource base, FacesContext context, Object data) throws IOException;
/**
* @return true, if resource must be rendered in faces request cicle.
*/
public boolean requireFacesContext();
/**
* Send incapsulated resource to client by {@link ResourceContext} .
* Perform any conversions, nessesary for this resources ( template interpretations, JavaScript conversions etc )
* @param context
* @return TODO
*/
public int send(InternetResource base,ResourceContext context) throws IOException;
/**
* Get data to build URI for given resource. Can be any Serialisable object,
* @param base TODO
* @return data for Store in URI/ Cache key.
*/
public Object getData(InternetResource base, FacesContext context, Object data);
}