KickJava   Java API By Example, From Geeks To Geeks.

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


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.api.RootContext;
30 import org.objectweb.util.explorer.core.code.api.CodeDescription;
31 import org.objectweb.util.explorer.core.common.api.Description;
32 import org.objectweb.util.explorer.core.common.lib.BindingFeature;
33 import org.objectweb.util.explorer.core.root.api.RootDescriptions;
34 import org.objectweb.util.explorer.core.root.lib.DefaultRootContext;
35 import org.objectweb.util.explorer.interpreter.api.DescriptionInterpreter;
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 RootInterpreter
46      extends BindingFeature
47   implements DescriptionInterpreter
48 {
49
50     //==================================================================
51
//
52
// Internal States.
53
//
54
// ==================================================================
55

56     protected static final String JavaDoc CODE_INTERPRETER = "code-interpreter";
57     
58     // ==================================================================
59
//
60
// Constructors.
61
//
62
// ==================================================================
63

64     // ==================================================================
65
//
66
// Internal methods.
67
//
68
// ==================================================================
69

70     protected DescriptionInterpreter getCodeInterpreter(){
71         try {
72             return (DescriptionInterpreter)lookupFc(CODE_INTERPRETER);
73         } catch (NoSuchInterfaceException e) {
74             getTrace().warn(CODE_INTERPRETER + ": interface not found!");
75             return null;
76         }
77     }
78     
79     // ==================================================================
80
//
81
// Public methods for BindingFeature abstract class.
82
//
83
// ==================================================================
84

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

88     public String JavaDoc[] clientFc() {
89         return new String JavaDoc[]{CODE_INTERPRETER};
90     }
91
92     // ==================================================================
93
//
94
// Public methods for DescriptionInterpreter interface.
95
//
96
// ==================================================================
97

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

101     public Object JavaDoc interprete(Description description, Object JavaDoc params) {
102         RootDescriptions rootDesc = (RootDescriptions)description;
103         DefaultRootContext rootContext = new DefaultRootContext();
104         CodeDescription[] codeDesc = rootDesc.getRootDescriptions();
105         for (int i = 0; i < codeDesc.length; i++) {
106             rootContext.addRootContext((RootContext)getCodeInterpreter().interprete(codeDesc[i], params));
107         }
108         return rootContext;
109     }
110
111 }
112
Popular Tags