KickJava   Java API By Example, From Geeks To Geeks.

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


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: CallSetMultipleMethod.java,v 1.1 2004/06/07 09:09:37 carpentier Exp $
27 ====================================================================*/

28
29 package org.objectweb.openccm.uml.transformation.ast;
30
31 import org.objectweb.openccm.uml.transformation.modfact.JmiModfactUML14ModelContext;
32
33 import ispuml.mdaTransformation.RuleContext;
34 import ispuml.mdaTransformation.TransformationException;
35 import ispuml.mdaTransformation.ActionBase;
36 import ispuml.mdaTransformation.rules.xml.CompositeXmlAction;
37
38
39 /**
40  * This action calls the 'setMultiple()' method to the
41  * org.objectweb.openccm.ast.api.UsesDeclaration object
42  * if it's a multiple uses.
43  */

44 public class CallSetMultipleMethod extends CompositeXmlAction {
45
46     /**
47      * Constructor.
48      */

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

60     class TransformAction extends ActionBase {
61         /**
62          * Transform the bean and return the result.
63          * @param object
64          * @return Object
65          */

66         public Object JavaDoc execute(Object JavaDoc bean, RuleContext request) throws TransformationException {
67             try {
68                 org.objectweb.openccm.ast.api.UsesDecl declaration = null;
69                 JmiModfactUML14ModelContext context;
70                 context = (JmiModfactUML14ModelContext) request.engineContext.getSrc();
71                 String JavaDoc tag = (String JavaDoc)context.getModelUtil().getStereotypeTaggedValue(bean, "CORBAUses", "multiple");
72                 if (tag != null && tag.equalsIgnoreCase("yes")) {
73                     Object JavaDoc obj = request.getAttribute("declaration");
74                     declaration = (org.objectweb.openccm.ast.api.UsesDecl) obj;
75                     declaration.setMultiple();
76                 }
77                 return declaration;
78             } catch (TransformationException notFoundException) {
79                 // No 'multiple' tag.
80
return null;
81             }
82         }
83
84     } // end class
85
}
86
Popular Tags