[Lipog-commit] net.heilancoo.portal.json/src/net/heilancoo/portal/json JsonResponderFull.java, NON
Status: Beta
Brought to you by:
jbu
Update of /cvsroot/lipog/net.heilancoo.portal.json/src/net/heilancoo/portal/json In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv11802/src/net/heilancoo/portal/json Modified Files: JsonResponderFactory.java JsonResponder.java Added Files: JsonResponderFull.java JsonResponderBasic.java Log Message: support request methods with more flexible parameter lists Index: JsonResponderFactory.java =================================================================== RCS file: /cvsroot/lipog/net.heilancoo.portal.json/src/net/heilancoo/portal/json/JsonResponderFactory.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** JsonResponderFactory.java 6 Jul 2009 16:38:16 -0000 1.7 --- JsonResponderFactory.java 13 Aug 2009 22:35:24 -0000 1.8 *************** *** 12,27 **** package net.heilancoo.portal.json; - import java.lang.reflect.Method; - - import net.heilancoo.portal.MimeTypeMapper; import net.heilancoo.portal.htmlforms.FormFieldContainer; - import net.heilancoo.portal.responders.Responder; import net.heilancoo.portal.responders.ResponderFactory; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; - import org.apache.http.protocol.HttpContext; import org.json.JSONObject; - import org.osgi.framework.Bundle; /** --- 12,22 ---- package net.heilancoo.portal.json; import net.heilancoo.portal.htmlforms.FormFieldContainer; import net.heilancoo.portal.responders.ResponderFactory; + import net.heilancoo.portal.responders.ResponderMatcher; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.json.JSONObject; /** *************** *** 31,51 **** public class JsonResponderFactory extends ResponderFactory { ! public JsonResponderFactory() { ! super(new Class<?> [] { ! HttpRequest.class, ! FormFieldContainer.class, ! HttpResponse.class, ! HttpContext.class, ! JSONObject.class ! }); ! } ! ! /* ! * (non-Javadoc) ! * @see net.heilancoo.portal.responses.ResponderFactory#makeGeneratorFor(java.lang.reflect.Method, org.osgi.framework.Bundle, net.heilancoo.portal.requests.MimeTypeMapper) ! */ ! @Override ! public Responder makeGeneratorFor(Method method, Bundle bundle, MimeTypeMapper mimeMapper) { ! return new JsonResponder(method); } --- 26,45 ---- public class JsonResponderFactory extends ResponderFactory { ! public JsonResponderFactory() throws SecurityException, NoSuchMethodException { ! super(new ResponderMatcher [] { ! new ResponderMatcher( ! JsonResponderFull.class, ! new Class<?> [] { HttpRequest.class, ! FormFieldContainer.class, ! HttpResponse.class, ! JSONObject.class } ! ), ! ! new ResponderMatcher( ! JsonResponderBasic.class, ! new Class<?> [] { FormFieldContainer.class, ! JSONObject.class } ! ) ! }); } Index: JsonResponder.java =================================================================== RCS file: /cvsroot/lipog/net.heilancoo.portal.json/src/net/heilancoo/portal/json/JsonResponder.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** JsonResponder.java 24 Jul 2009 06:40:04 -0000 1.9 --- JsonResponder.java 13 Aug 2009 22:35:24 -0000 1.10 *************** *** 13,16 **** --- 13,17 ---- import java.io.StringWriter; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; *************** *** 22,26 **** import org.apache.http.HttpResponse; import org.apache.http.nio.entity.NStringEntity; - import org.apache.http.protocol.HttpContext; import org.json.JSONObject; --- 23,26 ---- *************** *** 29,33 **** * */ ! public class JsonResponder extends Responder { public JsonResponder(Method method) { --- 29,33 ---- * */ ! public abstract class JsonResponder extends Responder { public JsonResponder(Method method) { *************** *** 35,38 **** --- 35,42 ---- } + public abstract Object invoke(Controller target, HttpRequest request, + FormFieldContainer fields, HttpResponse response, JSONObject model) + throws IllegalArgumentException, IllegalAccessException, InvocationTargetException; + /* (non-Javadoc) * @see net.heilancoo.portal.responses.Responder#execute(net.heilancoo.portal.session.Session, org.apache.http.HttpRequest, net.heilancoo.portal.htmlforms.FormFieldContainer, org.apache.http.HttpResponse, org.apache.http.protocol.HttpContext) *************** *** 40,49 **** @Override public Object execute(Controller target, String format, HttpRequest request, ! FormFieldContainer fields, HttpResponse response, ! HttpContext context) throws Exception { JSONObject model = new JSONObject(); ! Object redirect = method.invoke(target, request, fields, response, context, model); if(redirect == null) { --- 44,52 ---- @Override public Object execute(Controller target, String format, HttpRequest request, ! FormFieldContainer fields, HttpResponse response) throws Exception { JSONObject model = new JSONObject(); ! Object redirect = invoke(target, request, fields, response, model);//method.invoke(target, request, fields, response, model); if(redirect == null) { --- NEW FILE: JsonResponderFull.java --- /* * Copyright (c) 2009 Heilan' Coo -- Joerg Bullmann * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Joerg Bullmann <jb...@he...> */ package net.heilancoo.portal.json; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import net.heilancoo.portal.MimeTypeMapper; import net.heilancoo.portal.controller.Controller; import net.heilancoo.portal.htmlforms.FormFieldContainer; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.json.JSONObject; import org.osgi.framework.Bundle; /** * @author joerg * */ public class JsonResponderFull extends JsonResponder { public JsonResponderFull(Method method, Bundle bundle, MimeTypeMapper mimeMapper) { super(method); } @Override public Object invoke(Controller target, HttpRequest request, FormFieldContainer fields, HttpResponse response, JSONObject model) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { return method.invoke(target, request, fields, response, model); } } --- NEW FILE: JsonResponderBasic.java --- /* * Copyright (c) 2009 Heilan' Coo -- Joerg Bullmann * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Joerg Bullmann <jb...@he...> */ package net.heilancoo.portal.json; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import net.heilancoo.portal.MimeTypeMapper; import net.heilancoo.portal.controller.Controller; import net.heilancoo.portal.htmlforms.FormFieldContainer; import org.apache.http.HttpRequest; import org.apache.http.HttpResponse; import org.json.JSONObject; import org.osgi.framework.Bundle; /** * @author joerg * */ public class JsonResponderBasic extends JsonResponder { public JsonResponderBasic(Method method, Bundle bundle, MimeTypeMapper mimeMapper) { super(method); } @Override public Object invoke(Controller target, HttpRequest request, FormFieldContainer fields, HttpResponse response, JSONObject model) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { return method.invoke(target, fields, model); } } |