/* * Copyright 2000-2001,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.jetspeed.portal.security.portlets; //jetspeed import org.apache.jetspeed.portal.Portlet; import org.apache.jetspeed.portal.expire.Expire; import org.apache.jetspeed.services.portletcache.Cacheable; // Turbine import org.apache.turbine.services.cache.CachedObject; /** <p> This object is used to wrap a Portlet, ensuring that access control rules are enforced. </p> @author <A HREF="mailto:sgala@apache.org">Santiago Gala</A> @version $Id: CacheablePortletWrapper.java,v 1.4 2004/02/23 03:27:46 jford Exp $ */ public class CacheablePortletWrapper extends PortletWrapper implements /*FIXME*/Cacheable { /* * The cacheable associated with us */ private Cacheable wrappedCacheable = null; public CacheablePortletWrapper( Portlet inner ) { super( inner ); if( inner instanceof Cacheable ) { wrappedCacheable = (Cacheable) inner; } else { //Log error or throw exception } } //Cacheable interface /** */ public boolean isCacheable() { return wrappedCacheable.isCacheable(); } /** */ public void setCacheable(boolean cacheable) { wrappedCacheable.setCacheable( cacheable ); } /** */ public Expire getExpire() { return wrappedCacheable.getExpire(); } /** */ public final String getHandle() { return wrappedCacheable.getHandle(); } /** */ public final void setHandle( String handle ) { wrappedCacheable.setHandle( handle ); } /** @see Cacheable#getExpirationMillis */ public Long getExpirationMillis() { return wrappedCacheable.getExpirationMillis(); } /** * @see Cacheable#setExpirationMillis */ public void setExpirationMillis( long expirationMillis) { wrappedCacheable.setExpirationMillis( expirationMillis ); } /** * This allows the associated CachedObject to be * known. One use of the <CODE>cachedObject</CODE> is to * set the expiration time * * @param cachedObject Handle to the CachedObject */ public void setCachedObject(CachedObject cachedObject) { wrappedCacheable.setCachedObject( cachedObject ); } }