KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > openccm > uml > transformation > ast > WriteIdlFile


1 /*====================================================================
2
3 OpenCCM: The Open CORBA Component Model Platform
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): Pierre Carpentier.
23 Contributor(s): Philippe Merle.
24
25 ---------------------------------------------------------------------
26 $Id: WriteIdlFile.java,v 1.1 2004/05/26 11:25:35 carpentier Exp $
27 ====================================================================*/

28
29 package org.objectweb.openccm.uml.transformation.ast;
30
31 import ispuml.mdaTransformation.RuleContext;
32 import ispuml.mdaTransformation.TransformationException;
33 import ispuml.mdaTransformation.ActionBase;
34 import ispuml.mdaTransformation.rules.xml.CompositeXmlAction;
35
36
37 /**
38  * This action writes the OMG IDL 3.0 file from the OpenCCM AST.
39  */

40 public class WriteIdlFile extends CompositeXmlAction {
41
42     /**
43      * Constructor.
44      */

45     public WriteIdlFile() {
46         // The src property is not required. If it is not set, use the bean provided
47
// as parameter.
48
isSrcPropertyRequired = false;
49         isDstPropertyRequired = false;
50         action = new TransformAction();
51     }
52     
53
54     /**
55      * Inner class
56      */

57     class TransformAction extends ActionBase {
58         /**
59          * Write the OMG IDL 3.0 File.
60          * @param bean The current bean (not used).
61          * @param request The context.
62          * @return Object The OMG IDL Module.
63          */

64         public Object JavaDoc execute(Object JavaDoc bean, RuleContext request) throws TransformationException {
65             Object JavaDoc obj = request.getAttribute("declaration");
66             org.objectweb.openccm.ast.api.CidlModuleDecl cidlModule;
67             cidlModule = (org.objectweb.openccm.ast.api.CidlModuleDecl) obj;
68             String JavaDoc cidlModuleName = cidlModule.getName();
69             
70             // Generation of the IDL file
71
String JavaDoc outputdir = (String JavaDoc)request.engineContext.getAttribute("outputdir");
72             String JavaDoc filename = outputdir + java.io.File.separator + cidlModuleName + ".idl3";
73             org.objectweb.openccm.generator.idl.api.IDL3Generator idlGen;
74             idlGen = new org.objectweb.openccm.generator.idl.lib.IDL3Generator(CCMASTModelCreateUtils.getAst());
75             idlGen.initialize(filename, new java.util.ArrayList JavaDoc(), "XMItoIDL3");
76             try {
77                 idlGen.generate(cidlModule);
78             } catch(org.objectweb.openccm.generator.common.lib.GenerationException ex) {
79                 ex.printStackTrace();
80             }
81             
82             return cidlModule;
83         }
84
85     } // end class
86
}
87
Popular Tags