1 /*
2 * Copyright (C) The Apache Software Foundation. All rights reserved.
3 *
4 * This software is published under the terms of the Apache Software License
5 * version 1.1, a copy of which has been included with this distribution in
6 * the LICENSE file.
7 */
8 package org.apache.avalon.excalibur.naming;
9
10 import java.util.Hashtable;
11 import javax.naming.Context;
12 import javax.naming.NameParser;
13 import javax.naming.NamingException;
14 import javax.naming.spi.InitialContextFactory;
15 import javax.naming.spi.ObjectFactory;
16 import javax.naming.spi.StateFactory;
17
18 /***
19 * This is the default namespace implementation.
20 *
21 * @author <a href="mailto:donaldp@apache.org">Peter Donald</a>
22 * @version $Revision: 1.2 $
23 */
24 public class DefaultNamespace
25 extends AbstractNamespace
26 {
27 protected NameParser m_nameParser;
28
29 public DefaultNamespace( final NameParser nameParser )
30 {
31 this( nameParser,
32 new ObjectFactory[ 0 ],
33 new StateFactory[ 0 ] );
34 }
35
36 public DefaultNamespace( final NameParser nameParser,
37 final ObjectFactory[] objectFactorySet,
38 final StateFactory[] stateFactorySet )
39 {
40 m_nameParser = nameParser;
41 m_objectFactorySet = objectFactorySet;
42 m_stateFactorySet = stateFactorySet;
43 }
44
45 public synchronized void addStateFactory( final StateFactory stateFactory )
46 {
47 //create new array of factory objects
48 final StateFactory[] stateFactorySet =
49 new StateFactory[ m_stateFactorySet.length + 1 ];
50
51 //copy old factory objects to new array
52 System.arraycopy( m_stateFactorySet, 0, stateFactorySet, 0, m_stateFactorySet.length );
53
54 //add in new factory at end
55 stateFactorySet[ m_stateFactorySet.length ] = stateFactory;
56
57 //update factory set
58 m_stateFactorySet = stateFactorySet;
59 }
60
61 public synchronized void addObjectFactory( final ObjectFactory objectFactory )
62 {
63 //create new array of factory objects
64 final ObjectFactory[] objectFactorySet =
65 new ObjectFactory[ m_objectFactorySet.length + 1 ];
66
67 //copy old factory objects to new array
68 System.arraycopy( m_objectFactorySet, 0, objectFactorySet, 0, m_objectFactorySet.length );
69
70 //add in new factory at end
71 objectFactorySet[ m_objectFactorySet.length ] = objectFactory;
72
73 //update factory set
74 m_objectFactorySet = objectFactorySet;
75 }
76
77 public NameParser getNameParser()
78 {
79 return m_nameParser;
80 }
81 }
This page was automatically generated by Maven