01 
02 /*
03  *  JScripter Simulation 1.0 - For Java To Script
04  *  Copyright (C) 2008-2011  J.J.Liu<jianjunliu@126.com> <http://www.jscripter.org>
05  *  
06  *  This program is free software: you can redistribute it and/or modify
07  *  it under the terms of the GNU Affero General Public License as published by
08  *  the Free Software Foundation, either version 3 of the License, or
09  *  (at your option) any later version.
10  *  
11  *  This program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *  GNU Affero General Public License for more details.
15  *  
16  *  You should have received a copy of the GNU Affero General Public License
17  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 package org.jscripter.sim.client;
21 
22 final class JseFunctionW<T> extends JseFunction<T>
23 {
24     private final Generic<T> rWrapper;
25 
26     public JseFunctionW(JseObject var, Generic<T> rWrapper) {
27         super(var);
28         this.rWrapper = rWrapper;
29     }
30     public JseFunctionW(JseObject var, JseFunctionW<T> other) {
31         this(var, other.rWrapper);
32     }
33 
34     @Override
35     public final JseFunctionW<T> valueOf() {
36         return new JseFunctionW<T>((JseObject)unwrap().valueOf(), rWrapper);
37     }
38 
39     @SuppressWarnings("unchecked")
40     @Override
41     protected final T cast(Object o) {
42         return rWrapper != null ? rWrapper.wrap(o) : (T)o;
43     }
44 }