View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.myfaces.trinidad.component;
20  
21  import javax.el.ELException;
22  import javax.el.MethodExpression;
23  import javax.el.MethodInfo;
24  
25  import javax.faces.context.FacesContext;
26  import javax.faces.el.EvaluationException;
27  import javax.faces.el.MethodBinding;
28  
29  @Deprecated
30  class MethodExpressionMethodBinding extends MethodBinding
31  {
32    public MethodExpressionMethodBinding(MethodExpression me)
33    {
34      _me = me;
35    }
36  
37    public MethodExpression getMethodExpression()
38    {
39      return _me;
40    }
41    
42    public Object invoke(FacesContext facesContext, Object[] params)
43    {
44      try
45      {
46        return _me.invoke(facesContext.getELContext(), params);
47      }
48      // Convert EL exceptions into EvaluationExceptions
49      catch (ELException ee)
50      {
51        throw new EvaluationException(ee.getMessage(), ee.getCause());
52      }
53    }
54  
55    public Class getType(FacesContext facesContext)
56    {
57      MethodInfo mi = _me.getMethodInfo(facesContext.getELContext());
58      if (mi == null)
59        return null;
60  
61      return mi.getReturnType();
62    }
63  
64    public String getExpressionString()
65    {
66      return _me.getExpressionString();
67    }
68    
69    private final MethodExpression _me;
70  }