01: /*
02: * $Id: CustomCallingConvention.java,v 1.27 2007/09/18 08:45:05 agoubard Exp $
03: *
04: * Copyright 2003-2007 Orange Nederland Breedband B.V.
05: * See the COPYRIGHT file for redistribution and use restrictions.
06: */
07: package org.xins.server;
08:
09: import javax.servlet.http.HttpServletRequest;
10:
11: /**
12: * Base class for calling convention implementations that are not part of the
13: * core XINS framework.
14: *
15: * <p>Extend this class to create your own calling conventions. Make sure you
16: * override {@link #matches(HttpServletRequest)}.
17: *
18: * <p>If your custom calling convention takes XML as input, you are advised to
19: * use {@link #parseXMLRequest(HttpServletRequest)} to parse the request.
20: *
21: * @version $Revision: 1.27 $ $Date: 2007/09/18 08:45:05 $
22: * @author <a href="mailto:anthony.goubard@japplis.com">Anthony Goubard</a>
23: * @author <a href="mailto:ernst@ernstdehaan.com">Ernst de Haan</a>
24: */
25: public abstract class CustomCallingConvention extends CallingConvention {
26:
27: /**
28: * Constructs a new <code>CustomCallingConvention</code>.
29: */
30: public CustomCallingConvention() {
31: // empty
32: }
33:
34: /**
35: * Checks if the specified request can possibly be handled by this calling
36: * convention as a function invocation.
37: *
38: * <p>Implementations of this method should be optimized for performance,
39: * as this method may be called for each incoming request. Also, this
40: * method should not have any side-effects except possibly some caching in
41: * case there is a match.
42: *
43: * <p>The default implementation of this method always returns
44: * <code>true</code>.
45: *
46: * <p>If this method throws any exception, the exception is logged as an
47: * ignorable exception and <code>false</code> is assumed.
48: *
49: * <p>This method should only be called by the XINS/Java Server Framework.
50: *
51: * @param httpRequest
52: * the HTTP request to investigate, never <code>null</code>.
53: *
54: * @return
55: * <code>true</code> if this calling convention is <em>possibly</em>
56: * able to handle this request, or <code>false</code> if it is
57: * <em>definitely</em> not able to handle this request.
58: *
59: * @throws Exception
60: * if analysis of the request causes an exception; in this case
61: * <code>false</code> will be assumed by the framework.
62: *
63: * @since XINS 1.4.0
64: */
65: protected boolean matches(HttpServletRequest httpRequest)
66: throws Exception {
67: return true;
68: }
69:
70: }
|