All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.ajax4jsf.framework.resource.TemplateCSSResource 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.io.InputStream;
import java.util.Date;
import java.util.Map;

import javax.faces.FacesException;
import javax.faces.context.FacesContext;


/**
 * Class for create and send resources from template ( at most, used for CSS files )
 * @author shura (latest modification by $Author: alexsmirnov $)
 * @version $Revision: 1.7 $ $Date: 2006/09/26 18:56:29 $
 *
 */
public class TemplateCSSResource implements InternetResource {
	 
	private String templateName;
	private InternetResource _resource;
	private static TemplateCSSRenderer templateCSSRenderer = new TemplateCSSRenderer();

	public TemplateCSSResource(){
		
	}
	/**
	 * @param templateName
	 */
	public TemplateCSSResource(String templateName) {
		super();
		setPath(templateName);
	}
	/**
	 * @param templateName
	 * @throws FacesException
	 */
	public void setPath(String templateName) throws FacesException {
		// remove leaded / - as need for ClassLoader.getResource call.
		this.templateName = templateName.startsWith("/")?templateName.substring(1):templateName;
		// Self-register resource in system.
		_resource = InternetResourceBuilder.getInstance().createResource(null,this.templateName);
		_resource.setRenderer(templateCSSRenderer);
		try {
			// Attempt to compile template at init time. Due to client-side caching,
			// without registering resources requests can be not call rendering template.
			templateCSSRenderer.getTemplate(_resource, null);
		} catch (Exception e) {
			// Do nothing - template will be compiled at rendering time.
			// TODO log error.
		}
	}

	/**
	 * @param context
	 * @param data
	 * @param attributes
	 * @throws IOException
	 * @see org.ajax4jsf.framework.resource.InternetResource#encode(javax.faces.context.FacesContext, java.lang.Object, java.util.Map)
	 */
	public void encode(FacesContext context, Object data, Map attributes) throws IOException {
		_resource.encode(context, data, attributes);
	}

	/**
	 * @param context
	 * @param data
	 * @throws IOException
	 * @see org.ajax4jsf.framework.resource.InternetResource#encode(javax.faces.context.FacesContext, java.lang.Object)
	 */
	public void encode(FacesContext context, Object data) throws IOException {
		_resource.encode(context, data);
	}

	/**
	 * @param context
	 * @param component
	 * @param attrs
	 * @throws IOException
	 * @see org.ajax4jsf.framework.resource.InternetResource#encodeBegin(javax.faces.context.FacesContext, java.lang.Object, java.util.Map)
	 */
	public void encodeBegin(FacesContext context, Object component, Map attrs) throws IOException {
		_resource.encodeBegin(context, component, attrs);
	}

	/**
	 * @param context
	 * @param component
	 * @throws IOException
	 * @see org.ajax4jsf.framework.resource.InternetResource#encodeEnd(javax.faces.context.FacesContext, java.lang.Object)
	 */
	public void encodeEnd(FacesContext context, Object component) throws IOException {
		_resource.encodeEnd(context, component);
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getContentLength()
	 */
	public int getContentLength() {
		return _resource.getContentLength();
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getContentType()
	 */
	public String getContentType() {
		return _resource.getContentType();
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getExpired()
	 */
	public Date getExpired() {
		return _resource.getExpired();
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getKey()
	 */
	public String getKey() {
		return _resource.getKey();
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getLastModified()
	 */
	public Date getLastModified() {
		return _resource.getLastModified();
	}

	/**
	 * @param key
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getProperty(java.lang.Object)
	 */
	public Object getProperty(Object key) {
		return _resource.getProperty(key);
	}

	/**
	 * @param context
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getResourceAsStream(org.ajax4jsf.framework.resource.ResourceContext)
	 */
	public InputStream getResourceAsStream(ResourceContext context) {
		return _resource.getResourceAsStream(context);
	}

	/**
	 * @param context
	 * @param data
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getUri(javax.faces.context.FacesContext, java.lang.Object)
	 */
	public String getUri(FacesContext context, Object data) {
		return _resource.getUri(context, data);
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#isCacheable()
	 */
	public boolean isCacheable() {
		return _resource.isCacheable();
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#isSessionAware()
	 */
	public boolean isSessionAware() {
		return _resource.isSessionAware();
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#requireFacesContext()
	 */
	public boolean requireFacesContext() {
		return _resource.requireFacesContext();
	}

	/**
	 * @param context
	 * @throws IOException
	 * @see org.ajax4jsf.framework.resource.InternetResource#send(org.ajax4jsf.framework.resource.ResourceContext)
	 */
	public void send(ResourceContext context) throws IOException {
		_resource.send(context);
	}

	/**
	 * @param response
	 * @see org.ajax4jsf.framework.resource.InternetResource#sendHeaders(org.ajax4jsf.framework.resource.ResourceContext)
	 */
	public void sendHeaders(ResourceContext response) {
		_resource.sendHeaders(response);
	}

	/**
	 * @param key
	 * @see org.ajax4jsf.framework.resource.InternetResource#setKey(java.lang.String)
	 */
	public void setKey(String key) {
		_resource.setKey(key);
	}

	/**
	 * @param key
	 * @param value
	 * @see org.ajax4jsf.framework.resource.InternetResource#setProperty(java.lang.Object, java.lang.Object)
	 */
	public void setProperty(Object key, Object value) {
		_resource.setProperty(key, value);
	}

	/**
	 * @param renderer
	 * @see org.ajax4jsf.framework.resource.InternetResource#setRenderer(org.ajax4jsf.framework.resource.ResourceRenderer)
	 */
	public void setRenderer(ResourceRenderer renderer) {
		_resource.setRenderer(renderer);
	}

	/**
	 * @return
	 * @see org.ajax4jsf.framework.resource.InternetResource#getRenderer()
	 */
	public ResourceRenderer getRenderer() {
		return _resource.getRenderer();
	}

	/**
	 * @param cacheable
	 * @see org.ajax4jsf.framework.resource.InternetResource#setCacheable(boolean)
	 */
	public void setCacheable(boolean cacheable) {
		_resource.setCacheable(cacheable);
	}

	/**
	 * @param expired
	 * @see org.ajax4jsf.framework.resource.InternetResource#setExpired(java.util.Date)
	 */
	public void setExpired(Date expired) {
		_resource.setExpired(expired);
	}

	/**
	 * @param lastModified
	 * @see org.ajax4jsf.framework.resource.InternetResource#setLastModified(java.util.Date)
	 */
	public void setLastModified(Date lastModified) {
		_resource.setLastModified(lastModified);
	}

	/**
	 * @param sessionAware
	 * @see org.ajax4jsf.framework.resource.InternetResource#setSessionAware(boolean)
	 */
	public void setSessionAware(boolean sessionAware) {
		_resource.setSessionAware(sessionAware);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy