KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > explorer > core > code > lib > CodeDispatcher


1 /*====================================================================
2
3 Objectweb Explorer Framework
4 Copyright (C) 2000-2005 INRIA - USTL - LIFL - GOAL
5 Contact: openccm@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): Jerome Moroy, Philippe Merle.
23 Contributor(s): ______________________________________.
24
25 ====================================================================
26 $Id: CodeDispatcher.java,v 1.2 2005/07/06 15:36:00 moroy Exp $
27 ====================================================================*/

28
29 package org.objectweb.util.explorer.core.code.lib;
30
31 import org.objectweb.fractal.api.NoSuchInterfaceException;
32 import org.objectweb.util.explorer.core.code.api.Code;
33 import org.objectweb.util.explorer.core.code.api.CodeDescription;
34 import org.objectweb.util.explorer.core.code.api.CodeProvider;
35 import org.objectweb.util.explorer.core.common.lib.BindingFeature;
36
37 /**
38  *
39  *
40  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jérôme Moroy</a>,
41  * <a HREF="mailto:Philippe.Merle@lifl.fr">Philippe Merle</a>.
42  *
43  * @version 0.1
44  */

45 public class CodeDispatcher
46      extends BindingFeature
47   implements CodeProvider
48 {
49
50     //==================================================================
51
//
52
// Internal States.
53
//
54
// ==================================================================
55

56     // ==================================================================
57
//
58
// Constructors.
59
//
60
// ==================================================================
61

62     // ==================================================================
63
//
64
// No internal method.
65
//
66
// ==================================================================
67

68     // ==================================================================
69
//
70
// Public methods for BindingFeature abstract class.
71
//
72
// ==================================================================
73

74     /* (non-Javadoc)
75      * @see org.objectweb.util.explorer.core.common.lib.BindingFeature#clientFc()
76      */

77     public String JavaDoc[] clientFc() {
78         return new String JavaDoc[]{CodeProvider.CLIENT_CODE_PROVIDER};
79     }
80
81     // ==================================================================
82
//
83
// Public methods for CodeProvider interface.
84
//
85
// ==================================================================
86

87     /**
88      * A syntaxic pattern has been defined in order to dispatch towards the appropriate CodeProvider component.
89      * Indeed, the name of the binding between the dispatcher and the CodeProvider is the following:<br>
90      * &#160;&#160;&#160;&#160;<code>CodeProvider.CLIENT_CODE_PROVIDER + "-" + codeDesc.getLanguage().toLowerCase()</code>
91      * @see org.objectweb.util.explorer.core.code.api.CodeProvider#getCode(org.objectweb.util.explorer.core.code.api.CodeDescription)
92      */

93     public Code getCode(CodeDescription codeDesc) {
94         try {
95             CodeProvider codeProvider = (CodeProvider)lookupFc(CodeProvider.CLIENT_CODE_PROVIDER + "-" + codeDesc.getLanguage().toLowerCase());
96             return codeProvider.getCode(codeDesc);
97         } catch (NoSuchInterfaceException e) {
98             e.printStackTrace();
99         }
100         return null;
101     }
102
103 }
104
Popular Tags