01: /*--
02:
03: Copyright (C) 2000-2003 Anthony Eden.
04: All rights reserved.
05:
06: Redistribution and use in source and binary forms, with or without
07: modification, are permitted provided that the following conditions
08: are met:
09:
10: 1. Redistributions of source code must retain the above copyright
11: notice, this list of conditions, and the following disclaimer.
12:
13: 2. Redistributions in binary form must reproduce the above copyright
14: notice, this list of conditions, and the disclaimer that follows
15: these conditions in the documentation and/or other materials
16: provided with the distribution.
17:
18: 3. The name "EdenLib" must not be used to endorse or promote products
19: derived from this software without prior written permission. For
20: written permission, please contact me@anthonyeden.com.
21:
22: 4. Products derived from this software may not be called "EdenLib", nor
23: may "EdenLib" appear in their name, without prior written permission
24: from Anthony Eden (me@anthonyeden.com).
25:
26: In addition, I request (but do not require) that you include in the
27: end-user documentation provided with the redistribution and/or in the
28: software itself an acknowledgement equivalent to the following:
29: "This product includes software developed by
30: Anthony Eden (http://www.anthonyeden.com/)."
31:
32: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
33: WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
34: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
35: DISCLAIMED. IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT,
36: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
37: (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
38: SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
39: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
40: STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
41: IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
42: POSSIBILITY OF SUCH DAMAGE.
43:
44: For more information on EdenLib, please see <http://edenlib.sf.net/>.
45:
46: */
47:
48: package com.anthonyeden.lib.config;
49:
50: import java.io.InputStream;
51: import java.io.Reader;
52:
53: /**
54: * Standard interface which is used to retrieve a Configuration from an
55: * InputStream or Reader.
56: *
57: * @author Anthony Eden
58: * @since 2.0
59: */
60:
61: public interface ConfigurationFactory {
62:
63: /**
64: * Get the root Configuration object from the specified InputStream.
65: *
66: * @param id The id of the configuration (file path, URL, etc)
67: * @param in The InputStream
68: * @return The Configuration object
69: * @throws ConfigurationException
70: */
71:
72: public Configuration getConfiguration(String id, InputStream in)
73: throws ConfigurationException;
74:
75: /**
76: * Get the root Configuration object from the specified InputStream.
77: *
78: * @param id The id of the configuration (file path, URL, etc)
79: * @param in The InputStream
80: * @return The Configuration object
81: * @throws ConfigurationException
82: */
83:
84: public Configuration getConfiguration(String id, Reader in)
85: throws ConfigurationException;
86:
87: }
|