KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > explorer > interpreter > lib > DescriptionInterpreterDispatcher


1 /*====================================================================
2
3 Objectweb Explorer Framework
4 Copyright (C) 2000-2004 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 package org.objectweb.util.explorer.interpreter.lib;
27
28 import org.objectweb.fractal.api.NoSuchInterfaceException;
29 import org.objectweb.util.explorer.core.common.api.Description;
30 import org.objectweb.util.explorer.core.common.lib.BindingFeature;
31 import org.objectweb.util.explorer.interpreter.api.DescriptionInterpreter;
32
33 /**
34  *
35  *
36  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jérôme Moroy</a>,
37  * <a HREF="mailto:Philippe.Merle@lifl.fr">Philippe Merle</a>.
38  *
39  * @version 0.1
40  */

41 public class DescriptionInterpreterDispatcher
42      extends BindingFeature
43   implements DescriptionInterpreter
44 {
45
46     //==================================================================
47
//
48
// Internal States.
49
//
50
// ==================================================================
51

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

58     // ==================================================================
59
//
60
// Internal method.
61
//
62
// ==================================================================
63

64     /**
65      * Provides the interface compliant with the given interface name suffixe.
66      * A syntaxic pattern has been defined in order to dispatch towards the appropriate
67      * DescriptionInterpreter component. The name of the binding between the dispatcher
68      * and the DescriptionInterpreter must be the following:<br>
69      * <code>&#160;&#160;DescriptionInterpreter.DESCRIPTION_INTERPRETER + "-collection-" + itfSuffixe</code>
70      * @return The associated PropertyResolver
71      */

72     protected DescriptionInterpreter getDescriptionInterpreter(String JavaDoc itfSuffixe){
73         try {
74             return (DescriptionInterpreter)lookupFc(DescriptionInterpreter.DESCRIPTION_INTERPRETER + "-collection-" + itfSuffixe);
75         } catch (NoSuchInterfaceException e) {
76             getTrace().info(DescriptionInterpreter.DESCRIPTION_INTERPRETER + "-collection-" + itfSuffixe + ": interface not found!");
77             return null;
78         }
79     }
80     
81     // ==================================================================
82
//
83
// Public methods for BindingFeature abstract class.
84
//
85
// ==================================================================
86

87     /* (non-Javadoc)
88      * @see org.objectweb.util.explorer.core.common.lib.BindingFeature#clientFc()
89      */

90     public String JavaDoc[] clientFc() {
91         return new String JavaDoc[]{DescriptionInterpreter.DESCRIPTION_INTERPRETER + "-collection"};
92     }
93
94     // ==================================================================
95
//
96
// Public methods for DescriptionInterpreter interface.
97
//
98
// ==================================================================
99

100     /* (non-Javadoc)
101      * @see org.objectweb.util.explorer.interpreter.api.DescriptionInterpreter#interprete(org.objectweb.util.explorer.core.common.api.Description, java.lang.Object)
102      */

103     public Object JavaDoc interprete(Description description, Object JavaDoc params) {
104         if(description!=null){
105             DescriptionInterpreter descriptionInterpreter = getDescriptionInterpreter(description.getDescriptionType());
106             if (descriptionInterpreter!=null)
107                 return descriptionInterpreter.interprete(description, params);
108         }
109         return null;
110     }
111
112
113 }
114
115
116
Popular Tags