Mercurial Hosting > luan
diff web/src/luan/modules/web/HttpServicer.java @ 415:ce8e19567911
make LuanPropertyMeta a singleton
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 30 Apr 2015 06:04:17 -0600 |
parents | 8937263f59f6 |
children | 91af5337b9ae |
line wrap: on
line diff
--- a/web/src/luan/modules/web/HttpServicer.java Wed Apr 29 19:06:18 2015 -0600 +++ b/web/src/luan/modules/web/HttpServicer.java Thu Apr 30 06:04:17 2015 -0600 @@ -119,8 +119,8 @@ } private LuanTable requestTable() throws NoSuchMethodException { - LuanPropertyMeta meta = LuanPropertyMeta.newInstance(); - LuanTable tbl = meta.newTable(); + LuanTable tbl = LuanPropertyMeta.INSTANCE.newTable(); + LuanTable getters = LuanPropertyMeta.INSTANCE.getters(tbl); tbl.put("java",request); LuanTable parameters = new NameMeta() { @@ -128,7 +128,7 @@ return request.getParameter(name); } - @Override protected Iterator keys() { + @Override protected Iterator keys(LuanTable tbl) { return new EnumerationIterator(request.getParameterNames()); } /* @@ -145,7 +145,7 @@ return request.getHeader(name); } - @Override protected Iterator keys() { + @Override protected Iterator keys(LuanTable tbl) { return new EnumerationIterator(request.getHeaderNames()); } /* @@ -155,22 +155,22 @@ */ }.newTable(); tbl.put( "headers", headers ); - meta.getters().put( "method", new LuanJavaFunction( + getters.put( "method", new LuanJavaFunction( HttpServletRequest.class.getMethod( "getMethod" ), request ) ); - meta.getters().put( "path", new LuanJavaFunction( + getters.put( "path", new LuanJavaFunction( HttpServletRequest.class.getMethod( "getRequestURI" ), request ) ); - meta.getters().put( "server_name", new LuanJavaFunction( + getters.put( "server_name", new LuanJavaFunction( HttpServletRequest.class.getMethod( "getServerName" ), request ) ); - meta.getters().put( "url", new LuanJavaFunction( + getters.put( "url", new LuanJavaFunction( HttpServicer.class.getMethod( "getURL" ), this ) ); - meta.getters().put( "query_string", new LuanJavaFunction( + getters.put( "query_string", new LuanJavaFunction( HttpServicer.class.getMethod( "getQueryString" ), this ) ); - meta.getters().put( "remote_address", new LuanJavaFunction( + getters.put( "remote_address", new LuanJavaFunction( HttpServletRequest.class.getMethod( "getRemoteAddr" ), request ) ); LuanTable cookies = new LuanMeta() { @@ -182,7 +182,7 @@ return getCookieValue(request,name); } - @Override protected Iterator<Object> keys() { + @Override protected Iterator<Object> keys(LuanTable tbl) { return new Iterator<Object>() { final Cookie[] cookies = request.getCookies(); int i = 0; @@ -222,11 +222,10 @@ if( filename == null ) { value = new String(part.getBytes()); } else { - LuanPropertyMeta partMeta = LuanPropertyMeta.newInstance(); - LuanTable partTbl = partMeta.newTable(); + LuanTable partTbl = LuanPropertyMeta.INSTANCE.newTable(); partTbl.put("filename",filename); partTbl.put("content_type",part.getContentType()); - partMeta.getters().put( "content", new LuanFunction() { + LuanPropertyMeta.INSTANCE.getters(partTbl).put( "content", new LuanFunction() { @Override public Object call(LuanState luan,Object[] args) throws LuanException { try { InputStream in = part.getInputStream(); @@ -271,8 +270,9 @@ } private LuanTable responseTable() throws NoSuchMethodException { - LuanPropertyMeta meta = LuanPropertyMeta.newInstance(); - LuanTable tbl = meta.newTable(); + LuanTable tbl = LuanPropertyMeta.INSTANCE.newTable(); + LuanTable getters = LuanPropertyMeta.INSTANCE.getters(tbl); + LuanTable setters = LuanPropertyMeta.INSTANCE.setters(tbl); tbl.put("java",response); add( tbl, "send_redirect", String.class ); add( tbl, "send_error", Integer.TYPE, String.class ); @@ -282,7 +282,7 @@ return response.getHeader(name); } - @Override protected Iterator keys() { + @Override protected Iterator keys(LuanTable tbl) { return response.getHeaderNames().iterator(); } @@ -312,25 +312,25 @@ */ }.newTable(); tbl.put( "headers", headers ); - meta.getters().put( "content_type", new LuanJavaFunction( + getters.put( "content_type", new LuanJavaFunction( HttpServletResponse.class.getMethod( "getContentType" ), response ) ); - meta.setters().put( "content_type", new LuanJavaFunction( + setters.put( "content_type", new LuanJavaFunction( HttpServletResponse.class.getMethod( "setContentType", String.class ), response ) ); - meta.getters().put( "character_encoding", new LuanJavaFunction( + getters.put( "character_encoding", new LuanJavaFunction( HttpServletResponse.class.getMethod( "getCharacterEncoding" ), response ) ); - meta.setters().put( "character_encoding", new LuanJavaFunction( + setters.put( "character_encoding", new LuanJavaFunction( HttpServletResponse.class.getMethod( "setCharacterEncoding", String.class ), response ) ); add( tbl, "text_writer" ); add( tbl, "set_cookie", String.class, String.class, Boolean.TYPE, String.class ); add( tbl, "remove_cookie", String.class, String.class ); - meta.getters().put( "status", new LuanJavaFunction( + getters.put( "status", new LuanJavaFunction( HttpServletResponse.class.getMethod( "getStatus" ), response ) ); - meta.setters().put( "status", new LuanJavaFunction( + setters.put( "status", new LuanJavaFunction( HttpServletResponse.class.getMethod( "setStatus", Integer.TYPE ), response ) ); return tbl; @@ -344,7 +344,7 @@ return request.getSession().getAttribute(name); } - @Override protected Iterator keys() { + @Override protected Iterator keys(LuanTable tbl) { return new EnumerationIterator(request.getSession().getAttributeNames()); }