Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/sun/facelets/el/TagValueExpression.java


1   /**
2    * Licensed under the Common Development and Distribution License,
3    * you may not use this file except in compliance with the License.
4    * You may obtain a copy of the License at
5    * 
6    *   http://www.sun.com/cddl/
7    *   
8    * Unless required by applicable law or agreed to in writing, software
9    * distributed under the License is distributed on an "AS IS" BASIS,
10   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
11   * implied. See the License for the specific language governing
12   * permissions and limitations under the License.
13   */
14  
15  package com.sun.facelets.el;
16  
17  import java.io.Externalizable;
18  import java.io.IOException;
19  import java.io.ObjectInput;
20  import java.io.ObjectOutput;
21  
22  import javax.el.ELContext;
23  import javax.el.ELException;
24  import javax.el.PropertyNotFoundException;
25  import javax.el.PropertyNotWritableException;
26  import javax.el.ValueExpression;
27  
28  import com.sun.facelets.tag.TagAttribute;
29  
30  /**
31   * 
32   * 
33   * @author Jacob Hookom
34   * @version $Id: TagValueExpression.java,v 1.6 2005/08/24 04:38:57 jhook Exp $
35   */
36  public final class TagValueExpression extends ValueExpression implements
37          Externalizable {
38  
39      private static final long serialVersionUID = 1L;
40  
41      private ValueExpression orig;
42  
43      private String attr;
44  
45      public TagValueExpression() {
46          super();
47      }
48  
49      public TagValueExpression(TagAttribute attr, ValueExpression orig) {
50          this.attr = attr.toString();
51          this.orig = orig;
52      }
53  
54      public Class getExpectedType() {
55          return this.orig.getExpectedType();
56      }
57  
58      public Class getType(ELContext context) {
59          try {
60              return this.orig.getType(context);
61          } catch (PropertyNotFoundException pnfe) {
62              throw new PropertyNotFoundException(this.attr + ": "
63                      + pnfe.getMessage(), pnfe.getCause());
64          } catch (ELException e) {
65              throw new ELException(this.attr + ": " + e.getMessage(), e.getCause());
66          }
67      }
68  
69      public Object getValue(ELContext context) {
70          try {
71              return this.orig.getValue(context);
72          } catch (PropertyNotFoundException pnfe) {
73              throw new PropertyNotFoundException(this.attr + ": "
74                      + pnfe.getMessage(), pnfe.getCause());
75          } catch (ELException e) {
76              throw new ELException(this.attr + ": " + e.getMessage(), e.getCause());
77          }
78      }
79  
80      public boolean isReadOnly(ELContext context) {
81          try {
82              return this.orig.isReadOnly(context);
83          } catch (PropertyNotFoundException pnfe) {
84              throw new PropertyNotFoundException(this.attr + ": "
85                      + pnfe.getMessage(), pnfe.getCause());
86          } catch (ELException e) {
87              throw new ELException(this.attr + ": " + e.getMessage(), e.getCause());
88          }
89      }
90  
91      public void setValue(ELContext context, Object value) {
92          try {
93              this.orig.setValue(context, value);
94          } catch (PropertyNotFoundException pnfe) {
95              throw new PropertyNotFoundException(this.attr + ": "
96                      + pnfe.getMessage(), pnfe.getCause());
97          } catch (PropertyNotWritableException pnwe) {
98              throw new PropertyNotWritableException(this.attr + ": "
99                      + pnwe.getMessage(), pnwe.getCause());
100         } catch (ELException e) {
101             throw new ELException(this.attr + ": " + e.getMessage(), e.getCause());
102         }
103     }
104 
105     public boolean equals(Object obj) {
106         return this.orig.equals(obj);
107     }
108 
109     public String getExpressionString() {
110         return this.orig.getExpressionString();
111     }
112 
113     public int hashCode() {
114         return this.orig.hashCode();
115     }
116 
117     public boolean isLiteralText() {
118         return this.orig.isLiteralText();
119     }
120 
121     public void readExternal(ObjectInput in) throws IOException,
122             ClassNotFoundException {
123         this.orig = (ValueExpression) in.readObject();
124         this.attr = in.readUTF();
125     }
126 
127     public void writeExternal(ObjectOutput out) throws IOException {
128         out.writeObject(this.orig);
129         out.writeUTF(this.attr);
130     }
131 
132     public String toString() {
133         return this.attr + ": " + this.orig;
134     }
135 }