comparison src/luan/LuanJavaFunction.java @ 157:1de3e4a6e82d

remove LuanJavaFunction.RTN_NUMBER_ARRAY; add request.java and response.java; convert java Object[] members to List; let LuanState.eval() take env; improve web_run.luan; rename LuanParser.JspExpressions to TemplateExpressions and add TemplateStmt; git-svn-id: https://luan-java.googlecode.com/svn/trunk@158 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Wed, 18 Jun 2014 21:07:11 +0000
parents 0594c132888b
children
comparison
equal deleted inserted replaced
156:925ba2d59b9d 157:1de3e4a6e82d
169 @Override public Object convert(Object obj) { 169 @Override public Object convert(Object obj) {
170 return obj; 170 return obj;
171 } 171 }
172 }; 172 };
173 173
174 private static final RtnConverter RTN_NUMBER_ARRAY = new RtnConverter() {
175 @Override public Object convert(Object obj) {
176 if( obj == null )
177 return null;
178 Object[] rtn = new Object[Array.getLength(obj)];
179 for( int i=0; i<rtn.length; i++ ) {
180 rtn[i] = Array.get(obj,i);
181 }
182 return rtn;
183 }
184 };
185
186 private static RtnConverter getRtnConverter(JavaMethod m) { 174 private static RtnConverter getRtnConverter(JavaMethod m) {
187 Class<?> rtnType = m.getReturnType(); 175 Class<?> rtnType = m.getReturnType();
188 if( rtnType == Void.TYPE ) 176 if( rtnType == Void.TYPE )
189 return RTN_NOTHING; 177 return RTN_NOTHING;
190 if( rtnType.isArray() && isNumber(rtnType.getComponentType()) )
191 return RTN_NUMBER_ARRAY;
192 return RTN_SAME; 178 return RTN_SAME;
193 } 179 }
194 180
195 private static boolean isNumber(Class<?> rtnType) { 181 private static boolean isNumber(Class<?> rtnType) {
196 return rtnType == Short.TYPE 182 return rtnType == Short.TYPE