comparison web/src/luan/modules/web/HttpServicer.java @ 325:78a6a71afbfd

use SimplyHTML git-svn-id: https://luan-java.googlecode.com/svn/trunk@326 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Tue, 03 Mar 2015 06:00:59 +0000
parents 1f6d828986b9
children 496d61b1fb5a
comparison
equal deleted inserted replaced
324:b24a35612947 325:78a6a71afbfd
51 DeepCloner cloner = new DeepCloner(); 51 DeepCloner cloner = new DeepCloner();
52 luan = cloner.deepClone(luan); 52 luan = cloner.deepClone(luan);
53 session.putValue("luan",luan); 53 session.putValue("luan",luan);
54 } 54 }
55 tbl = (LuanTable)PackageLuan.require(luan,modName); 55 tbl = (LuanTable)PackageLuan.require(luan,modName);
56 fn = (LuanFunction)tbl.get("service"); 56 fn = getService(luan,tbl);
57 } else { 57 } else {
58 fn = (LuanFunction)tbl.get("service"); 58 fn = getService(luan,tbl);
59 if( fn == null )
60 throw luan.exception( "function 'service' is not defined" );
61 DeepCloner cloner = new DeepCloner(); 59 DeepCloner cloner = new DeepCloner();
62 luan = cloner.deepClone(luan); 60 luan = cloner.deepClone(luan);
63 fn = cloner.get(fn); 61 fn = cloner.get(fn);
64 } 62 }
65 } 63 }
87 // System.out.println("caught LuanExitException"); 85 // System.out.println("caught LuanExitException");
88 } 86 }
89 return true; 87 return true;
90 } 88 }
91 89
90 private static LuanFunction getService(LuanState luan,LuanTable tbl)
91 throws LuanException
92 {
93 Object service = tbl.get("service");
94 if( service == null )
95 throw luan.exception( "function 'service' is not defined" );
96 if( !(service instanceof LuanFunction) )
97 throw luan.exception( "'service' must be a function but is a " + Luan.type(service) );
98 return (LuanFunction)service;
99 }
92 100
93 101
94 private final HttpServletRequest request; 102 private final HttpServletRequest request;
95 private final HttpServletResponse response; 103 private final HttpServletResponse response;
96 // private PrintWriter writer = null; 104 // private PrintWriter writer = null;