KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > browser > core > naming > DefaultDecoderFactory


1 /*===========================================================================
2
3 ObjectWeb Naming Context Framework
4 Copyright (C) 2002 USTL - LIFL - GOAL
5 Contact: architecture@objectweb.org
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 USA
21
22 Initial developer(s): Philippe Merle, Jerome Moroy.
23 Contributor(s): ______________________________________.
24
25 ===========================================================================*/

26
27 package org.objectweb.util.browser.core.naming;
28
29 /** The console's imports */
30 import org.objectweb.util.browser.api.Context;
31 import org.objectweb.util.browser.api.Entry;
32 import org.objectweb.util.browser.core.api.Decoder;
33 import org.objectweb.util.browser.core.api.DecoderFactory;
34
35 /**
36  * Factory for decoder object.
37  * For example, a decoder is used to transform a stub reference into another reference more specific.
38  *
39  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jerome Moroy</a>
40  * @version 0.1
41  */

42 public class DefaultDecoderFactory
43     implements DecoderFactory {
44         
45     // ==================================================================
46
//
47
// Internal state.
48
//
49
// ==================================================================
50

51     // ==================================================================
52
//
53
// Constructors.
54
//
55
// ==================================================================
56

57     // ==================================================================
58
//
59
// Internal methods.
60
//
61
// ==================================================================
62

63     // ==================================================================
64
//
65
// Public methods.
66
//
67
// ==================================================================
68

69     /**
70      * Creates a decoder manager with the appropriate instances of decoder
71      * @param factoryConfig The configuration of the chain of decoder (list of decoder to instanciate)
72      */

73     public Decoder create(Context factoryConfig) {
74         Decoder decoder = null;
75         if (factoryConfig != null) {
76             Entry[] entries = factoryConfig.getEntries();
77             for (int i = 0; i < entries.length; i++) {
78                 Entry entry = entries[i];
79                 Class JavaDoc c = (Class JavaDoc) entry.getValue();
80                 try {
81                     if (Decoder.class.isAssignableFrom(c)) {
82                         Decoder newDecoder = (Decoder) c.newInstance();
83                         newDecoder.setNext(decoder);
84                         decoder = newDecoder;
85                     }
86                 } catch (InstantiationException JavaDoc e1) {
87                     System.out.println("Error : " + c.getName() + " : Instantiation exception !");
88                 } catch (IllegalAccessException JavaDoc e1) {
89                     System.out.println("Error : " + c.getName() + " : Illegal access exception !");
90                 }
91             }
92         }
93         return decoder;
94     }
95
96 }
97
Popular Tags