[Lipog-commit] net.heilancoo.portal/src/net/heilancoo/portal/responders MethodPrototype.java, NONE
Status: Beta
Brought to you by:
jbu
From: Joerg B. <jb...@us...> - 2009-08-20 20:47:09
|
Update of /cvsroot/lipog/net.heilancoo.portal/src/net/heilancoo/portal/responders In directory ddv4jf1.ch3.sourceforge.com:/tmp/cvs-serv30813/src/net/heilancoo/portal/responders Modified Files: ResponderFactory.java PlainResponder.java PlainResponderBasic.java ResponderMatcher.java Added Files: MethodPrototype.java Removed Files: PlainResponderFactory.java Log Message: tidy up of response generators --- PlainResponderFactory.java DELETED --- Index: PlainResponderBasic.java =================================================================== RCS file: /cvsroot/lipog/net.heilancoo.portal/src/net/heilancoo/portal/responders/PlainResponderBasic.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** PlainResponderBasic.java 13 Aug 2009 22:35:34 -0000 1.1 --- PlainResponderBasic.java 20 Aug 2009 20:46:56 -0000 1.2 *************** *** 27,32 **** --- 27,36 ---- * */ + @MethodPrototype({ FormFieldContainer.class }) public class PlainResponderBasic extends Responder { + public PlainResponderBasic() { + } + public PlainResponderBasic(Method method, Bundle bundle, MimeTypeMapper mimeMapper) { super(method); Index: ResponderMatcher.java =================================================================== RCS file: /cvsroot/lipog/net.heilancoo.portal/src/net/heilancoo/portal/responders/ResponderMatcher.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ResponderMatcher.java 13 Aug 2009 22:35:34 -0000 1.1 --- ResponderMatcher.java 20 Aug 2009 20:46:56 -0000 1.2 *************** *** 32,38 **** private final Constructor<?> constructor; ! public ResponderMatcher(Class<?> responder, Class<?> [] parameters) throws SecurityException, NoSuchMethodException { this.constructor = responder.getConstructor(Method.class, Bundle.class, MimeTypeMapper.class); ! this.parameters = parameters; } --- 32,54 ---- private final Constructor<?> constructor; ! public ResponderMatcher(Class<?> responder) throws SecurityException, NoSuchMethodException, ResponderCreationException { ! MethodPrototype mp = responder.getAnnotation(MethodPrototype.class); ! ! if(mp == null) ! throw new ResponderCreationException("Annotation @MethodPrototype({ ... }) missing from responder " ! + responder.getCanonicalName() + "."); ! this.constructor = responder.getConstructor(Method.class, Bundle.class, MimeTypeMapper.class); ! this.parameters = mp.value(); ! ! StringBuilder sb = new StringBuilder(); ! ! for(Class<?> p : parameters) { ! if(sb.length() > 0) ! sb.append(", "); ! sb.append(p.getCanonicalName()); ! } ! ! logger.debug("Request method parameter list (" + sb.toString() + ") maps to " + responder.getCanonicalName() + "."); } Index: ResponderFactory.java =================================================================== RCS file: /cvsroot/lipog/net.heilancoo.portal/src/net/heilancoo/portal/responders/ResponderFactory.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ResponderFactory.java 13 Aug 2009 22:35:33 -0000 1.3 --- ResponderFactory.java 20 Aug 2009 20:46:55 -0000 1.4 *************** *** 13,16 **** --- 13,18 ---- import java.lang.reflect.Method; + import java.util.ArrayList; + import java.util.List; import net.heilancoo.portal.MimeTypeMapper; *************** *** 24,31 **** public class ResponderFactory { ! private final ResponderMatcher [] matchers; ! protected ResponderFactory(ResponderMatcher [] matchers) { ! this.matchers = matchers; } --- 26,37 ---- public class ResponderFactory { ! private final List<ResponderMatcher> matchers; ! public ResponderFactory() { ! this.matchers = new ArrayList<ResponderMatcher>(); ! } ! ! public void addResponder(Class<?> responder) throws SecurityException, NoSuchMethodException, ResponderCreationException { ! matchers.add(new ResponderMatcher(responder)); } --- NEW FILE: MethodPrototype.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.responders; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * @author joerg * */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface MethodPrototype { Class<?> [] value(); } Index: PlainResponder.java =================================================================== RCS file: /cvsroot/lipog/net.heilancoo.portal/src/net/heilancoo/portal/responders/PlainResponder.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PlainResponder.java 13 Aug 2009 22:35:34 -0000 1.6 --- PlainResponder.java 20 Aug 2009 20:46:56 -0000 1.7 *************** *** 27,32 **** --- 27,36 ---- * */ + @MethodPrototype({ HttpRequest.class, FormFieldContainer.class, HttpResponse.class }) public class PlainResponder extends Responder { + public PlainResponder() { + } + public PlainResponder(Method method, Bundle bundle, MimeTypeMapper mimeMapper) { super(method); |