Changeset 603
- Timestamp:
- 10/25/05 11:56:37 (3 years ago)
- Files:
-
- trunk/gaphor/data/plugins/kidexport/exportmodel.py (modified) (1 diff)
- trunk/gaphor/data/plugins/kidexport/xmi.kid (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/gaphor/data/plugins/kidexport/exportmodel.py
r573 r603 11 11 template = kid.Template(file=self.template) 12 12 isinstance(template, kid.XMLSerializer) 13 print template.serialize() 13 f = open(filename, 'w') 14 f.write(template.serialize()) 15 f.close() trunk/gaphor/data/plugins/kidexport/xmi.kid
r573 r603 37 37 attributes[value]=data 38 38 return attributes 39 40 from gaphor.misc.uniqueid import generate_id 41 42 43 def getTagDefinitions(): 44 items = [] 45 for node in elements: 46 if hasattr(node, 'taggedValue'): 47 for tag in node.taggedValue: 48 items.append(tag) 49 return items 50 51 39 52 ?> 40 53 … … 55 68 isRoot = 'false' isLeaf = 'false' isAbstract = 'false' 56 69 py:attrs="{'xmi.id':topLevelPackage.id, 'name':topLevelPackage.name}"> 70 <UML:ModelElement.taggedValue 71 py:replace="processModelElementTaggedValue(topLevelPackage)"/> 57 72 58 73 <UML:Classifier.feature py:def="processClassifierFeature(item)"> 74 75 <UML:Namespace.ownedElement> 76 <UML:Class py:for="cls in [a.typeValue for a in item.ownedAttribute if a.typeValue]" 77 visibility='public' isSpecification='false' isRoot='false' isAbstract='false' 78 isActive='false' 79 py:attrs="{'xmi.id': cls.id, 'name':cls.value}"/> 80 </UML:Namespace.ownedElement> 59 81 60 82 <UML:Attribute xmi.id = 'I48de81cbm106d41f950cmm7f35' name = 'someAttribute' … … 63 85 py:for="attribute in [a for a in item.ownedAttribute if a.typeValue]" 64 86 py:attrs="{'xmi.id':attribute.id, 'name':attribute.name}"> 87 <UML:ModelElement.taggedValue 88 py:replace="processModelElementTaggedValue(attribute)"/> 65 89 <UML:StructuralFeature.type> 66 90 <UML:Class xmi.idref = 'I48de81cbm106d41f950cmm7f24' 67 py:attrs="{'xmi.id ':attribute.typeValue.id}"/>91 py:attrs="{'xmi.idref':attribute.typeValue.id}"/> 68 92 </UML:StructuralFeature.type> 69 93 </UML:Attribute> … … 99 123 </UML:Method> 100 124 125 126 101 127 </UML:Classifier.feature> 128 129 <UML:ModelElement.taggedValue 130 py:def="processModelElementTaggedValue(node)" 131 py:for="taggedValue in node.taggedValue" 132 py:content="processTaggedValue(taggedValue)"> 133 </UML:ModelElement.taggedValue> 134 135 <UML:TagDefinition py:def="processTagDefinition(tagDefinition)" 136 xmi.id = 'I5bd6b6fm106dbda4889mm7f24' name = 'someTag' 137 py:attrs="{'xmi.id':tagDefinition.id+'ref', 'name':tagDefinition.value.split('=')[0]}" 138 isSpecification = 'false'> 139 <UML:TagDefinition.multiplicity> 140 <UML:Multiplicity xmi.id = 'I5bd6b6fm106dbda4889mm7f23' 141 py:attrs="{'xmi.id':tagDefinition.id+'multi'}"> 142 <UML:Multiplicity.range> 143 <UML:MultiplicityRange xmi.id = 'I5bd6b6fm106dbda4889mm7f22' lower = '1' 144 upper = '1' 145 py:attrs="{'xmi.id':tagDefinition.id+'multirange'}"/> 146 </UML:Multiplicity.range> 147 </UML:Multiplicity> 148 </UML:TagDefinition.multiplicity> 149 </UML:TagDefinition> 150 151 152 <UML:TaggedValue py:def="processTaggedValue(taggedValue)" 153 xmi.id = 'I5bd6b6fm106dbda4889mm7f21' isSpecification = 'false' 154 py:attrs="{'xmi.id':taggedValue.id}"> 155 <UML:TaggedValue.dataValue 156 py:content="taggedValue.value.split('=')[-1]">someTagValue</UML:TaggedValue.dataValue> 157 <UML:TaggedValue.type> 158 <UML:TagDefinition xmi.idref = 'I5bd6b6fm106dbda4889mm7f24' 159 py:attrs="{'xmi.idref':taggedValue.id+'ref'}"/> 160 </UML:TaggedValue.type> 161 </UML:TaggedValue> 102 162 103 163 <UML:Abstraction py:def="processImplementation(abstraction)" … … 119 179 xmi.id = 'I48de81cbm106d41f950cmm7eb4' isSpecification = 'false' 120 180 py:attrs="{'xmi.id':generalization.id}"> 181 <UML:ModelElement.taggedValue 182 py:replace="processModelElementTaggedValue(generalization)"/> 121 183 <UML:Generalization.child> 122 184 <UML:Class xmi.idref = 'I48de81cbm106d41f950cmm7ec7' … … 134 196 isAbstract = 'false' 135 197 py:attrs="{'xmi.id':interface.id, 'name':interface.name}"> 198 <UML:ModelElement.taggedValue 199 py:replace="processModelElementTaggedValue(interface)"/> 136 200 <UML:Classifier.feature py:replace="processClassifierFeature(interface)"/> 137 201 </UML:Interface> … … 144 208 py:attrs="{'xmi.id':cls.id, 'name':cls.name, 145 209 'isAbstract':cls.isAbstract and 'true' or 'false'}"> 210 <UML:ModelElement.taggedValue 211 py:replace="processModelElementTaggedValue(cls)"/> 146 212 147 213 <UML:ModelElement.stereotype py:if="cls.appliedStereotype"> … … 170 236 isAbstract = 'false' 171 237 py:attrs="{'xml.id':stereotype.id, 'name':stereotype.name}"> 238 <UML:ModelElement.taggedValue 239 py:replace="processModelElementTaggedValue(stereotype)"/> 172 240 <UML:Stereotype.baseClass py:content="stereotype.ownedAttribute.type.name">Class</UML:Stereotype.baseClass> 173 241 </UML:Stereotype> … … 177 245 isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false' 178 246 py:attrs="{'xmi.idref':package.id, 'name':package.name}"> 247 <UML:ModelElement.taggedValue 248 py:replace="processModelElementTaggedValue(package)"/> 179 249 <UML:Namespace.ownedElement> 180 250 <packageContent py:for="item in getPackageChildNodes(package=package)" … … 189 259 isRoot = 'false' isLeaf = 'false' isAbstract = 'false' 190 260 py:attrs="{'xmi.id':association.id, 'name':association.name}"> 261 <UML:ModelElement.taggedValue 262 py:replace="processModelElementTaggedValue(association)"/> 191 263 <UML:Association.connection> 192 264 <UML:AssociationEnd xmi.id = 'I48de81cbm106d41f950cmm7d35' visibility = 'public' … … 218 290 <UML:Namespace.ownedElement> 219 291 <packageContent py:for="item in getPackageChildNodes(package=topLevelPackage)" 220 py:replace="modelProcessNode(item)"/> 221 222 223 224 <UML:Class xmi.id = 'I48de81cbm106d41f950cmm7cb9' name = 'ClassWithWorkflow' 225 visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' 226 isAbstract = 'false' isActive = 'false'> 227 <UML2:BehavioredClassifier.ownedBehavior> 228 <UML2:StateMachine xmi.id = 'I48de81cbm106d41f950cmm7ca6' name = 'State_Machine_1' 229 visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' 230 isAbstract = 'false' isActive = 'false'> 231 <UML2:StateMachine.region> 232 <UML2:Region xmi.id = 'I48de81cbm106d41f950cmm7ca5' name = 'TopRegion_1' 233 visibility = 'public' isSpecification = 'false'> 234 <UML2:Region.subvertex> 235 <UML2:Pseudostate xmi.id = 'I48de81cbm106d41f950cmm7c9d' name = 'start' 236 visibility = 'public' isSpecification = 'false' kind = 'initial'> 237 <UML2:Vertex.outgoing> 238 <UML2:Transition xmi.idref = 'I48de81cbm106d41f950cmm7c8d'/> 239 </UML2:Vertex.outgoing> 240 </UML2:Pseudostate> 241 <UML2:State xmi.id = 'I48de81cbm106d41f950cmm7c98' name = 'middle' visibility = 'public' 242 isSpecification = 'false'> 243 <UML2:Vertex.incoming> 244 <UML2:Transition xmi.idref = 'I48de81cbm106d41f950cmm7c8d'/> 245 </UML2:Vertex.incoming> 246 </UML2:State> 247 </UML2:Region.subvertex> 248 <UML2:Region.transition> 249 <UML2:Transition xmi.id = 'I48de81cbm106d41f950cmm7c8d' name = 'gotoMiddle' 250 visibility = 'public' isSpecification = 'false' kind = 'external'> 251 <UML2:Transition.source> 252 <UML2:Pseudostate xmi.idref = 'I48de81cbm106d41f950cmm7c9d'/> 253 </UML2:Transition.source> 254 <UML2:Transition.target> 255 <UML2:State xmi.idref = 'I48de81cbm106d41f950cmm7c98'/> 256 </UML2:Transition.target> 257 </UML2:Transition> 258 </UML2:Region.transition> 259 </UML2:Region> 260 </UML2:StateMachine.region> 261 </UML2:StateMachine> 262 </UML2:BehavioredClassifier.ownedBehavior> 263 </UML:Class> 292 py:replace="modelProcessNode(item)"/> 293 294 295 <UML:TagDefinition py:for="tagDef in getTagDefinitions()" 296 py:replace="processTagDefinition(tagDef)"/> 297 264 298 </UML:Namespace.ownedElement> 265 299 </UML:Model>
