summaryrefslogtreecommitdiff
path: root/projects/net.wotonomy.web/src/main/java/net/wotonomy/web/WORequestHandler.java
blob: 957cf25b2843ffc795c6bd0739bb089db417503d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
Wotonomy: OpenStep design patterns for pure Java applications.
Copyright (C) 2000 Blacksmith, Inc.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see http://www.gnu.org
*/

package net.wotonomy.web;

import net.wotonomy.foundation.internal.NetworkClassLoader;

/**
* A pure java implementation that corresponds 
* to the abstract class WORequestHandler.
*
* @author michael@mpowers.net
* @author $Author: cgruber $
* @version $Revision: 905 $
*/
public abstract class WORequestHandler
{
	private NetworkClassLoader loader;
	
	/**
	* Default constructor.
	*/
	public WORequestHandler()
	{
		loader = new NetworkClassLoader( WOApplication.application().getClass().getClassLoader() );
	}
	
	/**
	* Dispatches the request and returns the response.
	*/
    abstract public WOResponse handleRequest (WORequest aRequest);    
    
	/**
	* Gets the specified class, loading it if it has not already been
	* loaded or if it has been modified.  Returns null if not found.
	* Because this method is not in the specification, it has only 
	* package access.
	*/
	Class loadClass( String aName )
	{
        try
        {
            return loader.loadClass( aName, true );
        }
        catch ( ClassNotFoundException cnfe )
		{
			return null;
		}
	}

//    void lock ()
//    void unlock ()
}