View | Details | Raw Unified | Return to bug 150154 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/uml2/examples/uml/ui/actions/GenerateModelAction.java (+7 lines)
Lines 18-23 Link Here
18
import org.eclipse.emf.common.command.IdentityCommand;
18
import org.eclipse.emf.common.command.IdentityCommand;
19
import org.eclipse.emf.common.command.UnexecutableCommand;
19
import org.eclipse.emf.common.command.UnexecutableCommand;
20
import org.eclipse.emf.edit.domain.EditingDomain;
20
import org.eclipse.emf.edit.domain.EditingDomain;
21
import org.eclipse.uml2.uml.DataType;
21
import org.eclipse.uml2.uml.Model;
22
import org.eclipse.uml2.uml.Model;
22
import org.eclipse.uml2.uml.PrimitiveType;
23
import org.eclipse.uml2.uml.PrimitiveType;
23
import org.eclipse.uml2.uml.UMLPackage;
24
import org.eclipse.uml2.uml.UMLPackage;
Lines 43-47 Link Here
43
		return (PrimitiveType) package_.getPackagedElement(name, false,
44
		return (PrimitiveType) package_.getPackagedElement(name, false,
44
			UMLPackage.Literals.PRIMITIVE_TYPE, true);
45
			UMLPackage.Literals.PRIMITIVE_TYPE, true);
45
	}
46
	}
47
	
48
	protected DataType generateOwnedDataType(
49
			org.eclipse.uml2.uml.Package package_, String name) {
50
		return (DataType) package_.getPackagedElement(name, false,
51
			UMLPackage.Literals.DATA_TYPE, true);
52
	}
46
53
47
}
54
}
(-)src/org/eclipse/uml2/examples/uml/ui/actions/GenerateEcoreStereotypesAction.java (-17 / +21 lines)
Lines 42-74 Link Here
42
							profile, UMLPackage.Literals.PACKAGE);
42
							profile, UMLPackage.Literals.PACKAGE);
43
						generateExtension(ePackageStereotype, packageMetaclass,
43
						generateExtension(ePackageStereotype, packageMetaclass,
44
							false);
44
							false);
45
						PrimitiveType stringPrimitiveType = getImportedUMLPrimitiveType(
45
						PrimitiveType stringUMLPrimitiveType = getImportedUMLPrimitiveType(
46
							profile, "String"); //$NON-NLS-1$
46
							profile, "String"); //$NON-NLS-1$
47
						generateOwnedAttribute(ePackageStereotype,
47
						generateOwnedAttribute(ePackageStereotype,
48
							"packageName", //$NON-NLS-1$
48
							"packageName", //$NON-NLS-1$
49
							stringPrimitiveType, 0, 1);
49
							stringUMLPrimitiveType, 0, 1);
50
						generateOwnedAttribute(ePackageStereotype, "nsPrefix", //$NON-NLS-1$
50
						generateOwnedAttribute(ePackageStereotype, "nsPrefix", //$NON-NLS-1$
51
							stringPrimitiveType, 0, 1);
51
							stringUMLPrimitiveType, 0, 1);
52
						generateOwnedAttribute(ePackageStereotype, "nsURI", //$NON-NLS-1$
52
						generateOwnedAttribute(ePackageStereotype, "nsURI", //$NON-NLS-1$
53
							stringPrimitiveType, 0, 1);
53
							stringUMLPrimitiveType, 0, 1);
54
						generateOwnedAttribute(ePackageStereotype,
54
						generateOwnedAttribute(ePackageStereotype,
55
							"basePackage", //$NON-NLS-1$
55
							"basePackage", //$NON-NLS-1$
56
							stringPrimitiveType, 0, 1);
56
							stringUMLPrimitiveType, 0, 1);
57
						generateOwnedAttribute(ePackageStereotype, "prefix", //$NON-NLS-1$
57
						generateOwnedAttribute(ePackageStereotype, "prefix", //$NON-NLS-1$
58
							stringPrimitiveType, 0, 1);
58
							stringUMLPrimitiveType, 0, 1);
59
59
60
						Stereotype eNamedElementStereotype = generateOwnedStereotype(
60
						Stereotype eNamedElementStereotype = generateOwnedStereotype(
61
							profile, "ENamedElement", true); //$NON-NLS-1$
61
							profile, "ENamedElement", true); //$NON-NLS-1$
62
						generateOwnedAttribute(eNamedElementStereotype,
62
						generateOwnedAttribute(eNamedElementStereotype,
63
							"xmlName", //$NON-NLS-1$
63
							"xmlName", //$NON-NLS-1$
64
							stringPrimitiveType, 0, 1);
64
							stringUMLPrimitiveType, 0, 1);
65
65
66
						Stereotype eClassifierStereotype = generateOwnedStereotype(
66
						Stereotype eClassifierStereotype = generateOwnedStereotype(
67
							profile, "EClassifier", true); //$NON-NLS-1$
67
							profile, "EClassifier", true); //$NON-NLS-1$
68
						generateGeneralization(eClassifierStereotype,
68
						generateGeneralization(eClassifierStereotype,
69
							eNamedElementStereotype);
69
							eNamedElementStereotype);
70
						generateOwnedAttribute(eClassifierStereotype,
70
						generateOwnedAttribute(eClassifierStereotype,
71
							"instanceClassName", stringPrimitiveType, 0, 1); //$NON-NLS-1$
71
							"instanceClassName", stringUMLPrimitiveType, 0, 1); //$NON-NLS-1$
72
72
73
						Enumeration contentKindEnumeration = generateOwnedEnumeration(
73
						Enumeration contentKindEnumeration = generateOwnedEnumeration(
74
							profile, "ContentKind"); //$NON-NLS-1$
74
							profile, "ContentKind"); //$NON-NLS-1$
Lines 95-101 Link Here
95
						generateGeneralization(eClassStereotype,
95
						generateGeneralization(eClassStereotype,
96
							eClassifierStereotype);
96
							eClassifierStereotype);
97
						generateOwnedAttribute(eClassStereotype, "className", //$NON-NLS-1$
97
						generateOwnedAttribute(eClassStereotype, "className", //$NON-NLS-1$
98
							stringPrimitiveType, 0, 1);
98
							stringUMLPrimitiveType, 0, 1);
99
						generateOwnedAttribute(eClassStereotype,
99
						generateOwnedAttribute(eClassStereotype,
100
							"xmlContentKind", //$NON-NLS-1$
100
							"xmlContentKind", //$NON-NLS-1$
101
							contentKindEnumeration, 0, 1);
101
							contentKindEnumeration, 0, 1);
Lines 108-118 Link Here
108
							profile, UMLPackage.Literals.PRIMITIVE_TYPE);
108
							profile, UMLPackage.Literals.PRIMITIVE_TYPE);
109
						generateExtension(eDataTypeStereotype,
109
						generateExtension(eDataTypeStereotype,
110
							primitiveTypeMetaclass, false);
110
							primitiveTypeMetaclass, false);
111
						org.eclipse.uml2.uml.Class dataTypeMetaclass = getReferencedUMLMetaclass(
112
							profile, UMLPackage.Literals.DATA_TYPE);
113
						generateExtension(eDataTypeStereotype,
114
							dataTypeMetaclass, false);
111
						generateGeneralization(eDataTypeStereotype,
115
						generateGeneralization(eDataTypeStereotype,
112
							eClassifierStereotype);
116
							eClassifierStereotype);
113
						generateOwnedAttribute(eDataTypeStereotype,
117
						generateOwnedAttribute(eDataTypeStereotype,
114
							"dataTypeName", //$NON-NLS-1$
118
							"dataTypeName", //$NON-NLS-1$
115
							stringPrimitiveType, 0, 1);
119
							stringUMLPrimitiveType, 0, 1);
116
120
117
						Stereotype eEnumStereotype = generateOwnedStereotype(
121
						Stereotype eEnumStereotype = generateOwnedStereotype(
118
							profile, "EEnum", false); //$NON-NLS-1$
122
							profile, "EEnum", false); //$NON-NLS-1$
Lines 125-131 Link Here
125
						generateGeneralization(eEnumStereotype,
129
						generateGeneralization(eEnumStereotype,
126
							eNamedElementStereotype);
130
							eNamedElementStereotype);
127
						generateOwnedAttribute(eEnumStereotype, "enumName", //$NON-NLS-1$
131
						generateOwnedAttribute(eEnumStereotype, "enumName", //$NON-NLS-1$
128
							stringPrimitiveType, 0, 1);
132
							stringUMLPrimitiveType, 0, 1);
129
133
130
						Stereotype eEnumLiteralStereotype = generateOwnedStereotype(
134
						Stereotype eEnumLiteralStereotype = generateOwnedStereotype(
131
							profile, "EEnumLiteral", false); //$NON-NLS-1$
135
							profile, "EEnumLiteral", false); //$NON-NLS-1$
Lines 138-144 Link Here
138
						generateGeneralization(eEnumLiteralStereotype,
142
						generateGeneralization(eEnumLiteralStereotype,
139
							eNamedElementStereotype);
143
							eNamedElementStereotype);
140
						generateOwnedAttribute(eEnumLiteralStereotype,
144
						generateOwnedAttribute(eEnumLiteralStereotype,
141
							"enumLiteralName", stringPrimitiveType, 0, 1); //$NON-NLS-1$
145
							"enumLiteralName", stringUMLPrimitiveType, 0, 1); //$NON-NLS-1$
142
146
143
						Stereotype eOperationStereotype = generateOwnedStereotype(
147
						Stereotype eOperationStereotype = generateOwnedStereotype(
144
							profile, "EOperation", false); //$NON-NLS-1$
148
							profile, "EOperation", false); //$NON-NLS-1$
Lines 149-155 Link Here
149
						generateExtension(eOperationStereotype,
153
						generateExtension(eOperationStereotype,
150
							operationMetaclass, false);
154
							operationMetaclass, false);
151
						generateOwnedAttribute(eOperationStereotype,
155
						generateOwnedAttribute(eOperationStereotype,
152
							"operationName", stringPrimitiveType, 0, 1); //$NON-NLS-1$
156
							"operationName", stringUMLPrimitiveType, 0, 1); //$NON-NLS-1$
153
157
154
						Stereotype eParameterStereotype = generateOwnedStereotype(
158
						Stereotype eParameterStereotype = generateOwnedStereotype(
155
							profile, "EParameter", false); //$NON-NLS-1$
159
							profile, "EParameter", false); //$NON-NLS-1$
Lines 160-166 Link Here
160
						generateExtension(eParameterStereotype,
164
						generateExtension(eParameterStereotype,
161
							parameterMetaclass, false);
165
							parameterMetaclass, false);
162
						generateOwnedAttribute(eParameterStereotype,
166
						generateOwnedAttribute(eParameterStereotype,
163
							"parameterName", stringPrimitiveType, 0, 1); //$NON-NLS-1$
167
							"parameterName", stringUMLPrimitiveType, 0, 1); //$NON-NLS-1$
164
168
165
						Enumeration featureKindEnumeration = generateOwnedEnumeration(
169
						Enumeration featureKindEnumeration = generateOwnedEnumeration(
166
							profile, "FeatureKind"); //$NON-NLS-1$
170
							profile, "FeatureKind"); //$NON-NLS-1$
Lines 203-209 Link Here
203
						generateOwnedAttribute(eStructuralFeatureStereotype,
207
						generateOwnedAttribute(eStructuralFeatureStereotype,
204
							"isUnsettable", booleanPrimitiveType, 0, 1); //$NON-NLS-1$
208
							"isUnsettable", booleanPrimitiveType, 0, 1); //$NON-NLS-1$
205
						generateOwnedAttribute(eStructuralFeatureStereotype,
209
						generateOwnedAttribute(eStructuralFeatureStereotype,
206
							"xmlNamespace", stringPrimitiveType, 0, 1); //$NON-NLS-1$
210
							"xmlNamespace", stringUMLPrimitiveType, 0, 1); //$NON-NLS-1$
207
						generateOwnedAttribute(eStructuralFeatureStereotype,
211
						generateOwnedAttribute(eStructuralFeatureStereotype,
208
							"xmlFeatureKind", featureKindEnumeration, 0, 1); //$NON-NLS-1$
212
							"xmlFeatureKind", featureKindEnumeration, 0, 1); //$NON-NLS-1$
209
						generateOwnedAttribute(eStructuralFeatureStereotype,
213
						generateOwnedAttribute(eStructuralFeatureStereotype,
Lines 220-226 Link Here
220
						generateGeneralization(eAttributeStereotype,
224
						generateGeneralization(eAttributeStereotype,
221
							eStructuralFeatureStereotype);
225
							eStructuralFeatureStereotype);
222
						generateOwnedAttribute(eAttributeStereotype,
226
						generateOwnedAttribute(eAttributeStereotype,
223
							"attributeName", stringPrimitiveType, 0, 1); //$NON-NLS-1$
227
							"attributeName", stringUMLPrimitiveType, 0, 1); //$NON-NLS-1$
224
						generateOwnedAttribute(eAttributeStereotype,
228
						generateOwnedAttribute(eAttributeStereotype,
225
							"isID", booleanPrimitiveType, 0, 1); //$NON-NLS-1$
229
							"isID", booleanPrimitiveType, 0, 1); //$NON-NLS-1$
226
230
Lines 233-239 Link Here
233
						generateGeneralization(eReferenceStereotype,
237
						generateGeneralization(eReferenceStereotype,
234
							eStructuralFeatureStereotype);
238
							eStructuralFeatureStereotype);
235
						generateOwnedAttribute(eReferenceStereotype,
239
						generateOwnedAttribute(eReferenceStereotype,
236
							"referenceName", stringPrimitiveType, 0, 1); //$NON-NLS-1$
240
							"referenceName", stringUMLPrimitiveType, 0, 1); //$NON-NLS-1$
237
						generateOwnedAttribute(eReferenceStereotype,
241
						generateOwnedAttribute(eReferenceStereotype,
238
							"isResolveProxies", booleanPrimitiveType, 0, 1) //$NON-NLS-1$
242
							"isResolveProxies", booleanPrimitiveType, 0, 1) //$NON-NLS-1$
239
							.setBooleanDefaultValue(true);
243
							.setBooleanDefaultValue(true);
(-)plugin.properties (+5 lines)
Lines 48-53 Link Here
48
48
49
_UI_PrimitiveTypesMenu_label = &Primitive Types
49
_UI_PrimitiveTypesMenu_label = &Primitive Types
50
50
51
_UI_DataTypesMenu_label = &Data Types
52
51
_UI_StereotypesMenu_label = &Stereotypes
53
_UI_StereotypesMenu_label = &Stereotypes
52
54
53
_UI_EcoreAction_label = &Ecore
55
_UI_EcoreAction_label = &Ecore
Lines 66-71 Link Here
66
_UI_UMLAction_label = &UML
68
_UI_UMLAction_label = &UML
67
_UI_GenerateUMLPrimitiveTypesActionCommand_label = Generate UML Primitive Types into Model {0}
69
_UI_GenerateUMLPrimitiveTypesActionCommand_label = Generate UML Primitive Types into Model {0}
68
70
71
_UI_XMLAction_label = &XML
72
_UI_GenerateXMLDataTypesActionCommand_label = Generate XML Data Types into Model {0}
73
69
_UI_ExternalizeMenu_label = E&xternalize
74
_UI_ExternalizeMenu_label = E&xternalize
70
75
71
_UI_KeywordsAction_label = &Keywords
76
_UI_KeywordsAction_label = &Keywords
(-)plugin.xml (+20 lines)
Lines 127-132 Link Here
127
          </objectClass>
127
          </objectClass>
128
        </enablement>
128
        </enablement>
129
      </action>
129
      </action>
130
       <action
131
         label="%_UI_XMLAction_label"
132
         class="org.eclipse.uml2.examples.uml.ui.actions.GenerateXMLDataTypesAction"
133
         menubarPath="org.eclipse.uml2.umlMenuID/org.eclipse.uml2.examples.uml.ui.GenerateMenuID/org.eclipse.uml2.examples.uml.ui.DataTypesMenuID/additions"
134
         enablesFor="1"
135
         id="org.eclipse.uml2.examples.uml.ui.GenerateXMLDataTypesActionID">
136
        <enablement>
137
          <objectClass
138
             name="org.eclipse.uml2.uml.Model">
139
          </objectClass>
140
        </enablement>
141
      </action>
130
      <menu
142
      <menu
131
         label="%_UI_ExternalizeMenu_label"
143
         label="%_UI_ExternalizeMenu_label"
132
         path="org.eclipse.uml2.umlMenuID/additions-end"
144
         path="org.eclipse.uml2.umlMenuID/additions-end"
Lines 199-204 Link Here
199
          </objectClass>
211
          </objectClass>
200
        </enablement>
212
        </enablement>
201
      </action>
213
      </action>
214
      <menu
215
            id="org.eclipse.uml2.examples.uml.ui.DataTypesMenuID"
216
            label="%_UI_DataTypesMenu_label"
217
            path="org.eclipse.uml2.umlMenuID/org.eclipse.uml2.examples.uml.ui.GenerateMenuID/additions">
218
         <separator
219
               name="additions">
220
         </separator>
221
      </menu>
202
    </editorContribution>
222
    </editorContribution>
203
  </extension>
223
  </extension>
204
224
(-)src/org/eclipse/uml2/examples/uml/ui/actions/GenerateXMLDataTypesAction.java (+68 lines)
Added Link Here
1
/*
2
 * Copyright (c) 2005, 2006 IBM Corporation and others.
3
 * All rights reserved.   This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *   IBM - initial API and implementation
10
 *
11
 * $Id: GenerateXMLDataTypesAction.java,v 1.2 2006/10/10 20:40:47 khussey Exp $
12
 */
13
package org.eclipse.uml2.examples.uml.ui.actions;
14
15
import java.util.Iterator;
16
17
import org.eclipse.emf.common.command.UnexecutableCommand;
18
import org.eclipse.emf.ecore.EDataType;
19
import org.eclipse.emf.ecore.EEnum;
20
import org.eclipse.emf.ecore.EObject;
21
import org.eclipse.emf.ecore.util.EcoreSwitch;
22
import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
23
import org.eclipse.jface.action.IAction;
24
import org.eclipse.uml2.common.edit.command.ChangeCommand;
25
import org.eclipse.uml2.examples.uml.ui.UMLExamplesUIPlugin;
26
import org.eclipse.uml2.uml.Model;
27
28
public class GenerateXMLDataTypesAction extends GenerateModelAction {
29
	public void run(IAction action) {
30
31
		if (command != UnexecutableCommand.INSTANCE) {
32
			final Model model = (Model) collection.iterator().next();
33
34
			editingDomain.getCommandStack().execute(
35
				new ChangeCommand(editingDomain, new Runnable() {
36
37
					public void run() {
38
39
						new EcoreSwitch() {
40
41
							public Object caseEDataType(EDataType eDataType) {
42
								return generateOwnedDataType(model,
43
									eDataType.getName());
44
							}
45
46
							public Object caseEEnum(EEnum eEnum) {
47
								return eEnum;
48
							}
49
50
							public Object defaultCase(EObject eObject) {
51
52
								for (Iterator eContents = eObject.eContents()
53
									.iterator(); eContents.hasNext();) {
54
55
									doSwitch((EObject) eContents.next());
56
								}
57
58
								return eObject;
59
							}
60
						}.doSwitch(XMLTypePackage.eINSTANCE);
61
					}
62
				}, UMLExamplesUIPlugin.INSTANCE.getString(
63
					"_UI_GenerateXMLDataTypesActionCommand_label", //$NON-NLS-1$
64
					new Object[]{getLabelProvider().getText(model)})));
65
		}
66
	}
67
68
}

Return to bug 150154