Save This Page
Home » apache-tomcat-6.0.16-src » org.apache » jasper » el » [javadoc | source]
    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    * 
    9    *      http://www.apache.org/licenses/LICENSE-2.0
   10    * 
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    */
   17   package org.apache.jasper.el;
   18   
   19   import java.io.Externalizable;
   20   import java.io.IOException;
   21   import java.io.ObjectInput;
   22   import java.io.ObjectOutput;
   23   
   24   import javax.el.ELContext;
   25   import javax.el.ELException;
   26   import javax.el.PropertyNotFoundException;
   27   import javax.el.PropertyNotWritableException;
   28   import javax.el.ValueExpression;
   29   
   30   /**
   31    * Wrapper for providing context to ValueExpressions
   32    * 
   33    * @author Jacob Hookom
   34    */
   35   public final class JspValueExpression extends ValueExpression implements
   36           Externalizable {
   37   
   38       private ValueExpression target;
   39   
   40       private String mark;
   41   
   42       public JspValueExpression() {
   43           super();
   44       }
   45   
   46       public JspValueExpression(String mark, ValueExpression target) {
   47           this.target = target;
   48           this.mark = mark;
   49       }
   50   
   51       public Class<?> getExpectedType() {
   52           return this.target.getExpectedType();
   53       }
   54   
   55       public Class<?> getType(ELContext context) throws NullPointerException,
   56               PropertyNotFoundException, ELException {
   57           try {
   58               return this.target.getType(context);
   59           } catch (PropertyNotFoundException e) {
   60               if (e instanceof JspPropertyNotFoundException) throw e;
   61               throw new JspPropertyNotFoundException(this.mark, e);
   62           } catch (ELException e) {
   63               if (e instanceof JspELException) throw e;
   64               throw new JspELException(this.mark, e);
   65           }
   66       }
   67   
   68       public boolean isReadOnly(ELContext context) throws NullPointerException,
   69               PropertyNotFoundException, ELException {
   70           try {
   71               return this.target.isReadOnly(context);
   72           } catch (PropertyNotFoundException e) {
   73               if (e instanceof JspPropertyNotFoundException) throw e;
   74               throw new JspPropertyNotFoundException(this.mark, e);
   75           } catch (ELException e) {
   76               if (e instanceof JspELException) throw e;
   77               throw new JspELException(this.mark, e);
   78           }
   79       }
   80   
   81       public void setValue(ELContext context, Object value)
   82               throws NullPointerException, PropertyNotFoundException,
   83               PropertyNotWritableException, ELException {
   84           try {
   85               this.target.setValue(context, value);
   86           } catch (PropertyNotWritableException e) {
   87               if (e instanceof JspPropertyNotWritableException) throw e;
   88               throw new JspPropertyNotWritableException(this.mark, e);
   89           } catch (PropertyNotFoundException e) {
   90               if (e instanceof JspPropertyNotFoundException) throw e;
   91               throw new JspPropertyNotFoundException(this.mark, e);
   92           } catch (ELException e) {
   93               if (e instanceof JspELException) throw e;
   94               throw new JspELException(this.mark, e);
   95           }
   96       }
   97   
   98       public Object getValue(ELContext context) throws NullPointerException,
   99               PropertyNotFoundException, ELException {
  100           try {
  101               return this.target.getValue(context);
  102           } catch (PropertyNotFoundException e) {
  103               if (e instanceof JspPropertyNotFoundException) throw e;
  104               throw new JspPropertyNotFoundException(this.mark, e);
  105           } catch (ELException e) {
  106               if (e instanceof JspELException) throw e;
  107               throw new JspELException(this.mark, e);
  108           }
  109       }
  110   
  111       public boolean equals(Object obj) {
  112           return this.target.equals(obj);
  113       }
  114   
  115       public int hashCode() {
  116           return this.target.hashCode();
  117       }
  118   
  119       public String getExpressionString() {
  120           return this.target.getExpressionString();
  121       }
  122   
  123       public boolean isLiteralText() {
  124           return this.target.isLiteralText();
  125       }
  126   
  127       public void writeExternal(ObjectOutput out) throws IOException {
  128           out.writeUTF(this.mark);
  129           out.writeObject(this.target);
  130       }
  131   
  132       public void readExternal(ObjectInput in) throws IOException,
  133               ClassNotFoundException {
  134           this.mark = in.readUTF();
  135           this.target = (ValueExpression) in.readObject();
  136       }
  137   }

Save This Page
Home » apache-tomcat-6.0.16-src » org.apache » jasper » el » [javadoc | source]