KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > openccm > uml > transformation > rules > xml > EnumDataTypeCondition


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: EnumDataTypeCondition.java,v 1.1 2004/05/26 11:25:35 carpentier Exp $
27 ====================================================================*/

28
29 package org.objectweb.openccm.uml.transformation.rules.xml;
30
31 import javax.jmi.reflect.RefPackage;
32
33 import ispuml.mdaTransformation.RuleContext;
34 import ispuml.mdaTransformation.TransformationException;
35 import ispuml.mdaTransformation.model.SimpleModelContext;
36 import ispuml.mdaTransformation.model.jmi.JmiModelUtil;
37 import ispuml.mdaTransformation.rules.xml.DataTypeCondition;
38
39 /**
40  * Condition for a DataType representing an enumeration.
41  *
42  * @author Pierre Carpentier
43  */

44 public class EnumDataTypeCondition extends DataTypeCondition {
45
46     /** The associated model. */
47     private String JavaDoc model;
48     
49     /** The type of the enumeration. */
50     private String JavaDoc type;
51     
52
53     /**
54      * Sets the associated model.
55      * @param string The String representing the uri of the model.
56      */

57     public void setModel(String JavaDoc model) {
58         this.model = model;
59     }
60
61     /**
62      * Sets the type of the enumeration.
63      * @param string The String representing the name of the enumeration.
64      */

65     public void setType(String JavaDoc type) {
66         this.type = type;
67     }
68
69     /**
70      * Creates the object representing the enumeration with the correct value.
71      * @param object The source bean.
72      * @param context The rule context.
73      */

74     protected Object JavaDoc executeCreate(Object JavaDoc object, RuleContext context) throws TransformationException {
75         SimpleModelContext modelContext = (SimpleModelContext)context.getEngineContext().getModel(model);
76         JmiModelUtil modelUtil = (JmiModelUtil)modelContext.getModelUtil();
77         RefPackage extent = modelUtil.getOutermostRefPackage();
78         
79         String JavaDoc[] names = type.split( "\\." );
80         int i=0;
81         for(i=0; i<names.length-1; i++ ) {
82             extent = (RefPackage)extent.refPackage( names[i] );
83         }
84         
85         EnumerationRule rule = (EnumerationRule)context.getCurrentRuleContext().getRule();
86         return extent.refGetEnum(type, rule.getEquivalentLabel(object));
87     }
88
89 }
90
Popular Tags