KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > el > lang > FunctionMapperFactory


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
18 package org.apache.el.lang;
19
20 import java.lang.reflect.Method JavaDoc;
21
22 import javax.el.FunctionMapper;
23
24 /**
25  * @author Jacob Hookom [jacob@hookom.net]
26  * @version $Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: markt $
27  */

28 public class FunctionMapperFactory extends FunctionMapper {
29
30     protected FunctionMapperImpl memento = null;
31     protected FunctionMapper target;
32     
33     public FunctionMapperFactory(FunctionMapper mapper) {
34         if (mapper == null) {
35             throw new NullPointerException JavaDoc("FunctionMapper target cannot be null");
36         }
37         this.target = mapper;
38     }
39    
40     
41     /* (non-Javadoc)
42      * @see javax.el.FunctionMapper#resolveFunction(java.lang.String, java.lang.String)
43      */

44     public Method JavaDoc resolveFunction(String JavaDoc prefix, String JavaDoc localName) {
45         if (this.memento == null) {
46             this.memento = new FunctionMapperImpl();
47         }
48         Method JavaDoc m = this.target.resolveFunction(prefix, localName);
49         if (m != null) {
50             this.memento.addFunction(prefix, localName, m);
51         }
52         return m;
53     }
54     
55     public FunctionMapper create() {
56         return this.memento;
57     }
58
59 }
60
Popular Tags