01: /*
02: Copyright (c) 2006, Dennis M. Sosnoski
03: All rights reserved.
04:
05: Redistribution and use in source and binary forms, with or without modification,
06: are permitted provided that the following conditions are met:
07:
08: * Redistributions of source code must retain the above copyright notice, this
09: list of conditions and the following disclaimer.
10: * Redistributions in binary form must reproduce the above copyright notice,
11: this list of conditions and the following disclaimer in the documentation
12: and/or other materials provided with the distribution.
13: * Neither the name of JiBX nor the names of its contributors may be used
14: to endorse or promote products derived from this software without specific
15: prior written permission.
16:
17: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18: ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19: WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
21: ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22: (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
24: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27: */
28:
29: package org.jibx.typeinfo;
30:
31: import java.util.HashMap;
32:
33: /**
34: * Directory of class descriptions. This just provides basic registration and
35: * lookup functions, with the capacity to chain to other directories.
36: */
37: public class TypeDirectory {
38: /** Map from descriptor or signature to type for all defined types. */
39: private HashMap m_typeMap;
40:
41: /**
42: * Constructor. Initializes the type directory with descriptions of
43: * primitive types.
44: *
45: * @param loader binary class loader
46: */
47: public TypeDirectory() {
48: m_typeMap = new HashMap();
49: }
50:
51: /**
52: * Add type description to type directory.
53: *
54: * @param desc type description to add
55: */
56: public void addType(TypeDescription desc) {
57: m_typeMap.put(desc.getDescriptor(), desc);
58: }
59:
60: /**
61: * Get description for type.
62: *
63: * @param dtor type descriptor
64: * @return type description
65: */
66: public TypeDescription getType(String dtor) {
67: return (TypeDescription) m_typeMap.get(dtor);
68: }
69: }
|