KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > el > lang > VariableMapperFactory


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the "License"). You may not use this file except
5  * in compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * glassfish/bootstrap/legal/CDDLv1.0.txt or
9  * https://glassfish.dev.java.net/public/CDDLv1.0.html.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * HEADER in each file and include the License file at
15  * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
16  * add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your
18  * own identifying information: Portions Copyright [yyyy]
19  * [name of copyright owner]
20  *
21  * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
22  */
package com.sun.el.lang;
23
24 import javax.el.ValueExpression;
25 import javax.el.VariableMapper;
26
27 public class VariableMapperFactory extends VariableMapper {
28
29     private final VariableMapper target;
30     private VariableMapper momento;
31     
32     public VariableMapperFactory(VariableMapper target) {
33         if (target == null) {
34             throw new NullPointerException JavaDoc("Target VariableMapper cannot be null");
35         }
36         this.target = target;
37     }
38     
39     public VariableMapper create() {
40         return this.momento;
41     }
42
43     public ValueExpression resolveVariable(String JavaDoc variable) {
44         ValueExpression expr = this.target.resolveVariable(variable);
45         if (expr != null) {
46             if (this.momento == null) {
47                 this.momento = new VariableMapperImpl();
48             }
49             this.momento.setVariable(variable, expr);
50         }
51         return expr;
52     }
53
54     public ValueExpression setVariable(String JavaDoc variable, ValueExpression expression) {
55         throw new UnsupportedOperationException JavaDoc("Cannot Set Variables on Factory");
56     }
57 }
58
Popular Tags