Package org.apache.pluto.tags

Source Code of org.apache.pluto.tags.ResourceURLTag286

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.pluto.tags;


import java.util.Map;

import javax.portlet.BaseURL;
import javax.portlet.PortletConfig;
import javax.portlet.PortletResponse;
import javax.portlet.RenderResponse;
import javax.portlet.ResourceResponse;
import javax.portlet.ResourceURL;
import javax.servlet.jsp.JspException;


/**
* A tag handler for the <CODE>resourceURL</CODE> tag as defined in the JSR 286.
* Creates a url that points to the current Portlet and triggers a
* resource request with the supplied parameters.
*
* @version 2.0
*/

public class ResourceURLTag286 extends BaseURLTag {
 
  private static final long serialVersionUID = 286L
 
  private String id = null;
 
  private String cachability = null;
 
  private ResourceURL resourceURL = null;
 

  public ResourceURLTag286() {
    super();
    this.escapeXml = true;
  }
 

  /* (non-Javadoc)
   * @see org.apache.pluto.tags.BaseURLTag#doStartTag()
   */
  @Override
  public int doStartTag() throws JspException {               
       
       PortletConfig portletConfig =
           (PortletConfig) pageContext.getRequest().getAttribute(Constants.PORTLET_CONFIG);
       Map<String,String[]> containerRuntimeOptions = portletConfig.getContainerRuntimeOptions();
       if (containerRuntimeOptions != null){
           String[] result = containerRuntimeOptions.get(Constants.ESCAPE_XML_RUNTIME_OPTION);
           if (result != null){
               if (result.length > 0){
                   escapeXml = Boolean.parseBoolean(result[0]);
               }
           }
       }
          
        PortletResponse portletResponse = (PortletResponse) pageContext.getRequest()
            .getAttribute(Constants.PORTLET_RESPONSE);
       
        if (portletResponse != null) {
         
          ResourceURL resourceURL = createResourceURL(portletResponse);
                
            if(id != null){
              resourceURL.setResourceID(id);
            }

            if(cachability != null){
              try{
                resourceURL.setCacheability(cachability);
              }
              catch(IllegalArgumentException e){
                throw new JspException(e);
              }
              catch(IllegalStateException e){
                throw new JspException(e);
              }
            }
           
            setUrl(resourceURL);
        }
       
        return super.doStartTag();
    }
 
    
  /**
   * @return the id
   */
  public String getId() {
    return id;
  }


  /**
   * @param id the id to set
   */
  public void setId(String id) {
    this.id = id;
  }


  /**
   * @return the cachability
   */
  public String getCachability() {
    return cachability;
  }


  /**
   * @param cachability the cachability to set
   */
  public void setCachability(String cachability) {
    this.cachability = cachability;
  }
 

    /* (non-Javadoc)
     * @see org.apache.pluto.tags.BaseURLTag#getUrl()
     */
    @Override
    protected ResourceURL getUrl() {
        return resourceURL;
    }
 
  
    /* (non-Javadoc)
     * @see org.apache.pluto.tags.BaseURLTag#setUrl(javax.portlet.BaseURL)
     */
    @Override
    protected void setUrl(BaseURL url) {
        this.resourceURL = (ResourceURL)url;
    }
 
   
  /**
   * Creates a resourceURL.
   *
   * @param portletResponse
   * @return a resourceURL
   * @throws JspException
   */
  protected ResourceURL createResourceURL(PortletResponse portletResponse) throws JspException{
    ResourceURL result = null;
    if(portletResponse instanceof RenderResponse){
        result = ((RenderResponse)portletResponse).createResourceURL()
      }
      else if(portletResponse instanceof ResourceResponse){
        result = ((ResourceResponse)portletResponse).createResourceURL();
     
      else{
        throw new JspException();
      }
    return result;
  }
}
TOP

Related Classes of org.apache.pluto.tags.ResourceURLTag286

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.