01: /*
02: * Copyright (c) 2001-2004 Caucho Technology, Inc. All rights reserved.
03: *
04: * The Apache Software License, Version 1.1
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 following disclaimer in
15: * the documentation and/or other materials provided with the
16: * distribution.
17: *
18: * 3. The end-user documentation included with the redistribution, if
19: * any, must include the following acknowlegement:
20: * "This product includes software developed by the
21: * Caucho Technology (http://www.caucho.com/)."
22: * Alternately, this acknowlegement may appear in the software itself,
23: * if and wherever such third-party acknowlegements normally appear.
24: *
25: * 4. The names "Burlap", "Hessian", "Resin", and "Caucho" must not be
26: * used to endorse or promote products derived from this software
27: * without prior written permission. For written permission, please contact
28: * info@caucho.com.
29: *
30: * 5. Products derived from this software may not be called "Resin"
31: * nor may "Resin" appear in their names without prior written
32: * permission of Caucho Technology.
33: *
34: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
35: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
36: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37: * DISCLAIMED. IN NO EVENT SHALL CAUCHO TECHNOLOGY OR ITS CONTRIBUTORS
38: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
39: * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
40: * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
41: * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
42: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
43: * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
44: * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45: *
46: * @author Scott Ferguson
47: */
48:
49: package com.caucho.services.name;
50:
51: /**
52: * A read-only name service. The name service provides hierarchical
53: * object lookup. The path names are separated by '/'.
54: *
55: * <p>Because the name service is hierarchical, a lookup of an intermediate
56: * node will return a NameServer instance.
57: *
58: * <p>The following example is a simple use of the NameServer:
59: * <pre>
60: * /dir-1/1 - where foo contains the string "foo-1"
61: * /dir-1/2 - where foo contains the string "foo-2"
62: * /dir-2/1 - where foo contains the string "foo-1"
63: * /dir-2/2 - where foo contains the string "foo-2"
64: * </pre>
65: *
66: * <p/>The root server might have a URL like:
67: * <pre>
68: * http://www.caucho.com/hessian/hessian/name?ejbid=/
69: * </pre>
70: *
71: * <p/>So <code>root.lookup("/dir-1/1")</code> will return the string
72: * "foo-1", and <code>root.lookup("/dir-1")</code> will return the
73: * NameServer with the URL:
74: * <pre>
75: * http://www.caucho.com/hessian/hessian/name?ejbid=/dir-1
76: * </pre>
77: */
78: public interface NameServer {
79: /**
80: * Lookup an object from the name server.
81: *
82: * @param name the relative path name
83: *
84: * @return the matching object or null if no object maches
85: *
86: * @exception NameServiceException if there's an error
87: */
88: public Object lookup(String name) throws NameServiceException;
89:
90: /**
91: * Lists all the object name components directly below the current context.
92: * The names are the relative compent name.
93: *
94: * <p>For example, if the name server context is "/dir-1", the returned
95: * values will be ["1", "2"].
96: */
97: public String[] list() throws NameServiceException;
98: }
|