Changeset 1926
- Timestamp:
- 03/18/15 10:05:36 (10 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/autoquest-plugin-uml-test/src/test/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtilsTest.java
r1917 r1926 23 23 import java.util.logging.Level; 24 24 25 import static org.junit.Assert.*; 26 25 27 import org.apache.commons.lang.SerializationUtils; 26 28 import org.eclipse.uml2.uml.Interaction; 27 29 import org.eclipse.uml2.uml.Model; 28 30 import org.eclipse.uml2.uml.StateMachine; 29 import org.eclipse.uml2.uml.Transition;30 31 import org.eclipse.uml2.uml.UMLPackage; 31 32 import org.junit.After; … … 36 37 import de.ugoe.cs.autoquest.eventcore.Event; 37 38 import de.ugoe.cs.autoquest.plugin.http.HTTPLogParser; 38 import de.ugoe.cs.autoquest.plugin.http. HTTPUtils;39 import de.ugoe.cs.autoquest.plugin.http.SOAPUtils; 39 40 import de.ugoe.cs.autoquest.plugin.http.eventcore.SOAPEventType; 40 import de.ugoe.cs.autoquest.plugin.uml.eventcore.UMLTransitionType;41 41 import de.ugoe.cs.autoquest.testgeneration.RandomWalkGenerator; 42 42 import de.ugoe.cs.autoquest.usageprofiles.FirstOrderMarkovModel; … … 59 59 new TextConsole(Level.INFO); 60 60 } 61 61 62 62 @After 63 63 public void tearDown() throws Exception { … … 68 68 public void testCreateUMLTransitionSequence_1() throws Exception { 69 69 // parse log file 70 HTTPLogParser parser = new HTTPLogParser(); 71 parser.parseFile(new File(ClassLoader.getSystemResource("createSequence_1_usagedata.log") 70 HTTPLogParser parser = 71 new HTTPLogParser(new File(ClassLoader.getSystemResource("ita_v2_servicenamemap.txt") 72 .getFile())); 73 parser.parseFile(new File(ClassLoader.getSystemResource("ita_usagejournal_v2_2.log") 72 74 .getFile())); 73 75 Collection<List<Event>> httpSequences = parser.getSequences(); 74 Model model = 75 ModelUtils.loadModel(ClassLoader76 .getSystemResourceAsStream("createSequence_1_model.uml"));76 77 Model model = 78 ModelUtils.loadModel(ClassLoader.getSystemResourceAsStream("ita_model_v2.uml")); 77 79 78 80 StateMachine stateMachine = 79 (StateMachine) model.getPackagedElement("PatientIDBehavior", true, 80 UMLPackage.Literals.STATE_MACHINE, true); 81 81 (StateMachine) model.getPackagedElement("StateMachineTransportService", true, 82 UMLPackage.Literals.STATE_MACHINE, true); 83 84 82 85 Collection<List<Event>> umlSequences = new LinkedList<>(); 86 87 // remove everything but transport from sequences 83 88 for (List<Event> httpSequence : httpSequences) { 84 89 for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { … … 88 93 } 89 94 else { 90 if (!event.getType().toString().contains("ixsmq")) { 95 SOAPEventType eventType = (SOAPEventType) event.getType(); 96 if (!"TransportService".equals(eventType.getServiceName())) { 91 97 eventIter.remove(); 92 98 } 93 99 } 94 100 } 95 96 101 umlSequences.add(UMLUtils.createUMLTransitionSequence(httpSequence, stateMachine)); 97 102 } … … 100 105 @Test 101 106 public void testConvertStateMachineToUsageProfile_1() throws Exception { 102 // parse log file 103 HTTPLogParser parser = new HTTPLogParser(); 104 parser.parseFile(new File(ClassLoader.getSystemResource("createSequence_1_usagedata.log") 107 HTTPLogParser parser = 108 new HTTPLogParser(new File(ClassLoader.getSystemResource("ita_v2_servicenamemap.txt") 109 .getFile())); 110 parser.parseFile(new File(ClassLoader.getSystemResource("ita_usagejournal_v2_2.log") 105 111 .getFile())); 106 112 Collection<List<Event>> httpSequences = parser.getSequences(); 107 Model model = 108 ModelUtils.loadModel(ClassLoader 109 .getSystemResourceAsStream("createSequence_1_model.uml")); 110 111 StateMachine stateMachine = 112 (StateMachine) model.getPackagedElement("PatientIDBehavior", true, 113 UMLPackage.Literals.STATE_MACHINE, true); 114 115 Collection<List<Event>> umlSequences = new LinkedList<>(); 113 114 Model model = 115 ModelUtils.loadModel(ClassLoader.getSystemResourceAsStream("ita_model_v2.uml")); 116 117 // remove everything but transport from sequences 116 118 for (List<Event> httpSequence : httpSequences) { 117 119 for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { … … 121 123 } 122 124 else { 123 if (!event.getType().toString().contains("ixsmq")) { 125 SOAPEventType eventType = (SOAPEventType) event.getType(); 126 if (!"TransportService".equals(eventType.getServiceName())) { 124 127 eventIter.remove(); 125 128 } 126 129 } 127 130 } 128 129 List<List<Transition>> matchingSequences = 130 UMLUtils.determineMatchingTransitionSequences(httpSequence, stateMachine); 131 if (matchingSequences.size() >= 1) { 132 List<Event> umlEventSequence = new LinkedList<>(); 133 for (Transition transition : matchingSequences.get(0)) { 134 umlEventSequence.add(new Event(new UMLTransitionType(transition))); 135 } 136 umlSequences.add(umlEventSequence); 137 } 138 } 139 UMLUtils.convertStateMachineToUsageProfile(umlSequences, stateMachine); 140 141 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "convertStateMachineToUsageProfile_1.uml"); 131 } 132 133 StateMachine stateMachine = 134 (StateMachine) model.getPackagedElement("StateMachineTransportService", true, 135 UMLPackage.Literals.STATE_MACHINE, true); 136 137 UMLUtils.convertStateMachineToUsageProfile(httpSequences, stateMachine); 138 139 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "ita_v2_result.uml"); 142 140 } 143 141 … … 170 168 } 171 169 172 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "testCreateInteractionFromEventSequence_1_result.uml"); 173 } 174 170 ModelUtils.writeModelToFile(model, OUTPUT_DIR + 171 "testCreateInteractionFromEventSequence_1_result.uml"); 172 } 173 175 174 @Test 176 175 public void testCreateInteractionFromEventSequence_2() throws Exception { … … 201 200 } 202 201 203 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "testCreateInteractionFromEventSequence_1_result.uml"); 204 } 205 202 ModelUtils.writeModelToFile(model, OUTPUT_DIR + 203 "testCreateInteractionFromEventSequence_1_result.uml"); 204 } 205 206 206 @Test 207 207 public void testCalculateUsageScore_1() throws Exception { … … 220 220 Collection<List<Event>> simpleSOAPSequences = new LinkedList<>(); 221 221 for (List<Event> httpSequence : httpSequences) { 222 simpleSOAPSequences.add( HTTPUtils.convertToSimpleSOAPEvent(httpSequence, true));222 simpleSOAPSequences.add(SOAPUtils.convertToSimpleSOAPEvent(httpSequence, true)); 223 223 } 224 224 … … 244 244 } 245 245 } 246 246 247 247 @Test 248 248 public void testCreateScheduling_1() throws Exception { 249 249 Model model = 250 ModelUtils.loadModel(ClassLoader 251 .getSystemResourceAsStream("testCreateScheduling_1_testsuite.uml")); 252 253 IStochasticProcess usageProfile = (IStochasticProcess) SerializationUtils.deserialize(ClassLoader.getSystemResourceAsStream("testCreateScheduling_1_usageprofile.dat")); 254 250 ModelUtils.loadModel(ClassLoader 251 .getSystemResourceAsStream("testCreateScheduling_1_testsuite.uml")); 252 253 IStochasticProcess usageProfile = 254 (IStochasticProcess) SerializationUtils.deserialize(ClassLoader 255 .getSystemResourceAsStream("testCreateScheduling_1_usageprofile.dat")); 256 255 257 UMLUtils.createScheduling(model, usageProfile, null); 256 258 257 259 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "testCreateScheduling_1_result.uml"); 258 260 } 259 261 260 262 @Test 261 263 public void testValidateModelWithLog_1() throws Exception { 262 264 HTTPLogParser parser = 263 264 265 265 new HTTPLogParser(new File(ClassLoader 266 .getSystemResource("testCreateInteractionFromEventSequence_1_properties.txt") 267 .getFile())); 266 268 parser 267 269 .parseFile(new File(ClassLoader … … 270 272 Collection<List<Event>> httpSequences = parser.getSequences(); 271 273 274 for (List<Event> httpSequence : httpSequences) { 275 SOAPUtils.removeNonSOAPEvents(httpSequence); 276 } 272 277 273 278 Model model = 274 279 ModelUtils.loadModel(ClassLoader 275 280 .getSystemResourceAsStream("testCreateInteractionFromEventSequence_1_model.uml")); 276 281 277 282 int violations = UMLUtils.validateModelWithLog(httpSequences, model, null); 278 if ( violations==0) {283 if (violations == 0) { 279 284 System.out.println("No problems found."); 280 } else { 281 System.out.println(violations + " violations found."); 282 } 283 } 284 285 } 286 else { 287 System.out.println(violations + " violations found."); 288 } 289 } 290 285 291 @Test 286 292 public void testValidateModelWithLog_2() throws Exception { 287 293 HTTPLogParser parser = 288 289 290 294 new HTTPLogParser(new File(ClassLoader 295 .getSystemResource("testCreateInteractionFromEventSequence_2_properties.txt") 296 .getFile())); 291 297 parser 292 298 .parseFile(new File(ClassLoader … … 295 301 Collection<List<Event>> httpSequences = parser.getSequences(); 296 302 303 for (List<Event> httpSequence : httpSequences) { 304 SOAPUtils.removeNonSOAPEvents(httpSequence); 305 } 297 306 298 307 Model model = 299 308 ModelUtils.loadModel(ClassLoader 300 309 .getSystemResourceAsStream("testCreateInteractionFromEventSequence_2_model.uml")); 301 310 302 311 int violations = UMLUtils.validateModelWithLog(httpSequences, model, null); 303 if ( violations==0) {312 if (violations == 0) { 304 313 System.out.println("No problems found."); 305 } else { 314 } 315 else { 306 316 System.out.println(violations + " violations found."); 307 317 } 308 318 } 309 319 310 320 @Test 311 321 public void testValidateModelWithLog_HL7_RLUS_v3() throws Exception { 312 322 HTTPLogParser parser = 313 new HTTPLogParser(new File(ClassLoader 314 .getSystemResource("hl7_servicenamemap.txt") 315 .getFile())); 323 new HTTPLogParser(new File(ClassLoader.getSystemResource("hl7_servicenamemap.txt") 324 .getFile())); 316 325 parser 317 326 .parseFile(new File(ClassLoader … … 320 329 Collection<List<Event>> httpSequences = parser.getSequences(); 321 330 322 323 Model model = 324 ModelUtils.loadModel(ClassLoader 325 .getSystemResourceAsStream("hl7model_v3.uml")); 326 331 for (List<Event> httpSequence : httpSequences) { 332 SOAPUtils.removeNonSOAPEvents(httpSequence); 333 } 334 335 Model model = 336 ModelUtils.loadModel(ClassLoader.getSystemResourceAsStream("hl7model_v3.uml")); 337 327 338 int violations = UMLUtils.validateModelWithLog(httpSequences, model, "RLUSTestSuite_1"); 328 if ( violations==0) {339 if (violations == 0) { 329 340 System.out.println("No problems found."); 330 } else { 341 } 342 else { 331 343 System.out.println(violations + " violations found."); 332 344 } 333 345 334 346 // remove everything but rlusService from sequences 335 347 for (List<Event> httpSequence : httpSequences) { 336 348 for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 337 349 Event event = eventIter.next(); 338 if (!(event.getType() instanceof SOAPEventType)) { 339 eventIter.remove(); 340 } else { 341 SOAPEventType eventType = (SOAPEventType) event.getType(); 342 if( !"rlusService".equals(eventType.getServiceName()) ) { 343 eventIter.remove(); 344 } 345 } 346 } 347 348 UMLUtils.createInteractionFromEventSequence(httpSequence, model, "foo", "RLUSTestSuite_1"); 349 } 350 350 SOAPEventType eventType = (SOAPEventType) event.getType(); 351 if (!"rlusService".equals(eventType.getServiceName()) ) { 352 eventIter.remove(); 353 } 354 } 355 356 UMLUtils.createInteractionFromEventSequence(httpSequence, model, "rlustest1", 357 "RLUSTestSuite_1"); 358 UMLUtils.createInteractionFromEventSequence(SOAPUtils.convertToSimpleSOAPEvent(httpSequence, true), model, "rlustest2", 359 "RLUSTestSuite_1"); 360 } 361 351 362 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "hl7_v3_result.uml"); 352 363 } 353 364 354 365 @Test 355 366 public void testValidateModelWithLog_HL7_IXS_v3() throws Exception { 356 367 HTTPLogParser parser = 357 new HTTPLogParser(new File(ClassLoader 358 .getSystemResource("hl7_ixs_servicenamemap.txt") 359 .getFile())); 368 new HTTPLogParser(new File(ClassLoader.getSystemResource("hl7_ixs_servicenamemap.txt") 369 .getFile())); 360 370 parser 361 371 .parseFile(new File(ClassLoader … … 364 374 Collection<List<Event>> httpSequences = parser.getSequences(); 365 375 366 367 Model model = 368 ModelUtils.loadModel(ClassLoader 369 .getSystemResourceAsStream("hl7model_v3.uml")); 370 376 for (List<Event> httpSequence : httpSequences) { 377 SOAPUtils.removeNonSOAPEvents(httpSequence); 378 } 379 380 Model model = 381 ModelUtils.loadModel(ClassLoader.getSystemResourceAsStream("hl7model_v3.uml")); 382 371 383 int violations = UMLUtils.validateModelWithLog(httpSequences, model, "IXSTestSuite_1"); 372 if ( violations==0) {384 if (violations == 0) { 373 385 System.out.println("No problems found."); 374 } else { 386 } 387 else { 375 388 System.out.println(violations + " violations found."); 376 389 } 377 390 378 391 // remove everything but rlusService from sequences 379 392 for (List<Event> httpSequence : httpSequences) { 380 393 for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 381 394 Event event = eventIter.next(); 382 if (!(event.getType() instanceof SOAPEventType)) { 383 eventIter.remove(); 384 } else { 385 SOAPEventType eventType = (SOAPEventType) event.getType(); 386 if( !"ixsService".equals(eventType.getServiceName()) ) { 387 eventIter.remove(); 388 } 389 } 390 } 391 392 UMLUtils.createInteractionFromEventSequence(httpSequence, model, "foo", "IXSTestSuite_1"); 393 } 394 395 SOAPEventType eventType = (SOAPEventType) event.getType(); 396 if (!"ixsService".equals(eventType.getServiceName())) { 397 eventIter.remove(); 398 } 399 } 400 401 UMLUtils.createInteractionFromEventSequence(httpSequence, model, "foo", 402 "IXSTestSuite_1"); 403 } 404 395 405 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "hl7_v3_result.uml"); 396 406 } 397 407 398 408 @Test 399 409 public void testValidateModelWithLog_ITA_v2() throws Exception { 400 410 HTTPLogParser parser = 401 new HTTPLogParser(new File(ClassLoader 402 .getSystemResource("ita_v2_servicenamemap.txt") 403 .getFile())); 404 parser 405 .parseFile(new File(ClassLoader 406 .getSystemResource("ita_usagejournal_v2_2.log") 407 .getFile())); 408 Collection<List<Event>> httpSequences = parser.getSequences(); 409 410 411 Model model = 412 ModelUtils.loadModel(ClassLoader 413 .getSystemResourceAsStream("ita_model_v2.uml")); 414 411 new HTTPLogParser(new File(ClassLoader.getSystemResource("ita_v2_servicenamemap.txt") 412 .getFile())); 413 parser.parseFile(new File(ClassLoader.getSystemResource("ita_usagejournal_v2_2.log") 414 .getFile())); 415 Collection<List<Event>> httpSequences = parser.getSequences(); 416 417 for (List<Event> httpSequence : httpSequences) { 418 SOAPUtils.removeNonSOAPEvents(httpSequence); 419 } 420 421 Model model = 422 ModelUtils.loadModel(ClassLoader.getSystemResourceAsStream("ita_model_v2.uml")); 423 415 424 int violations = UMLUtils.validateModelWithLog(httpSequences, model, null); 416 if ( violations==0) {425 if (violations == 0) { 417 426 System.out.println("No problems found."); 418 } else { 427 } 428 else { 419 429 System.out.println(violations + " violations found."); 420 430 } 421 431 422 432 // remove everything but transport from sequences 423 433 for (List<Event> httpSequence : httpSequences) { 424 434 for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 425 435 Event event = eventIter.next(); 426 if (!(event.getType() instanceof SOAPEventType)) { 427 eventIter.remove(); 428 } else { 429 SOAPEventType eventType = (SOAPEventType) event.getType(); 430 if( !"TransportService".equals(eventType.getServiceName()) ) { 431 eventIter.remove(); 432 } 433 } 434 } 435 436 UMLUtils.createInteractionFromEventSequence(httpSequence, model, "foo", "LogisticsTestSuite"); 437 } 438 436 SOAPEventType eventType = (SOAPEventType) event.getType(); 437 if (!"TransportService".equals(eventType.getServiceName())) { 438 eventIter.remove(); 439 } 440 } 441 442 UMLUtils.createInteractionFromEventSequence(httpSequence, model, "foo", 443 "LogisticsTestSuite"); 444 } 445 439 446 ModelUtils.writeModelToFile(model, OUTPUT_DIR + "ita_v2_result.uml"); 440 447 441 448 } 442 449 -
trunk/autoquest-plugin-uml-test/src/test/resources/hl7model_v3.uml
r1914 r1926 69 69 </packagedElement> 70 70 <packagedElement xmi:type="uml:DataType" xmi:id="_GZLQULwTEeS8kt2gTxQkQg" name="UpdateSemanticSignifierRequest"> 71 <ownedAttribute xmi:type="uml:Property" xmi:id="_VO7joLwTEeS8kt2gTxQkQg" name="semantic-signifierName"/> 71 <ownedAttribute xmi:type="uml:Property" xmi:id="_VO7joLwTEeS8kt2gTxQkQg" name="semantic-signifierName"> 72 <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 73 </ownedAttribute> 72 74 <ownedAttribute xmi:type="uml:Property" xmi:id="_Z4koQLwTEeS8kt2gTxQkQg" name="RLUSsemantic-signifier" type="_hVXYsLwNEeS8kt2gTxQkQg"/> 73 75 </packagedElement> … … 101 103 </packagedElement> 102 104 <packagedElement xmi:type="uml:PrimitiveType" xmi:id="_K7AJwLzkEeSu8bCjKN8_hw" name="semantic-signifierName"/> 103 <packagedElement xmi:type="uml:DataType" xmi:id="_14bXIMcQEeSYR7D_AlByKg" name=" documentType">105 <packagedElement xmi:type="uml:DataType" xmi:id="_14bXIMcQEeSYR7D_AlByKg" name="XDW.WorkflowDocument"> 104 106 <ownedAttribute xmi:type="uml:Property" xmi:id="_c20sIMcWEeSYR7D_AlByKg" name="version" visibility="public"> 105 107 <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> … … 188 190 <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_TUh2gMcWEeSYR7D_AlByKg" name="DESC"/> 189 191 </packagedElement> 190 <packagedElement xmi:type="uml:DataType" xmi:id="_nN278McXEeSYR7D_AlByKg" name="rlpnotes _GetResponse">192 <packagedElement xmi:type="uml:DataType" xmi:id="_nN278McXEeSYR7D_AlByKg" name="rlpnotes:GetResponse"> 191 193 <ownedAttribute xmi:type="uml:Property" xmi:id="_y3xlYMcXEeSYR7D_AlByKg" name="document" visibility="public" type="_14bXIMcQEeSYR7D_AlByKg"> 192 194 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zXPIkMcXEeSYR7D_AlByKg"/> … … 204 206 </ownedAttribute> 205 207 </packagedElement> 206 <packagedElement xmi:type="uml:DataType" xmi:id="_Kv7tUMcYEeSYR7D_AlByKg" name="rlpnotes _PutRequest">207 <ownedAttribute xmi:type="uml:Property" xmi:id="_ZAJOIMcZEeSYR7D_AlByKg" name=" document" visibility="public" type="_14bXIMcQEeSYR7D_AlByKg">208 <packagedElement xmi:type="uml:DataType" xmi:id="_Kv7tUMcYEeSYR7D_AlByKg" name="rlpnotes:PutRequest"> 209 <ownedAttribute xmi:type="uml:Property" xmi:id="_ZAJOIMcZEeSYR7D_AlByKg" name="XDW.WorkflowDocument" visibility="public" type="_14bXIMcQEeSYR7D_AlByKg"> 208 210 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aBYosMcZEeSYR7D_AlByKg" value="1"/> 209 211 <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aBZPwMcZEeSYR7D_AlByKg" value="1"/> … … 255 257 </defaultValue> 256 258 </ownedAttribute> 257 <ownedAttribute xmi:type="uml:Property" xmi:id="_2AM-0McrEeSYR7D_AlByKg" name=" SearchByCriteria" visibility="public" type="_pLWzUMcrEeSYR7D_AlByKg">259 <ownedAttribute xmi:type="uml:Property" xmi:id="_2AM-0McrEeSYR7D_AlByKg" name="searchByCriteria" visibility="public" type="_pLWzUMcrEeSYR7D_AlByKg"> 258 260 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3k-kQMcrEeSYR7D_AlByKg"/> 259 261 <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3lBnkMcrEeSYR7D_AlByKg" value="1"/> … … 263 265 </ownedAttribute> 264 266 <ownedAttribute xmi:type="uml:Property" xmi:id="_mp4foMcsEeSYR7D_AlByKg" name="SearchByExample" visibility="public"> 267 <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 265 268 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nxDjEMcsEeSYR7D_AlByKg"/> 266 269 <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nxEKIMcsEeSYR7D_AlByKg" value="1"/> … … 306 309 </defaultValue> 307 310 </ownedAttribute> 308 <ownedAttribute xmi:type="uml:Property" xmi:id="_jP6_YMcaEeSYR7D_AlByKg" name="prev ResultID" visibility="public">311 <ownedAttribute xmi:type="uml:Property" xmi:id="_jP6_YMcaEeSYR7D_AlByKg" name="previousResultID" visibility="public"> 309 312 <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 310 313 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLhsAMcaEeSYR7D_AlByKg" value="1"/> … … 315 318 </ownedAttribute> 316 319 </packagedElement> 317 <packagedElement xmi:type="uml:DataType" xmi:id="_sbdh4McaEeSYR7D_AlByKg" name="rlpnotes _ListResponse">320 <packagedElement xmi:type="uml:DataType" xmi:id="_sbdh4McaEeSYR7D_AlByKg" name="rlpnotes:ListResponse"> 318 321 <ownedAttribute xmi:type="uml:Property" xmi:id="_vZbu4McaEeSYR7D_AlByKg" name="document" visibility="public" type="_14bXIMcQEeSYR7D_AlByKg"> 319 322 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wAgV8McaEeSYR7D_AlByKg"/> … … 363 366 </defaultValue> 364 367 </ownedAttribute> 365 <ownedAttribute xmi:type="uml:Property" xmi:id="_PnTkmccbEeSYR7D_AlByKg" name="prev ResultID" visibility="public">368 <ownedAttribute xmi:type="uml:Property" xmi:id="_PnTkmccbEeSYR7D_AlByKg" name="previousResultID" visibility="public"> 366 369 <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 367 370 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PnTkmscbEeSYR7D_AlByKg" value="1"/> … … 451 454 </defaultValue> 452 455 </ownedAttribute> 453 <ownedAttribute xmi:type="uml:Property" xmi:id="_gVSnAMcqEeSYR7D_AlByKg" name=" CBRNetworkName" visibility="public">456 <ownedAttribute xmi:type="uml:Property" xmi:id="_gVSnAMcqEeSYR7D_AlByKg" name="NetworkName" visibility="public"> 454 457 <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 455 458 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hs89gMcqEeSYR7D_AlByKg" value="1"/> … … 459 462 </defaultValue> 460 463 </ownedAttribute> 461 <ownedAttribute xmi:type="uml:Property" xmi:id="_jAXtMMcqEeSYR7D_AlByKg" name=" CBRNetworkAddress" visibility="public">464 <ownedAttribute xmi:type="uml:Property" xmi:id="_jAXtMMcqEeSYR7D_AlByKg" name="NetworkAddress" visibility="public"> 462 465 <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 463 466 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIWB4McqEeSYR7D_AlByKg" value="1"/> … … 614 617 <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_5pptkMcyEeSYR7D_AlByKg" name="Numeric"/> 615 618 </packagedElement> 619 <packagedElement xmi:type="uml:DataType" xmi:id="_XENlYMvZEeSyCug81TQDwA" name="FindSemanticSignifierRequest"/> 616 620 </packagedElement> 617 621 <packagedElement xmi:type="uml:Package" xmi:id="__Qta4L2pEeSe48NTDZ3Xhg" name="IXS"> … … 1267 1271 </defaultValue> 1268 1272 </ownedAttribute> 1269 </packagedElement>1270 </packagedElement>1271 </packagedElement>1272 <packagedElement xmi:type="uml:Package" xmi:id="_BQqV4L2pEeSe48NTDZ3Xhg" name="Instances">1273 <packagedElement xmi:type="uml:Package" xmi:id="_HdUFYL2pEeSe48NTDZ3Xhg" name="RLUS">1274 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_CDZzwLzgEeSu8bCjKN8_hw" name="ListSemanticSignifiersRequest_spec" classifier="_w0vXYKCbEeSR_swKuhjZ_A">1275 <slot xmi:type="uml:Slot" xmi:id="_sEXpQLziEeSu8bCjKN8_hw" definingFeature="_km5yILziEeSu8bCjKN8_hw">1276 <value xmi:type="uml:LiteralString" xmi:id="_ygYqcLziEeSu8bCjKN8_hw"/>1277 </slot>1278 </packagedElement>1279 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_JdHMQLzgEeSu8bCjKN8_hw" name="ListSemanticSignifiersResponse_spec" classifier="_XK8dQKCcEeSR_swKuhjZ_A">1280 <slot xmi:type="uml:Slot" xmi:id="_1BPdoLziEeSu8bCjKN8_hw" definingFeature="_pptFUKChEeSR_swKuhjZ_A">1281 <value xmi:type="uml:LiteralString" xmi:id="_U1wYILzjEeSu8bCjKN8_hw" name="LiteralString_XDW" value="xdw"/>1282 </slot>1283 <slot xmi:type="uml:Slot" xmi:id="_1v9IULzjEeSu8bCjKN8_hw" definingFeature="_pptFUKChEeSR_swKuhjZ_A">1284 <value xmi:type="uml:LiteralString" xmi:id="_70uHILzjEeSu8bCjKN8_hw" name="LiteralString_CDA2REPORT" value="cda2report"/>1285 </slot>1286 <slot xmi:type="uml:Slot" xmi:id="_HDWVgMfWEeSYR7D_AlByKg" definingFeature="_pptFUKChEeSR_swKuhjZ_A">1287 <value xmi:type="uml:LiteralString" xmi:id="_OD5AEMfWEeSYR7D_AlByKg" name="" value="rlpnotes"/>1288 </slot>1289 </packagedElement>1290 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_EgFSQMf8EeSYR7D_AlByKg" name="put" classifier="_Kv7tUMcYEeSYR7D_AlByKg">1291 <slot xmi:type="uml:Slot" xmi:id="_Nv-wUMf8EeSYR7D_AlByKg" definingFeature="_ZAJOIMcZEeSYR7D_AlByKg">1292 <value xmi:type="uml:InstanceValue" xmi:id="__m28sMf_EeSYR7D_AlByKg" instance="_dkTksMf8EeSYR7D_AlByKg"/>1293 </slot>1294 <slot xmi:type="uml:Slot" xmi:id="_UfjmsMf8EeSYR7D_AlByKg" definingFeature="_dkzFEMcZEeSYR7D_AlByKg"/>1295 <slot xmi:type="uml:Slot" xmi:id="_WiBNsMf8EeSYR7D_AlByKg" definingFeature="_izMckMcZEeSYR7D_AlByKg">1296 <value xmi:type="uml:LiteralString" xmi:id="_adEuAMf8EeSYR7D_AlByKg" value="INSERT"/>1297 </slot>1298 </packagedElement>1299 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_dkTksMf8EeSYR7D_AlByKg" name="ExampleDocument" classifier="_14bXIMcQEeSYR7D_AlByKg">1300 <slot xmi:type="uml:Slot" xmi:id="_kgD14Mf8EeSYR7D_AlByKg" definingFeature="_c20sIMcWEeSYR7D_AlByKg">1301 <value xmi:type="uml:LiteralString" xmi:id="_5qz8YMf8EeSYR7D_AlByKg" value="1.0"/>1302 </slot>1303 <slot xmi:type="uml:Slot" xmi:id="_nLm2IMf8EeSYR7D_AlByKg" definingFeature="_hKPpIMcWEeSYR7D_AlByKg">1304 <value xmi:type="uml:InstanceValue" xmi:id="_39Q1cMf8EeSYR7D_AlByKg" name="" instance="_wNcqEMf8EeSYR7D_AlByKg"/>1305 </slot>1306 <slot xmi:type="uml:Slot" xmi:id="_pOmooMf8EeSYR7D_AlByKg" definingFeature="_nOzMkMcWEeSYR7D_AlByKg">1307 <value xmi:type="uml:LiteralNull" xmi:id="_r2ZKQMf8EeSYR7D_AlByKg"/>1308 </slot>1309 </packagedElement>1310 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_wNcqEMf8EeSYR7D_AlByKg" name="ExampleMetadata">1311 <slot xmi:type="uml:Slot" xmi:id="_-kQXkMf8EeSYR7D_AlByKg" definingFeature="_nJkjwMcVEeSYR7D_AlByKg">1312 <value xmi:type="uml:InstanceValue" xmi:id="_ZEHFEMf-EeSYR7D_AlByKg" instance="_O-LW4Mf-EeSYR7D_AlByKg"/>1313 </slot>1314 <slot xmi:type="uml:Slot" xmi:id="_DdNqkMf9EeSYR7D_AlByKg" definingFeature="_nJkjwMcVEeSYR7D_AlByKg">1315 <value xmi:type="uml:InstanceValue" xmi:id="_bDbRcMf-EeSYR7D_AlByKg" instance="_SOwW0Mf-EeSYR7D_AlByKg"/>1316 </slot>1317 </packagedElement>1318 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_O-LW4Mf-EeSYR7D_AlByKg" name="DocumentIDParamenter" classifier="_74HWwMcSEeSYR7D_AlByKg">1319 <slot xmi:type="uml:Slot" xmi:id="_faHk4Mf-EeSYR7D_AlByKg" definingFeature="_BW_aQMcTEeSYR7D_AlByKg">1320 <value xmi:type="uml:LiteralString" xmi:id="_qQT14Mf_EeSYR7D_AlByKg" value="id"/>1321 </slot>1322 <slot xmi:type="uml:Slot" xmi:id="_iGXvwMf-EeSYR7D_AlByKg" definingFeature="_E-KVQMcTEeSYR7D_AlByKg">1323 <value xmi:type="uml:LiteralString" xmi:id="_rv1u8Mf_EeSYR7D_AlByKg" value="doc1"/>1324 </slot>1325 </packagedElement>1326 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_SOwW0Mf-EeSYR7D_AlByKg" name="PatientIDParameter" classifier="_74HWwMcSEeSYR7D_AlByKg">1327 <slot xmi:type="uml:Slot" xmi:id="_jdgh0Mf-EeSYR7D_AlByKg" definingFeature="_BW_aQMcTEeSYR7D_AlByKg">1328 <value xmi:type="uml:LiteralString" xmi:id="_uwfcgMf_EeSYR7D_AlByKg" value="subjectid"/>1329 </slot>1330 <slot xmi:type="uml:Slot" xmi:id="_kZFZQMf-EeSYR7D_AlByKg" definingFeature="_E-KVQMcTEeSYR7D_AlByKg">1331 <value xmi:type="uml:LiteralString" xmi:id="_z1dyQMf_EeSYR7D_AlByKg" value="testpatient1"/>1332 </slot>1333 </packagedElement>1334 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_B1McgMgAEeSYR7D_AlByKg" name="OK_putResponse" classifier="_RAXOQLwPEeS8kt2gTxQkQg _VWhWMLwPEeS8kt2gTxQkQg">1335 <slot xmi:type="uml:Slot" xmi:id="_bQ4XQMgBEeSYR7D_AlByKg" definingFeature="_CcKvkLwQEeS8kt2gTxQkQg">1336 <value xmi:type="uml:LiteralBoolean" xmi:id="_fWuyUMgBEeSYR7D_AlByKg" value="true"/>1337 </slot>1338 </packagedElement>1339 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_F3E9kMgAEeSYR7D_AlByKg" name="FAIL_putResponse" classifier="_RAXOQLwPEeS8kt2gTxQkQg _VWhWMLwPEeS8kt2gTxQkQg">1340 <slot xmi:type="uml:Slot" xmi:id="_gk2LQMgBEeSYR7D_AlByKg" definingFeature="_CcKvkLwQEeS8kt2gTxQkQg">1341 <value xmi:type="uml:LiteralBoolean" xmi:id="_iOC9sMgBEeSYR7D_AlByKg"/>1342 </slot>1343 </packagedElement>1344 </packagedElement>1345 <packagedElement xmi:type="uml:Package" xmi:id="_Nul0IMD0EeSlO4e8QG-B1g" name="IXS">1346 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_c2b9AMD0EeSlO4e8QG-B1g" name="createSemanticSignifier_spec" classifier="_ct5U0L2uEeSe48NTDZ3Xhg">1347 <slot xmi:type="uml:Slot" xmi:id="_MA21EMD2EeSlO4e8QG-B1g" definingFeature="_k5zmUL2uEeSe48NTDZ3Xhg">1348 <value xmi:type="uml:InstanceValue" xmi:id="_Uc_68MD2EeSlO4e8QG-B1g" type="_P4fsgL2qEeSe48NTDZ3Xhg" instance="_r0olMMD1EeSlO4e8QG-B1g"/>1349 </slot>1350 </packagedElement>1351 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_iPH48MD0EeSlO4e8QG-B1g" name="createSemanticSignifierResponse_spec" classifier="_ZQ7h4L2yEeSe48NTDZ3Xhg">1352 <slot xmi:type="uml:Slot" xmi:id="_I92FIMD4EeSlO4e8QG-B1g" definingFeature="_iV_B4L2yEeSe48NTDZ3Xhg">1353 <value xmi:type="uml:InstanceValue" xmi:id="_RDXawMD4EeSlO4e8QG-B1g" type="_ssC68L2rEeSe48NTDZ3Xhg" instance="_eIFqwMD3EeSlO4e8QG-B1g"/>1354 </slot>1355 </packagedElement>1356 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_r0olMMD1EeSlO4e8QG-B1g" name="POCDPatientSignifier" classifier="_P4fsgL2qEeSe48NTDZ3Xhg">1357 <slot xmi:type="uml:Slot" xmi:id="_zIOuoMD1EeSlO4e8QG-B1g" definingFeature="_ugB2gL2qEeSe48NTDZ3Xhg">1358 <value xmi:type="uml:LiteralString" xmi:id="_gx1s8MfWEeSYR7D_AlByKg" value="POCDPatient"/>1359 </slot>1360 <slot xmi:type="uml:Slot" xmi:id="_3rhToMD1EeSlO4e8QG-B1g" definingFeature="_3LvpcL2qEeSe48NTDZ3Xhg">1361 <value xmi:type="uml:LiteralString" xmi:id="_eoQ74MfXEeSYR7D_AlByKg" name="" value="pocdpatient"/>1362 </slot>1363 <slot xmi:type="uml:Slot" xmi:id="_6b6XoMD1EeSlO4e8QG-B1g" definingFeature="_6qqnYL2qEeSe48NTDZ3Xhg">1364 <value xmi:type="uml:LiteralString" xmi:id="__wNNIMfXEeSYR7D_AlByKg" value="pocdpatient"/>1365 </slot>1366 <slot xmi:type="uml:Slot" xmi:id="_8texoMD1EeSlO4e8QG-B1g" definingFeature="_983X8L2qEeSe48NTDZ3Xhg">1367 <value xmi:type="uml:LiteralString" xmi:id="_BPZvAMfYEeSYR7D_AlByKg" value="1.0"/>1368 </slot>1369 <slot xmi:type="uml:Slot" xmi:id="_AeygEMD2EeSlO4e8QG-B1g" definingFeature="_BL-_UL2rEeSe48NTDZ3Xhg">1370 <value xmi:type="uml:LiteralString" xmi:id="_FpX_8MfYEeSYR7D_AlByKg" value="HW_POCD_MT000040.xsd"/>1371 </slot>1372 <slot xmi:type="uml:Slot" xmi:id="_C0yHEMD2EeSlO4e8QG-B1g" definingFeature="_EAkm0L2rEeSe48NTDZ3Xhg">1373 <value xmi:type="uml:LiteralNull" xmi:id="_BNsFgMfdEeSYR7D_AlByKg"/>1374 </slot>1375 <slot xmi:type="uml:Slot" xmi:id="_FfJbkMD2EeSlO4e8QG-B1g" definingFeature="_IkDZEL2rEeSe48NTDZ3Xhg">1376 <value xmi:type="uml:LiteralNull" xmi:id="_CSvpEMfdEeSYR7D_AlByKg"/>1377 </slot>1378 </packagedElement>1379 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_eIFqwMD3EeSlO4e8QG-B1g" name="OKStatus" classifier="_ssC68L2rEeSe48NTDZ3Xhg">1380 <slot xmi:type="uml:Slot" xmi:id="_h9JQwMD3EeSlO4e8QG-B1g" definingFeature="_0TChgL2rEeSe48NTDZ3Xhg">1381 <value xmi:type="uml:LiteralBoolean" xmi:id="_4YkU8MD3EeSlO4e8QG-B1g" name=""/>1382 </slot>1383 <slot xmi:type="uml:Slot" xmi:id="_mPf2wMD3EeSlO4e8QG-B1g" definingFeature="_5eItYL2rEeSe48NTDZ3Xhg">1384 <value xmi:type="uml:LiteralNull" xmi:id="_CLckQMD4EeSlO4e8QG-B1g"/>1385 </slot>1386 <slot xmi:type="uml:Slot" xmi:id="_D2ZDIMD4EeSlO4e8QG-B1g" definingFeature="__Rt1kL2rEeSe48NTDZ3Xhg">1387 <value xmi:type="uml:LiteralNull" xmi:id="_FutPoMD4EeSlO4e8QG-B1g"/>1388 </slot>1389 </packagedElement>1390 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_mtY8AMfvEeSYR7D_AlByKg" name="createIdentityFromEntity_spec" classifier="_rYkCEMZ4EeSYR7D_AlByKg">1391 <slot xmi:type="uml:Slot" xmi:id="_zvgHcMfvEeSYR7D_AlByKg" definingFeature="_UBjp8MZ5EeSYR7D_AlByKg">1392 <value xmi:type="uml:LiteralString" xmi:id="_5u1MoMfvEeSYR7D_AlByKg" name="" value="midas"/>1393 </slot>1394 <slot xmi:type="uml:Slot" xmi:id="_6qh_4MfvEeSYR7D_AlByKg" definingFeature="_YuO0cMZ5EeSYR7D_AlByKg">1395 <value xmi:type="uml:LiteralString" xmi:id="_Aoz8MMfwEeSYR7D_AlByKg" value="pocdpatient"/>1396 </slot>1397 <slot xmi:type="uml:Slot" xmi:id="_Ks_W4MfwEeSYR7D_AlByKg" definingFeature="_dPdj8MZ5EeSYR7D_AlByKg">1398 <value xmi:type="uml:InstanceValue" xmi:id="_hpz38MfwEeSYR7D_AlByKg" instance="_QBfWYMfwEeSYR7D_AlByKg"/>1399 </slot>1400 </packagedElement>1401 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_QBfWYMfwEeSYR7D_AlByKg" name="ExampleTraits" classifier="_1CvGgMZmEeSYR7D_AlByKg">1402 <slot xmi:type="uml:Slot" xmi:id="_X4MM4MfwEeSYR7D_AlByKg" definingFeature="_PZtaQMZnEeSYR7D_AlByKg">1403 <value xmi:type="uml:InstanceValue" xmi:id="_B0fk0MfzEeSYR7D_AlByKg" instance="_scGV0MfwEeSYR7D_AlByKg"/>1404 </slot>1405 <slot xmi:type="uml:Slot" xmi:id="_NsT1cMf1EeSYR7D_AlByKg" definingFeature="_wgHoMMZsEeSYR7D_AlByKg">1406 <value xmi:type="uml:InstanceValue" xmi:id="_TsSa4Mf1EeSYR7D_AlByKg" instance="_PDR6UMfzEeSYR7D_AlByKg"/>1407 </slot>1408 </packagedElement>1409 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_scGV0MfwEeSYR7D_AlByKg" name="ExampleID" classifier="_UWjRgLwQEeS8kt2gTxQkQg">1410 <slot xmi:type="uml:Slot" xmi:id="_x-VPUMfwEeSYR7D_AlByKg" definingFeature="_cmDpkLwQEeS8kt2gTxQkQg">1411 <value xmi:type="uml:LiteralString" xmi:id="_vHnO8MfyEeSYR7D_AlByKg" value="2.16.840.1.113883.2.9.4.3.2"/>1412 </slot>1413 <slot xmi:type="uml:Slot" xmi:id="_1cG9wMfwEeSYR7D_AlByKg" definingFeature="_gMtAILwQEeS8kt2gTxQkQg">1414 <value xmi:type="uml:LiteralString" xmi:id="_xcMgsMfyEeSYR7D_AlByKg" value="testpatient1"/>1415 </slot>1416 </packagedElement>1417 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_PDR6UMfzEeSYR7D_AlByKg" name="ExamplePatient" classifier="_XPGpMMZnEeSYR7D_AlByKg">1418 <slot xmi:type="uml:Slot" xmi:id="_WdS00MfzEeSYR7D_AlByKg" definingFeature="_mIZYsMZnEeSYR7D_AlByKg"/>1419 <slot xmi:type="uml:Slot" xmi:id="_bCGcwMfzEeSYR7D_AlByKg" definingFeature="_faYPQMZsEeSYR7D_AlByKg"/>1420 <slot xmi:type="uml:Slot" xmi:id="_YeRYoMf0EeSYR7D_AlByKg" definingFeature="_hZHMsMf0EeSYR7D_AlByKg"/>1421 </packagedElement>1422 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_ucn7wMfzEeSYR7D_AlByKg" name="ExampleName" classifier="_YorEMMZnEeSYR7D_AlByKg">1423 <slot xmi:type="uml:Slot" xmi:id="_yL8tMMfzEeSYR7D_AlByKg" definingFeature="_cz2rMMZnEeSYR7D_AlByKg">1424 <value xmi:type="uml:LiteralString" xmi:id="_3rthgMfzEeSYR7D_AlByKg" value="Pat"/>1425 </slot>1426 <slot xmi:type="uml:Slot" xmi:id="_4b0IwMfzEeSYR7D_AlByKg" definingFeature="_glBPsMZnEeSYR7D_AlByKg">1427 <value xmi:type="uml:LiteralString" xmi:id="_7c-zsMfzEeSYR7D_AlByKg" value="Test"/>1428 </slot>1429 </packagedElement>1430 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_9QQvMMfzEeSYR7D_AlByKg" name="ExampleGender" classifier="_Y6W30MZsEeSYR7D_AlByKg">1431 <slot xmi:type="uml:Slot" xmi:id="_KKSVoMf0EeSYR7D_AlByKg" definingFeature="_aUc3QMZsEeSYR7D_AlByKg">1432 <value xmi:type="uml:LiteralString" xmi:id="_VcZjEMf0EeSYR7D_AlByKg" value="2.16.840.1.113883.5.1"/>1433 </slot>1434 <slot xmi:type="uml:Slot" xmi:id="_MszVsMf0EeSYR7D_AlByKg" definingFeature="_bywoUMZsEeSYR7D_AlByKg">1435 <value xmi:type="uml:LiteralString" xmi:id="_S7oPcMf0EeSYR7D_AlByKg" value="M"/>1436 </slot>1437 </packagedElement>1438 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_10PNEMf0EeSYR7D_AlByKg" name="ExampleBirthTime" classifier="_A2L3sMZtEeSYR7D_AlByKg">1439 <slot xmi:type="uml:Slot" xmi:id="_6E5xAMf0EeSYR7D_AlByKg" definingFeature="_D0_yMMZtEeSYR7D_AlByKg">1440 <value xmi:type="uml:LiteralString" xmi:id="_AQABUMf1EeSYR7D_AlByKg" value="19560602"/>1441 </slot>1442 </packagedElement>1443 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_caPCcMf1EeSYR7D_AlByKg" name="OK_createIdentityFromEntityResponse_spec" classifier="_nUTF8MZ5EeSYR7D_AlByKg">1444 <slot xmi:type="uml:Slot" xmi:id="_-5ed0Mf1EeSYR7D_AlByKg" definingFeature="_-RyVYMZ5EeSYR7D_AlByKg">1445 <value xmi:type="uml:InstanceValue" xmi:id="_JJSgwMf2EeSYR7D_AlByKg" instance="_eIFqwMD3EeSlO4e8QG-B1g"/>1446 </slot>1447 </packagedElement>1448 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_jVpVYMf1EeSYR7D_AlByKg" name="FAIL_createIdentityFromEntityResponse_spec" classifier="_nUTF8MZ5EeSYR7D_AlByKg">1449 <slot xmi:type="uml:Slot" xmi:id="_J74bUMf2EeSYR7D_AlByKg" definingFeature="_iV_B4L2yEeSe48NTDZ3Xhg">1450 <value xmi:type="uml:InstanceValue" xmi:id="_RiZgwMf2EeSYR7D_AlByKg" instance="_pIW64Mf1EeSYR7D_AlByKg"/>1451 </slot>1452 </packagedElement>1453 <packagedElement xmi:type="uml:InstanceSpecification" xmi:id="_pIW64Mf1EeSYR7D_AlByKg" name="FAILStatus" classifier="_ssC68L2rEeSe48NTDZ3Xhg">1454 <slot xmi:type="uml:Slot" xmi:id="_rhQE4Mf1EeSYR7D_AlByKg" definingFeature="_0TChgL2rEeSe48NTDZ3Xhg">1455 <value xmi:type="uml:LiteralBoolean" xmi:id="_1pjKkMf1EeSYR7D_AlByKg"/>1456 </slot>1457 1273 </packagedElement> 1458 1274 </packagedElement> … … 1474 1290 </ownedOperation> 1475 1291 <ownedOperation xmi:type="uml:Operation" xmi:id="_sFD4wLwREeS8kt2gTxQkQg" name="findSemanticSignifier"> 1476 <ownedParameter xmi:type="uml:Parameter" xmi:id="_MKDfQLwSEeS8kt2gTxQkQg" name="request" />1292 <ownedParameter xmi:type="uml:Parameter" xmi:id="_MKDfQLwSEeS8kt2gTxQkQg" name="request" type="_XENlYMvZEeSyCug81TQDwA"/> 1477 1293 <ownedParameter xmi:type="uml:Parameter" xmi:id="_TUbbQLwSEeS8kt2gTxQkQg" name="response" type="_5OOj4LwQEeS8kt2gTxQkQg" direction="return"/> 1478 1294 </ownedOperation> … … 1508 1324 <packagedElement xmi:type="uml:Component" xmi:id="_CrcpgKC4EeSR_swKuhjZ_A" clientDependency="_DQbpILEPEeSPMcTTAQ1qKQ" name="RLUSMetaDataPortType"/> 1509 1325 <packagedElement xmi:type="uml:Component" xmi:id="_9yN0QKC4EeSR_swKuhjZ_A" name="RLUSMetaDataTestContext"/> 1510 <packagedElement xmi:type="uml:Component" xmi:id="_X3xRwKDCEeSR_swKuhjZ_A" name="RLUSTestSuite_1" classifierBehavior="_iCR6QLzXEeSu8bCjKN8_hw">1326 <packagedElement xmi:type="uml:Component" xmi:id="_X3xRwKDCEeSR_swKuhjZ_A" name="RLUSTestSuite_1"> 1511 1327 <ownedAttribute xmi:type="uml:Property" xmi:id="_Heb2YKDDEeSR_swKuhjZ_A" name="rlusService" visibility="public" type="_Aow1gKC3EeSR_swKuhjZ_A"> 1512 1328 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LoBh8KDDEeSR_swKuhjZ_A" value="1"/> … … 1533 1349 </end> 1534 1350 </ownedConnector> 1535 <ownedBehavior xmi:type="uml:Interaction" xmi:id="_iCR6QLzXEeSu8bCjKN8_hw" name="testcase_1_impl" specification="_R78v4LzXEeSu8bCjKN8_hw">1536 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_baiRoMDyEeSlO4e8QG-B1g" name="MessageSend" covered="_UYMTYLzYEeSu8bCjKN8_hw" message="_bahqkMDyEeSlO4e8QG-B1g"/>1537 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_TowXYMDyEeSlO4e8QG-B1g" name="BehaviorExecSpec" covered="_UYMTYLzYEeSu8bCjKN8_hw" finish="_dKRw8cDyEeSlO4e8QG-B1g" start="_baiRoMDyEeSlO4e8QG-B1g"/>1538 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_UNxwAMDyEeSlO4e8QG-B1g" name="BehaviorExecSpec0" covered="_XqBQgLzYEeSu8bCjKN8_hw" finish="_dKRw8MDyEeSlO4e8QG-B1g" start="_bai4sMDyEeSlO4e8QG-B1g"/>1539 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_bai4sMDyEeSlO4e8QG-B1g" name="MessageRecv" covered="_XqBQgLzYEeSu8bCjKN8_hw" message="_bahqkMDyEeSlO4e8QG-B1g"/>1540 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_dKRw8MDyEeSlO4e8QG-B1g" name="Message0Send" covered="_XqBQgLzYEeSu8bCjKN8_hw" message="_dKRJ4MDyEeSlO4e8QG-B1g"/>1541 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_dKRw8cDyEeSlO4e8QG-B1g" name="Message0Recv" covered="_UYMTYLzYEeSu8bCjKN8_hw" message="_dKRJ4MDyEeSlO4e8QG-B1g"/>1542 <lifeline xmi:type="uml:Lifeline" xmi:id="_UYMTYLzYEeSu8bCjKN8_hw" name="TestComponent" represents="_1c1AMKDEEeSR_swKuhjZ_A" coveredBy="_TowXYMDyEeSlO4e8QG-B1g _baiRoMDyEeSlO4e8QG-B1g _dKRw8cDyEeSlO4e8QG-B1g"/>1543 <lifeline xmi:type="uml:Lifeline" xmi:id="_XqBQgLzYEeSu8bCjKN8_hw" name="SUT" represents="_Heb2YKDDEeSR_swKuhjZ_A" coveredBy="_UNxwAMDyEeSlO4e8QG-B1g _bai4sMDyEeSlO4e8QG-B1g _dKRw8MDyEeSlO4e8QG-B1g"/>1544 <message xmi:type="uml:Message" xmi:id="_bahqkMDyEeSlO4e8QG-B1g" name="1:Message" connector="_PuBcEKDFEeSR_swKuhjZ_A" receiveEvent="_bai4sMDyEeSlO4e8QG-B1g" sendEvent="_baiRoMDyEeSlO4e8QG-B1g" signature="_0e4SkKC2EeSR_swKuhjZ_A">1545 <argument xmi:type="uml:InstanceValue" xmi:id="_3mVWkMZkEeSYR7D_AlByKg" name="request" type="_w0vXYKCbEeSR_swKuhjZ_A" instance="_CDZzwLzgEeSu8bCjKN8_hw"/>1546 <argument xmi:type="uml:LiteralNull" xmi:id="_5LrjwMZkEeSYR7D_AlByKg" name="response"/>1547 </message>1548 <message xmi:type="uml:Message" xmi:id="_dKRJ4MDyEeSlO4e8QG-B1g" name="2:Message" connector="_PuBcEKDFEeSR_swKuhjZ_A" messageSort="reply" receiveEvent="_dKRw8cDyEeSlO4e8QG-B1g" sendEvent="_dKRw8MDyEeSlO4e8QG-B1g" signature="_0e4SkKC2EeSR_swKuhjZ_A">1549 <argument xmi:type="uml:InstanceValue" xmi:id="_8EKz0MZkEeSYR7D_AlByKg" name="response" type="_XK8dQKCcEeSR_swKuhjZ_A" instance="_JdHMQLzgEeSu8bCjKN8_hw"/>1550 <argument xmi:type="uml:LiteralNull" xmi:id="_9NqLcMZkEeSYR7D_AlByKg" name="request"/>1551 </message>1552 </ownedBehavior>1553 <ownedOperation xmi:type="uml:Operation" xmi:id="_R78v4LzXEeSu8bCjKN8_hw" name="testcase_1" method="_iCR6QLzXEeSu8bCjKN8_hw"/>1554 1351 </packagedElement> 1555 1352 <packagedElement xmi:type="uml:Component" xmi:id="_JyRr0KDEEeSR_swKuhjZ_A" name="RLUSEnvironment"> … … 1594 1391 <packagedElement xmi:type="uml:Component" xmi:id="_XvSrQLEVEeSPMcTTAQ1qKQ" clientDependency="_cK23oLEVEeSPMcTTAQ1qKQ" name="RLUSRLPNotesMQPortType"/> 1595 1392 <packagedElement xmi:type="uml:InterfaceRealization" xmi:id="_cK23oLEVEeSPMcTTAQ1qKQ" name="Realization1" client="_XvSrQLEVEeSPMcTTAQ1qKQ" supplier="_G8nYQLEVEeSPMcTTAQ1qKQ" contract="_G8nYQLEVEeSPMcTTAQ1qKQ"/> 1596 <packagedElement xmi:type="uml:Component" xmi:id="_Db-BkMdGEeSYR7D_AlByKg" name="RLUSTestSuite_2" classifierBehavior="_Kj0uoMgCEeSYR7D_AlByKg">1393 <packagedElement xmi:type="uml:Component" xmi:id="_Db-BkMdGEeSYR7D_AlByKg" name="RLUSTestSuite_2"> 1597 1394 <ownedAttribute xmi:type="uml:Property" xmi:id="_Y1zcwMfREeSYR7D_AlByKg" name="rlusService" visibility="public" type="_Aow1gKC3EeSR_swKuhjZ_A"> 1598 1395 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aAcq8MfREeSYR7D_AlByKg" value="1"/> … … 1613 1410 </end> 1614 1411 </ownedConnector> 1615 <ownedBehavior xmi:type="uml:Interaction" xmi:id="_Kj0uoMgCEeSYR7D_AlByKg" name="rlus_mq_testcase_1" specification="_si1AMMgBEeSYR7D_AlByKg">1616 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_nBxV8cgCEeSYR7D_AlByKg" name="MessageSend" message="_nBxV8MgCEeSYR7D_AlByKg"/>1617 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_nBx9AMgCEeSYR7D_AlByKg" name="MessageRecv" message="_nBxV8MgCEeSYR7D_AlByKg"/>1618 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_pS5EAMgCEeSYR7D_AlByKg" name="MessageSend0" message="_pS4c8MgCEeSYR7D_AlByKg"/>1619 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_pS5rEMgCEeSYR7D_AlByKg" name="MessageRecv0" message="_pS4c8MgCEeSYR7D_AlByKg"/>1620 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_tg6joMgCEeSYR7D_AlByKg" name="MessageSend1" message="_tg58kMgCEeSYR7D_AlByKg"/>1621 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_tg6jocgCEeSYR7D_AlByKg" name="MessageRecv1" message="_tg58kMgCEeSYR7D_AlByKg"/>1622 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_wIgQ8MgCEeSYR7D_AlByKg" name="MessageSend2" message="_wIfp4MgCEeSYR7D_AlByKg"/>1623 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_wIgQ8cgCEeSYR7D_AlByKg" name="MessageRecv2" message="_wIfp4MgCEeSYR7D_AlByKg"/>1624 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_kAn5IMgCEeSYR7D_AlByKg" name="BehaviorExecSpec0" finish="_pS5EAMgCEeSYR7D_AlByKg" start="_nBx9AMgCEeSYR7D_AlByKg"/>1625 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_jJ66oMgCEeSYR7D_AlByKg" name="BehaviorExecSpec" finish="_pS5rEMgCEeSYR7D_AlByKg" start="_nBxV8cgCEeSYR7D_AlByKg"/>1626 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_rLm5IMgCEeSYR7D_AlByKg" name="BehaviorExecSpec2" finish="_wIgQ8MgCEeSYR7D_AlByKg" start="_tg6jocgCEeSYR7D_AlByKg"/>1627 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_qtnVkMgCEeSYR7D_AlByKg" name="BehaviorExecSpec1" finish="_wIgQ8cgCEeSYR7D_AlByKg" start="_tg6joMgCEeSYR7D_AlByKg"/>1628 <lifeline xmi:type="uml:Lifeline" xmi:id="_Yt95IMgCEeSYR7D_AlByKg" name="environment" represents="_1c1AMKDEEeSR_swKuhjZ_A"/>1629 <lifeline xmi:type="uml:Lifeline" xmi:id="_ZeySEMgCEeSYR7D_AlByKg" name="rlusService" represents="_Heb2YKDDEeSR_swKuhjZ_A"/>1630 <message xmi:type="uml:Message" xmi:id="_nBxV8MgCEeSYR7D_AlByKg" name="1:put" receiveEvent="_nBx9AMgCEeSYR7D_AlByKg" sendEvent="_nBxV8cgCEeSYR7D_AlByKg" signature="_5tRh8Mc1EeSYR7D_AlByKg">1631 <argument xmi:type="uml:InstanceValue" xmi:id="_E4FeYMgDEeSYR7D_AlByKg" name="request" type="_Kv7tUMcYEeSYR7D_AlByKg" instance="_EgFSQMf8EeSYR7D_AlByKg"/>1632 <argument xmi:type="uml:LiteralNull" xmi:id="_G7ncYMgDEeSYR7D_AlByKg" name="response"/>1633 </message>1634 <message xmi:type="uml:Message" xmi:id="_pS4c8MgCEeSYR7D_AlByKg" name="2:putReply" messageSort="reply" receiveEvent="_pS5rEMgCEeSYR7D_AlByKg" sendEvent="_pS5EAMgCEeSYR7D_AlByKg" signature="_5tRh8Mc1EeSYR7D_AlByKg">1635 <argument xmi:type="uml:InstanceValue" xmi:id="_Mj894MgDEeSYR7D_AlByKg" name="response" type="_RAXOQLwPEeS8kt2gTxQkQg" instance="_B1McgMgAEeSYR7D_AlByKg"/>1636 <argument xmi:type="uml:LiteralNull" xmi:id="_NiCWwMgDEeSYR7D_AlByKg" name="request"/>1637 </message>1638 <message xmi:type="uml:Message" xmi:id="_tg58kMgCEeSYR7D_AlByKg" name="3:put2" receiveEvent="_tg6jocgCEeSYR7D_AlByKg" sendEvent="_tg6joMgCEeSYR7D_AlByKg" signature="_5tRh8Mc1EeSYR7D_AlByKg">1639 <argument xmi:type="uml:InstanceValue" xmi:id="_P1dx8MgDEeSYR7D_AlByKg" name="request" type="_Kv7tUMcYEeSYR7D_AlByKg" instance="_EgFSQMf8EeSYR7D_AlByKg"/>1640 <argument xmi:type="uml:LiteralNull" xmi:id="_SKuZIMgDEeSYR7D_AlByKg" name="response"/>1641 </message>1642 <message xmi:type="uml:Message" xmi:id="_wIfp4MgCEeSYR7D_AlByKg" name="4:putReply2" messageSort="reply" receiveEvent="_wIgQ8cgCEeSYR7D_AlByKg" sendEvent="_wIgQ8MgCEeSYR7D_AlByKg" signature="_5tRh8Mc1EeSYR7D_AlByKg">1643 <argument xmi:type="uml:InstanceValue" xmi:id="_Ujve8MgDEeSYR7D_AlByKg" name="response" type="_RAXOQLwPEeS8kt2gTxQkQg" instance="_F3E9kMgAEeSYR7D_AlByKg"/>1644 <argument xmi:type="uml:LiteralNull" xmi:id="_VmcSEMgDEeSYR7D_AlByKg" name="request"/>1645 </message>1646 </ownedBehavior>1647 <ownedOperation xmi:type="uml:Operation" xmi:id="_si1AMMgBEeSYR7D_AlByKg" name="rlus_mq_testcase_1" method="_Kj0uoMgCEeSYR7D_AlByKg"/>1648 1412 </packagedElement> 1649 1413 </packagedElement> … … 1700 1464 </end> 1701 1465 </ownedConnector> 1702 <ownedBehavior xmi:type="uml:Interaction" xmi:id="_jTKlUMDzEeSlO4e8QG-B1g" name="testcase_1_impl" specification="_lPfV0MD4EeSlO4e8QG-B1g">1703 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_gHDKcMD6EeSjvrY9JxSQ3g" name="MessageRecv0" covered="_DEXGEMD0EeSlO4e8QG-B1g" message="_gHB8UMD6EeSjvrY9JxSQ3g"/>1704 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_T4x2wMD6EeSjvrY9JxSQ3g" name="MessageSend" covered="_DEXGEMD0EeSlO4e8QG-B1g" message="_T4wooMD6EeSjvrY9JxSQ3g"/>1705 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_RCkeocD6EeSjvrY9JxSQ3g" name="BehaviorExecSpec" covered="_DEXGEMD0EeSlO4e8QG-B1g" finish="_gHDKcMD6EeSjvrY9JxSQ3g" start="_T4x2wMD6EeSjvrY9JxSQ3g"/>1706 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_RiBawMD6EeSjvrY9JxSQ3g" name="BehaviorExecSpec0" covered="_0vKiIMDzEeSlO4e8QG-B1g" finish="_gHCjYMD6EeSjvrY9JxSQ3g" start="_T4yd0MD6EeSjvrY9JxSQ3g"/>1707 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_T4yd0MD6EeSjvrY9JxSQ3g" name="MessageRecv" covered="_0vKiIMDzEeSlO4e8QG-B1g" message="_T4wooMD6EeSjvrY9JxSQ3g"/>1708 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_gHCjYMD6EeSjvrY9JxSQ3g" name="MessageSend0" covered="_0vKiIMDzEeSlO4e8QG-B1g" message="_gHB8UMD6EeSjvrY9JxSQ3g"/>1709 <lifeline xmi:type="uml:Lifeline" xmi:id="_0vKiIMDzEeSlO4e8QG-B1g" name="SUT" visibility="public" represents="_5o09kMDkEeSlO4e8QG-B1g" coveredBy="_RiBawMD6EeSjvrY9JxSQ3g _T4yd0MD6EeSjvrY9JxSQ3g _gHCjYMD6EeSjvrY9JxSQ3g"/>1710 <lifeline xmi:type="uml:Lifeline" xmi:id="_DEXGEMD0EeSlO4e8QG-B1g" name="ixsEnvironment" represents="_ZZWI4MDlEeSlO4e8QG-B1g" coveredBy="_RCkeocD6EeSjvrY9JxSQ3g _T4x2wMD6EeSjvrY9JxSQ3g _gHDKcMD6EeSjvrY9JxSQ3g"/>1711 <message xmi:type="uml:Message" xmi:id="_T4wooMD6EeSjvrY9JxSQ3g" name="1:Message" connector="_mYgG8MDlEeSlO4e8QG-B1g" receiveEvent="_T4yd0MD6EeSjvrY9JxSQ3g" sendEvent="_T4x2wMD6EeSjvrY9JxSQ3g" signature="_Fn150MDQEeSlO4e8QG-B1g">1712 <argument xmi:type="uml:InstanceValue" xmi:id="_8qhyAMD6EeSjvrY9JxSQ3g" name="request" type="_ct5U0L2uEeSe48NTDZ3Xhg" instance="_c2b9AMD0EeSlO4e8QG-B1g"/>1713 <argument xmi:type="uml:LiteralNull" xmi:id="_ce_V0MZkEeSYR7D_AlByKg" name="response"/>1714 </message>1715 <message xmi:type="uml:Message" xmi:id="_gHB8UMD6EeSjvrY9JxSQ3g" name="2:Message" connector="_mYgG8MDlEeSlO4e8QG-B1g" messageSort="reply" receiveEvent="_gHDKcMD6EeSjvrY9JxSQ3g" sendEvent="_gHCjYMD6EeSjvrY9JxSQ3g" signature="_Fn150MDQEeSlO4e8QG-B1g">1716 <argument xmi:type="uml:InstanceValue" xmi:id="_B_7wcMD7EeSjvrY9JxSQ3g" name="response" type="_ZQ7h4L2yEeSe48NTDZ3Xhg" instance="_iPH48MD0EeSlO4e8QG-B1g"/>1717 <argument xmi:type="uml:LiteralNull" xmi:id="_e3alwMZkEeSYR7D_AlByKg" name="request"/>1718 </message>1719 </ownedBehavior>1720 <ownedOperation xmi:type="uml:Operation" xmi:id="_lPfV0MD4EeSlO4e8QG-B1g" name="testcase_1" method="_jTKlUMDzEeSlO4e8QG-B1g"/>1721 1466 </packagedElement> 1722 1467 <packagedElement xmi:type="uml:Component" xmi:id="_rCusUMDjEeSlO4e8QG-B1g" name="IXSTestEnvironment"> … … 1772 1517 <packagedElement xmi:type="uml:Component" xmi:id="_0AKlcMdGEeSYR7D_AlByKg" clientDependency="_6cGHEMdGEeSYR7D_AlByKg" name="IXSPOCDPatientPortType"/> 1773 1518 <packagedElement xmi:type="uml:InterfaceRealization" xmi:id="_6cGHEMdGEeSYR7D_AlByKg" name="Realization1" client="_0AKlcMdGEeSYR7D_AlByKg" supplier="_ErLvEMc4EeSYR7D_AlByKg" contract="_ErLvEMc4EeSYR7D_AlByKg"/> 1774 <packagedElement xmi:type="uml:Component" xmi:id="_Nc3pUMdHEeSYR7D_AlByKg" name="IXSTestSuite_2" classifierBehavior="_e_vPoMf2EeSYR7D_AlByKg">1519 <packagedElement xmi:type="uml:Component" xmi:id="_Nc3pUMdHEeSYR7D_AlByKg" name="IXSTestSuite_2"> 1775 1520 <ownedAttribute xmi:type="uml:Property" xmi:id="_Dw-GIMfTEeSYR7D_AlByKg" name="ixsService" visibility="public" type="_DjK-QMDOEeSlO4e8QG-B1g"> 1776 1521 <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E2j1MMfTEeSYR7D_AlByKg" value="1"/> … … 1791 1536 </end> 1792 1537 </ownedConnector> 1793 <ownedBehavior xmi:type="uml:Interaction" xmi:id="_e_vPoMf2EeSYR7D_AlByKg" name="ixs_mq_testcase_1" specification="_7DNhcMf2EeSYR7D_AlByKg">1794 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_LEivsMf6EeSYR7D_AlByKg" name="BehaviorExecSpec0" finish="_TS-wwMf6EeSYR7D_AlByKg" start="_O1vwccf6EeSYR7D_AlByKg"/>1795 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_KV2dsMf6EeSYR7D_AlByKg" name="BehaviorExecSpec" finish="_TS_X0Mf6EeSYR7D_AlByKg" start="_O1vwcMf6EeSYR7D_AlByKg"/>1796 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_vTPWgcf6EeSYR7D_AlByKg" name="BehaviorExecSpec1" finish="_3dkTocf6EeSYR7D_AlByKg" start="_ydwxwMf6EeSYR7D_AlByKg"/>1797 <fragment xmi:type="uml:BehaviorExecutionSpecification" xmi:id="_v3tVgcf6EeSYR7D_AlByKg" name="BehaviorExecSpec2" finish="_3dkToMf6EeSYR7D_AlByKg" start="_ydxY0Mf6EeSYR7D_AlByKg"/>1798 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_O1vwcMf6EeSYR7D_AlByKg" name="MessageSend" message="_O1vJYMf6EeSYR7D_AlByKg"/>1799 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_O1vwccf6EeSYR7D_AlByKg" name="MessageRecv" message="_O1vJYMf6EeSYR7D_AlByKg"/>1800 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_TS-wwMf6EeSYR7D_AlByKg" name="MessageSend0" message="_TS-JsMf6EeSYR7D_AlByKg"/>1801 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_TS_X0Mf6EeSYR7D_AlByKg" name="MessageRecv0" message="_TS-JsMf6EeSYR7D_AlByKg"/>1802 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ydwxwMf6EeSYR7D_AlByKg" name="MessageSend1" message="_ydwKsMf6EeSYR7D_AlByKg"/>1803 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_ydxY0Mf6EeSYR7D_AlByKg" name="MessageRecv1" message="_ydwKsMf6EeSYR7D_AlByKg"/>1804 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_3dkToMf6EeSYR7D_AlByKg" name="MessageSend2" message="_3djskMf6EeSYR7D_AlByKg"/>1805 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_3dkTocf6EeSYR7D_AlByKg" name="MessageRecv2" message="_3djskMf6EeSYR7D_AlByKg"/>1806 <lifeline xmi:type="uml:Lifeline" xmi:id="_cF8ikMf3EeSYR7D_AlByKg" name="environment" represents="_ZZWI4MDlEeSlO4e8QG-B1g"/>1807 <lifeline xmi:type="uml:Lifeline" xmi:id="_eWvggMf3EeSYR7D_AlByKg" name="ixsService" represents="_5o09kMDkEeSlO4e8QG-B1g"/>1808 <message xmi:type="uml:Message" xmi:id="_O1vJYMf6EeSYR7D_AlByKg" name="1:createIdentityFromEntity" receiveEvent="_O1vwccf6EeSYR7D_AlByKg" sendEvent="_O1vwcMf6EeSYR7D_AlByKg" signature="_Op1wkMc4EeSYR7D_AlByKg">1809 <argument xmi:type="uml:InstanceValue" xmi:id="_hmFqAMf6EeSYR7D_AlByKg" name="request" type="_rYkCEMZ4EeSYR7D_AlByKg" instance="_mtY8AMfvEeSYR7D_AlByKg"/>1810 <argument xmi:type="uml:LiteralNull" xmi:id="_jLwnUMf6EeSYR7D_AlByKg" name="response"/>1811 </message>1812 <message xmi:type="uml:Message" xmi:id="_TS-JsMf6EeSYR7D_AlByKg" name="2:createEntityFromEntity_reply" messageSort="reply" receiveEvent="_TS_X0Mf6EeSYR7D_AlByKg" sendEvent="_TS-wwMf6EeSYR7D_AlByKg" signature="_Op1wkMc4EeSYR7D_AlByKg">1813 <argument xmi:type="uml:InstanceValue" xmi:id="_lwTnsMf6EeSYR7D_AlByKg" name="response" type="_nUTF8MZ5EeSYR7D_AlByKg" instance="_caPCcMf1EeSYR7D_AlByKg"/>1814 <argument xmi:type="uml:LiteralNull" xmi:id="_m3w_AMf6EeSYR7D_AlByKg" name="request"/>1815 </message>1816 <message xmi:type="uml:Message" xmi:id="_ydwKsMf6EeSYR7D_AlByKg" name="3:createIdentityFromEntity2" receiveEvent="_ydxY0Mf6EeSYR7D_AlByKg" sendEvent="_ydwxwMf6EeSYR7D_AlByKg" signature="_Op1wkMc4EeSYR7D_AlByKg">1817 <argument xmi:type="uml:InstanceValue" xmi:id="_CE10UMf7EeSYR7D_AlByKg" name="request" type="_rYkCEMZ4EeSYR7D_AlByKg" instance="_mtY8AMfvEeSYR7D_AlByKg"/>1818 <argument xmi:type="uml:LiteralNull" xmi:id="_DRWDsMf7EeSYR7D_AlByKg" name="response"/>1819 </message>1820 <message xmi:type="uml:Message" xmi:id="_3djskMf6EeSYR7D_AlByKg" name="createIdentityFromEntity2_reply" messageSort="reply" receiveEvent="_3dkTocf6EeSYR7D_AlByKg" sendEvent="_3dkToMf6EeSYR7D_AlByKg" signature="_Op1wkMc4EeSYR7D_AlByKg">1821 <argument xmi:type="uml:InstanceValue" xmi:id="_GHzTcMf7EeSYR7D_AlByKg" name="response" type="_nUTF8MZ5EeSYR7D_AlByKg" instance="_jVpVYMf1EeSYR7D_AlByKg"/>1822 <argument xmi:type="uml:LiteralNull" xmi:id="_IKeV0Mf7EeSYR7D_AlByKg" name="request"/>1823 </message>1824 </ownedBehavior>1825 <ownedOperation xmi:type="uml:Operation" xmi:id="_7DNhcMf2EeSYR7D_AlByKg" name="ixs_mq_testcase_1" method="_e_vPoMf2EeSYR7D_AlByKg"/>1826 1538 </packagedElement> 1827 1539 </packagedElement> … … 1850 1562 <utp:SUT xmi:id="_kqUhwKDDEeSR_swKuhjZ_A" base_Property="_Heb2YKDDEeSR_swKuhjZ_A"/> 1851 1563 <utp:TestComponent xmi:id="_pKr5IKDEEeSR_swKuhjZ_A" base_StructuredClassifier="_JyRr0KDEEeSR_swKuhjZ_A"/> 1852 <utp:TestCase xmi:id="_aaC9kLzXEeSu8bCjKN8_hw" base_Operation="_R78v4LzXEeSu8bCjKN8_hw"/>1853 1564 <utp:TestContext xmi:id="_m_364MDjEeSlO4e8QG-B1g" base_BehavioredClassifier="_awaUYMDjEeSlO4e8QG-B1g" base_StructuredClassifier="_awaUYMDjEeSlO4e8QG-B1g"/> 1854 1565 <utp:TestComponent xmi:id="_vLsFwMDjEeSlO4e8QG-B1g" base_StructuredClassifier="_rCusUMDjEeSlO4e8QG-B1g"/> 1855 1566 <utp:SUT xmi:id="_K06PEMDlEeSlO4e8QG-B1g" base_Property="_5o09kMDkEeSlO4e8QG-B1g"/> 1856 <utp:TestCase xmi:id="_qo_KEMD4EeSlO4e8QG-B1g" base_Operation="_lPfV0MD4EeSlO4e8QG-B1g"/>1857 1567 <utp:TestContext xmi:id="_JnER4MdGEeSYR7D_AlByKg" base_BehavioredClassifier="_Db-BkMdGEeSYR7D_AlByKg" base_StructuredClassifier="_Db-BkMdGEeSYR7D_AlByKg"/> 1858 1568 <utp:TestContext xmi:id="_XlOZYMdHEeSYR7D_AlByKg" base_BehavioredClassifier="_Nc3pUMdHEeSYR7D_AlByKg" base_StructuredClassifier="_Nc3pUMdHEeSYR7D_AlByKg"/> 1859 1569 <utp:SUT xmi:id="_KMWqoMfSEeSYR7D_AlByKg" base_Property="_Y1zcwMfREeSYR7D_AlByKg"/> 1860 1570 <utp:SUT xmi:id="_LQUMkMfTEeSYR7D_AlByKg" base_Property="_Dw-GIMfTEeSYR7D_AlByKg"/> 1861 <utp:TestCase xmi:id="_PTNP4Mf3EeSYR7D_AlByKg" base_Operation="_7DNhcMf2EeSYR7D_AlByKg"/>1862 <utp:TestCase xmi:id="_H-H3sMgCEeSYR7D_AlByKg" base_Operation="_si1AMMgBEeSYR7D_AlByKg"/>1863 1571 </xmi:XMI> -
trunk/autoquest-plugin-uml-test/src/test/resources/ita_model_v2.uml
r1908 r1926 170 170 </end> 171 171 </ownedConnector> 172 <ownedOperation xmi:type="uml:Operation" xmi:id="_k-fb8LHPEeS0dumc9hw2vw" name="functional_TestCase1"/>173 172 </packagedElement> 174 173 <packagedElement xmi:type="uml:Component" xmi:id="_hwwbELETEeSnYZTmeJXZKg" name="Logistics_Environment"> … … 220 219 <subvertex xmi:type="uml:State" xmi:id="_FwmnMMcFEeSZe4KIZH8Y5w" name="StatePickUpDropOffConfirmed"/> 221 220 </region> 222 </packagedElement>223 <packagedElement xmi:type="uml:Interaction" xmi:id="_-N0LILHPEeS0dumc9hw2vw" name="Transport">224 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_mr5HEMcGEeSZe4KIZH8Y5w" name="MessageSendTransportInstruction" message="_mrUfUMcGEeSZe4KIZH8Y5w"/>225 <fragment xmi:type="uml:MessageOccurrenceSpecification" xmi:id="_mr5HEccGEeSZe4KIZH8Y5w" name="MessageRecvTransportInstruction" message="_mrUfUMcGEeSZe4KIZH8Y5w"/>226 <fragment xmi:type="uml:CombinedFragment" xmi:id="_7POBMMcGEeSZe4KIZH8Y5w" name="isAccepted" covered="_Fd7iwLHQEeS0dumc9hw2vw _M52hwLHQEeS0dumc9hw2vw" interactionOperator="alt">227 <operand xmi:type="uml:InteractionOperand" xmi:id="_7Pyo8McGEeSZe4KIZH8Y5w" name="InteractionOperand" covered="_Fd7iwLHQEeS0dumc9hw2vw _M52hwLHQEeS0dumc9hw2vw">228 <guard xmi:type="uml:InteractionConstraint" xmi:id="_7P-2MMcGEeSZe4KIZH8Y5w" name="">229 <specification xmi:type="uml:LiteralString" xmi:id="_7P-2MccGEeSZe4KIZH8Y5w" value="undefined"/>230 <maxint xmi:type="uml:LiteralInteger" xmi:id="_7P-2M8cGEeSZe4KIZH8Y5w" value="1"/>231 <minint xmi:type="uml:LiteralInteger" xmi:id="_7P-2MscGEeSZe4KIZH8Y5w"/>232 </guard>233 </operand>234 </fragment>235 <lifeline xmi:type="uml:Lifeline" xmi:id="_Fd7iwLHQEeS0dumc9hw2vw" name="LifelineMaterialSupplier" represents="_LGETMLEQEeSnYZTmeJXZKg" coveredBy="_7POBMMcGEeSZe4KIZH8Y5w _7Pyo8McGEeSZe4KIZH8Y5w"/>236 <lifeline xmi:type="uml:Lifeline" xmi:id="_M52hwLHQEeS0dumc9hw2vw" name="LifelineTransport" represents="_944gMLEPEeSnYZTmeJXZKg" coveredBy="_7POBMMcGEeSZe4KIZH8Y5w _7Pyo8McGEeSZe4KIZH8Y5w"/>237 <message xmi:type="uml:Message" xmi:id="_mrUfUMcGEeSZe4KIZH8Y5w" name="TransportInstruction" connector="_ZMBvALEVEeSnYZTmeJXZKg" messageSort="asynchCall" receiveEvent="_mr5HEccGEeSZe4KIZH8Y5w" sendEvent="_mr5HEMcGEeSZe4KIZH8Y5w" signature="_YGXBELENEeSnYZTmeJXZKg"/>238 221 </packagedElement> 239 222 <packagedElement xmi:type="uml:Actor" xmi:id="_jPjZ8MGeEeSgpOzAzVFJPA" name="MaterialSupplier"/> … … 536 519 <utp:SUT xmi:id="_LBHaYLETEeSnYZTmeJXZKg" base_Property="_HczmILETEeSnYZTmeJXZKg"/> 537 520 <utp:TestComponent xmi:id="_-93ZALEUEeSnYZTmeJXZKg" base_StructuredClassifier="_hwwbELETEeSnYZTmeJXZKg"/> 538 <utp:TestCase xmi:id="_qXb2kLHPEeS0dumc9hw2vw" base_Operation="_k-fb8LHPEeS0dumc9hw2vw"/>539 521 </xmi:XMI> -
trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java
r1916 r1926 15 15 package de.ugoe.cs.autoquest.plugin.uml; 16 16 17 import java.io.StringWriter; 18 import java.util.ArrayList; 17 19 import java.util.Collection; 18 20 import java.util.Collections; … … 30 32 import java.util.TreeSet; 31 33 34 import javax.xml.transform.Transformer; 35 import javax.xml.transform.TransformerException; 36 import javax.xml.transform.TransformerFactory; 37 import javax.xml.transform.TransformerFactoryConfigurationError; 38 import javax.xml.transform.dom.DOMSource; 39 import javax.xml.transform.stream.StreamResult; 40 32 41 import org.eclipse.emf.common.util.EList; 42 import org.eclipse.emf.common.util.URI; 33 43 import org.eclipse.uml2.uml.Activity; 34 44 import org.eclipse.uml2.uml.ActivityEdge; 35 45 import org.eclipse.uml2.uml.ActivityNode; 36 46 import org.eclipse.uml2.uml.CallConcurrencyKind; 47 import org.eclipse.uml2.uml.CallEvent; 37 48 import org.eclipse.uml2.uml.CallOperationAction; 38 49 import org.eclipse.uml2.uml.Comment; … … 66 77 import org.eclipse.uml2.uml.Property; 67 78 import org.eclipse.uml2.uml.Region; 79 import org.eclipse.uml2.uml.Relationship; 68 80 import org.eclipse.uml2.uml.Slot; 69 81 import org.eclipse.uml2.uml.StateMachine; 70 82 import org.eclipse.uml2.uml.Stereotype; 71 83 import org.eclipse.uml2.uml.Transition; 84 import org.eclipse.uml2.uml.Trigger; 85 import org.eclipse.uml2.uml.Type; 72 86 import org.eclipse.uml2.uml.UMLPackage; 73 87 import org.eclipse.uml2.uml.Vertex; 88 import org.w3c.dom.Attr; 89 import org.w3c.dom.Node; 90 import org.w3c.dom.NodeList; 74 91 75 92 import de.ugoe.cs.autoquest.eventcore.Event; 93 import de.ugoe.cs.autoquest.plugin.http.SOAPUtils; 76 94 import de.ugoe.cs.autoquest.plugin.http.eventcore.SOAPEventType; 77 95 import de.ugoe.cs.autoquest.plugin.http.eventcore.SimpleSOAPEventType; 78 96 import de.ugoe.cs.autoquest.plugin.uml.eventcore.UMLTransitionType; 79 97 import de.ugoe.cs.autoquest.usageprofiles.IStochasticProcess; 98 import de.ugoe.cs.util.StringTools; 80 99 import de.ugoe.cs.util.console.Console; 81 100 … … 88 107 */ 89 108 public class UMLUtils { 109 110 /** 111 * In case a multiplicity is defined as *, this value defines the highest one that can be picked 112 */ 113 final static int MAX_MULTIPLICITY = 10; 114 115 final public static URI UML_PRIMITIVE_TYPES_URI = URI 116 .createURI("pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml", true); 90 117 91 118 /** … … 135 162 for (List<Event> sequence : sequences) { 136 163 for (Event event : sequence) { 137 String serviceName = getServiceNameFromEvent(event);138 String calledMethod = getCalledMethodFromEvent(event);139 if ( serviceName!=null) {164 String serviceName = SOAPUtils.getServiceNameFromEvent(event); 165 String calledMethod = SOAPUtils.getCalledMethodFromEvent(event); 166 if (serviceName != null) { 140 167 Set<String> curCalledMethods = calledMethods.get(serviceName); 141 168 if (curCalledMethods == null) { … … 152 179 for (Entry<String, Set<String>> entry : calledMethods.entrySet()) { 153 180 Console.traceln(Level.INFO, "\tService \"" + entry.getKey() + "\": "); 154 for (String method : entry.getValue()) {155 Console.traceln(Level.INFO, "\t\t" +method);181 for (String method : entry.getValue()) { 182 Console.traceln(Level.INFO, "\t\t" + method); 156 183 } 157 184 } … … 204 231 "\tFound the following realized interfaces for the service \"" + 205 232 serviceName + "\": "); 206 for ( Interface intface : interfaces) {233 for (Interface intface : interfaces) { 207 234 Console.traceln(Level.INFO, "\t" + intface.getName()); 208 for ( Operation operation : intface.getAllOperations()) {235 for (Operation operation : intface.getAllOperations()) { 209 236 Console.traceln(Level.INFO, "\t\t" + operation.getName()); 210 237 } … … 235 262 * <p> 236 263 * Creates a sequence of events with {@link UMLTransitionType} as event type from a given 237 * sequence of events with the {@link SOAPEventType} , by matching the sequences to a state238 * machine.264 * sequence of events with the {@link SOAPEventType} or {@link SimpleSOAPEventType}, by matching 265 * the sequences to a state machine. 239 266 * </p> 240 267 * … … 248 275 StateMachine stateMachine) 249 276 { 277 System.out.println("foo"); 250 278 List<List<Transition>> matchingSequences = 251 279 determineMatchingTransitionSequences(sequence, stateMachine); 280 System.out.println(matchingSequences.size()); 252 281 253 282 if (matchingSequences.size() != 1) { … … 370 399 for (Iterator<Event> eventIterator = sequence.iterator(); eventIterator.hasNext();) { 371 400 Event event = eventIterator.next(); 372 if (event.getType() instanceof SOAPEventType) { 373 SOAPEventType eventType = (SOAPEventType) event.getType(); 374 if (matchingSequences == null) { 375 matchingSequences = new LinkedList<>(); 376 List<Transition> initialMatches = matchTransitions(allTransitions, eventType); 377 for (Transition transition : initialMatches) { 378 List<Transition> candidate = new LinkedList<>(); 379 candidate.add(transition); 380 matchingSequences.add(candidate); 381 } 382 currentTransitions = initialMatches; 383 } 384 else { 385 List<List<Transition>> nextMatchingSequences = new LinkedList<>(); 386 List<Transition> nextCurrentTransitions = new LinkedList<>(); 387 Iterator<Transition> currentTransitionIterator = currentTransitions.iterator(); 388 Iterator<List<Transition>> currentMatchingSequencesIterator = 389 matchingSequences.iterator(); 390 while (currentTransitionIterator.hasNext()) { 391 Transition currentTransition = currentTransitionIterator.next(); 392 List<Transition> currentMatch = currentMatchingSequencesIterator.next(); 393 394 List<Transition> matches = 395 matchTransitions(currentTransition.getTarget().getOutgoings(), 396 eventType); 397 if (matches.isEmpty()) { 398 throw new RuntimeException("no matches found"); 399 } 400 for (Transition matchingTransition : matches) { 401 List<Transition> candidate = new LinkedList<>(currentMatch); 402 candidate.add(matchingTransition); 403 nextMatchingSequences.add(candidate); 404 nextCurrentTransitions.add(matchingTransition); 405 } 406 } 407 matchingSequences = nextMatchingSequences; 408 currentTransitions = nextCurrentTransitions; 409 } 401 System.out.println(event); 402 System.out.println(matchingSequences); 403 if (matchingSequences == null) { 404 matchingSequences = new LinkedList<>(); 405 List<Transition> initialMatches = matchTransitions(allTransitions, event); 406 for (Transition transition : initialMatches) { 407 List<Transition> candidate = new LinkedList<>(); 408 candidate.add(transition); 409 matchingSequences.add(candidate); 410 } 411 currentTransitions = initialMatches; 410 412 } 411 413 else { 412 throw new RuntimeException( 413 "Wrong event type. Only UMLTransitionType supported but was: " + 414 event.getType().getClass().getName()); 414 List<List<Transition>> nextMatchingSequences = new LinkedList<>(); 415 List<Transition> nextCurrentTransitions = new LinkedList<>(); 416 Iterator<Transition> currentTransitionIterator = currentTransitions.iterator(); 417 Iterator<List<Transition>> currentMatchingSequencesIterator = 418 matchingSequences.iterator(); 419 while (currentTransitionIterator.hasNext()) { 420 Transition currentTransition = currentTransitionIterator.next(); 421 List<Transition> currentMatch = currentMatchingSequencesIterator.next(); 422 423 List<Transition> matches = 424 matchTransitions(currentTransition.getTarget().getOutgoings(), event); 425 if (matches.isEmpty()) { 426 throw new RuntimeException("no matches found"); 427 } 428 for (Transition matchingTransition : matches) { 429 List<Transition> candidate = new LinkedList<>(currentMatch); 430 candidate.add(matchingTransition); 431 nextMatchingSequences.add(candidate); 432 nextCurrentTransitions.add(matchingTransition); 433 } 434 } 435 matchingSequences = nextMatchingSequences; 436 currentTransitions = nextCurrentTransitions; 415 437 } 416 438 } … … 444 466 final Stereotype utpTestContext = (Stereotype) utpProfile.getOwnedMember("TestContext"); 445 467 468 // add UML Primitive types 469 // final UMLResource umlRes = (UMLResource) 470 // model.eResource().getResourceSet().getResource(UML_PRIMITIVE_TYPES_URI, true); 471 // model = (Model) umlRes.getContents().get(0); 472 446 473 Component testContext = fetchTestContext(model, utpTestContext, testContextName); 447 474 if (testContext == null) { … … 485 512 for (Event event : sequence) { 486 513 if (!(event.equals(Event.STARTEVENT) || event.equals(Event.ENDEVENT))) { 487 String serviceName = getServiceNameFromEvent(event); 488 String methodName = getCalledMethodFromEvent(event); 489 String clientName = getClientNameFromEvent(event); 514 String serviceName = SOAPUtils.getServiceNameFromEvent(event); 515 String methodName = SOAPUtils.getCalledMethodFromEvent(event); 516 String clientName = SOAPUtils.getClientNameFromEvent(event); 517 String prefix = interactionName + ":" + i + ":" + methodName + "_"; 490 518 // determine lifelines 491 519 Lifeline msgTargetLifeline; 492 520 Lifeline msgSourceLifeline; 493 521 494 522 msgSourceLifeline = interaction.getLifeline(clientName); 495 523 msgTargetLifeline = interaction.getLifeline(serviceName); 496 524 497 525 if (msgSourceLifeline == null) { 498 526 throw new RuntimeException( 499 "Error creating message: could not determine source lifeline for component: " + clientName); 527 "Error creating message: could not determine source lifeline for component: " + 528 clientName); 500 529 } 501 530 if (msgTargetLifeline == null) { 502 531 throw new RuntimeException( 503 "Error creating message: could not determine target lifeline for component: " + serviceName); 532 "Error creating message: could not determine target lifeline for component: " + 533 serviceName); 504 534 } 505 535 // determine correct target interface … … 541 571 // setup for both SYNCH and ASYNCH calls 542 572 MessageOccurrenceSpecification callSendFragment = 543 (MessageOccurrenceSpecification) interaction 544 .createFragment(i + ":" + methodName + "_callSendFragment", 545 UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 573 (MessageOccurrenceSpecification) interaction.createFragment(prefix + 574 "callSendFragment", UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 546 575 MessageOccurrenceSpecification callRecvFragment = 547 (MessageOccurrenceSpecification) interaction 548 .createFragment(i + ":" + methodName + "_callRecvFragment", 549 UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 576 (MessageOccurrenceSpecification) interaction.createFragment(prefix + 577 "callRecvFragment", UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 550 578 551 579 callSendFragment.setCovered(msgSourceLifeline); … … 554 582 // create call 555 583 Message callMessage = interaction.createMessage(methodName); 556 callMessage.setSignature(calledOperation); 557 setMessageParameters(callMessage, calledOperation, event );584 callMessage.setSignature(calledOperation); 585 setMessageParameters(callMessage, calledOperation, event, prefix); 558 586 callMessage.setConnector(inferConnector(msgSourceLifeline, msgTargetLifeline)); 559 587 callMessage.setSendEvent(callSendFragment); … … 577 605 MessageOccurrenceSpecification replySendFragment = 578 606 (MessageOccurrenceSpecification) interaction 579 .createFragment( i + ":" + methodName + "_replySendFragment",607 .createFragment(prefix + "replySendFragment", 580 608 UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 581 609 MessageOccurrenceSpecification replyRecvFragment = 582 610 (MessageOccurrenceSpecification) interaction 583 .createFragment( i + ":" + methodName + "_replyRecvFragment",611 .createFragment(prefix + "replyRecvFragment", 584 612 UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 585 613 … … 618 646 } 619 647 620 621 622 648 /** 623 649 * <p> … … 653 679 .getName(); 654 680 } 655 eventSequence.add(new Event(new SimpleSOAPEventType(methodName, serviceName,""))); // TODO add client name 681 // eventSequence.add(new Event(new SimpleSOAPEventType(methodName, serviceName, "", 682 // ))); // TODO 683 // add 684 // client 685 // name 656 686 } 657 687 } … … 755 785 } 756 786 return result; 757 }758 759 /**760 * <p>761 * Helper function to get the name of a service from a SOAP event.762 * </p>763 *764 * @param event765 * event for which the service name is retrieved766 * @return service name767 */768 protected static String getServiceNameFromEvent(Event event) {769 if (event.getType() instanceof SOAPEventType) {770 return ((SOAPEventType) event.getType()).getServiceName();771 }772 else if (event.getType() instanceof SimpleSOAPEventType) {773 return ((SimpleSOAPEventType) event.getType()).getServiceName();774 }775 else {776 throw new RuntimeException(777 "Wrong event type. Only SOAPEventType and SimpleSOAPEventType supported but was: " +778 event.getType().getClass().getName());779 }780 }781 782 /**783 *784 * <p>785 * Helper function to get the called method from a SOAP event786 * </p>787 *788 * @param event789 * event for which the called method is retrieved790 * @return called method791 */792 private static String getCalledMethodFromEvent(Event event) {793 if (event.getType() instanceof SOAPEventType) {794 return ((SOAPEventType) event.getType()).getCalledMethod();795 }796 else if (event.getType() instanceof SimpleSOAPEventType) {797 return ((SimpleSOAPEventType) event.getType()).getCalledMethod();798 }799 else {800 throw new RuntimeException(801 "Wrong event type. Only SOAPEventType and SimpleSOAPEventType supported but was: " +802 event.getType().getClass().getName());803 }804 }805 806 /**807 * <p>808 * Helper function to get the name of a client from a SOAP event.809 * </p>810 *811 * @param event812 * event for which the client name is retrieved813 * @return service name814 */815 protected static String getClientNameFromEvent(Event event) {816 if (event.getType() instanceof SOAPEventType) {817 return ((SOAPEventType) event.getType()).getClientName();818 }819 else if (event.getType() instanceof SimpleSOAPEventType) {820 return ((SimpleSOAPEventType) event.getType()).getClientName();821 }822 else {823 throw new RuntimeException(824 "Wrong event type. Only SOAPEventType and SimpleSOAPEventType supported but was: " +825 event.getType().getClass().getName());826 }827 787 } 828 788 … … 864 824 * @return matching transitions 865 825 */ 866 private static List<Transition> matchTransitions(List<Transition> transitions, 867 SOAPEventType eventType) 868 { 826 private static List<Transition> matchTransitions(List<Transition> transitions, Event event) { 827 String eventService = SOAPUtils.getServiceNameFromEvent(event); 828 String eventMethod = SOAPUtils.getCalledMethodFromEvent(event); 829 830 Map<Interface, String> interfaceServiceMap = 831 createInterfaceServiceMap(transitions.get(0).getModel()); 832 869 833 List<Transition> matching = new LinkedList<>(); 870 834 for (Transition transition : transitions) { 871 // String serviceName = transition.getName().split("\\.")[0]; // TODO service name check 872 String methodName = transition.getName().split("\\.")[1]; 873 if (methodName.equals(eventType.getCalledMethod())) { 874 matching.add(transition); 875 } 835 EList<Trigger> triggers = transition.getTriggers(); 836 if (triggers.size() == 1) { 837 if (triggers.get(0).getEvent() instanceof CallEvent) { 838 CallEvent callEvent = (CallEvent) triggers.get(0).getEvent(); 839 String transitionMethod = callEvent.getOperation().getName(); 840 841 Interface intface = callEvent.getOperation().getInterface(); 842 for (Relationship relationship : intface.getRelationships()) { 843 for (Element element : relationship.getRelatedElements()) { 844 if (element instanceof Component) { 845 846 } 847 } 848 } 849 850 String transitionService = 851 interfaceServiceMap.get(callEvent.getOperation().getInterface()); 852 if (eventMethod.equals(transitionMethod) && 853 eventService.equals(transitionService)) 854 { 855 matching.add(transition); 856 } 857 } 858 } 859 876 860 } 877 861 return matching; … … 970 954 return null; 971 955 } 972 973 private static void setMessageParameters(Message callMessage, Operation calledOperation, Event event) { 956 957 private static Map<Interface, String> createInterfaceServiceMap(Model model) { 958 Map<Interface, String> interfaceServiceMap = new HashMap<>(); 959 final Profile utpProfile = model.getModel().getAppliedProfile("utp"); 960 final Stereotype utpTestComponent = (Stereotype) utpProfile.getOwnedMember("TestComponent"); 961 final Stereotype utpSUT = (Stereotype) utpProfile.getOwnedMember("SUT"); 962 final Stereotype utpTestContext = (Stereotype) utpProfile.getOwnedMember("TestContext"); 963 List<Component> testContexts = 964 fetchTestContextRecursively(model.getModel(), utpTestContext); 965 for (Component testContext : testContexts) { 966 for (Property property : testContext.getAllAttributes()) { 967 if (property.getAppliedStereotypes().contains(utpSUT) || 968 property.getType().getAppliedStereotypes().contains(utpTestComponent)) 969 { 970 for (Interface intface : getRealizedInterfacesFromProperty(property)) { 971 interfaceServiceMap.put(intface, property.getName()); 972 } 973 } 974 } 975 } 976 return interfaceServiceMap; 977 } 978 979 private static void setMessageParameters(Message callMessage, 980 Operation calledOperation, 981 Event event, 982 String prefix) 983 { 984 org.w3c.dom.Element requestBody = SOAPUtils.getSoapRequestBodyFromEvent(event); 985 974 986 // Set parameters of operation 975 for( Parameter param : calledOperation.getOwnedParameters() ) { 976 Expression argument = (Expression) callMessage.createArgument(param.getName(), param.getType(), UMLPackage.Literals.EXPRESSION); 977 978 if( param.getDirection()==ParameterDirectionKind.IN_LITERAL || param.getDirection()==ParameterDirectionKind.INOUT_LITERAL) { 979 if( param.getType() instanceof DataType ) { 980 InstanceSpecification instSpec = createInstanceSpecification((DataType) param.getType(), event); 981 982 InstanceValue value = (InstanceValue) argument.createOperand(null, param.getType(), UMLPackage.Literals.INSTANCE_VALUE); 983 value.setInstance(instSpec); 984 } 985 else if( param.getType() instanceof PrimitiveType ) { 986 if( "String".equals(param.getType().getName()) ) { 987 LiteralString spec = (LiteralString) argument.createOperand(param.getName(), null, UMLPackage.Literals.LITERAL_STRING); 988 spec.setValue("foobar"); // TODO needs to be real value 989 } 990 else if( "Integer".equals(param.getType().getName()) ) { 991 LiteralInteger spec = (LiteralInteger) argument.createOperand(param.getName(), null, UMLPackage.Literals.LITERAL_INTEGER); 992 spec.setValue(42); // TODO needs to be real value 993 } 994 else if( "Boolean".equals(param.getType().getName()) ) { 995 LiteralBoolean spec = (LiteralBoolean) argument.createOperand(param.getName(), null, UMLPackage.Literals.LITERAL_BOOLEAN); 996 spec.setValue(true); // TODO needs to be real value 997 } 998 else if( "Real".equals(param.getType().getName()) ) { 999 LiteralReal spec = (LiteralReal) argument.createOperand(param.getName(), null, UMLPackage.Literals.LITERAL_REAL); 1000 spec.setValue(3.14); // TODO needs to be real value 1001 } 1002 } 1003 } else { 987 for (Parameter param : calledOperation.getOwnedParameters()) { 988 Expression argument = 989 (Expression) callMessage.createArgument(param.getName(), param.getType(), 990 UMLPackage.Literals.EXPRESSION); 991 992 if (param.getDirection() == ParameterDirectionKind.IN_LITERAL || 993 param.getDirection() == ParameterDirectionKind.INOUT_LITERAL) 994 { 995 if (param.getType() instanceof DataType) { 996 List<org.w3c.dom.Element> paramNodes = 997 getMatchingChildNode((DataType) param.getType(), requestBody); 998 for (org.w3c.dom.Element paramNode : paramNodes) { 999 InstanceSpecification instSpec = 1000 createInstanceSpecification((DataType) param.getType(), event, prefix, 1001 paramNode, ""); 1002 1003 InstanceValue value = 1004 (InstanceValue) argument 1005 .createOperand(null, param.getType(), 1006 UMLPackage.Literals.INSTANCE_VALUE); 1007 value.setInstance(instSpec); 1008 } 1009 } 1010 else if (param.getType() instanceof PrimitiveType) { 1011 createOperandPrimitiveType(param, argument, requestBody); 1012 } 1013 } 1014 else { 1004 1015 // set literalNull for out and return parameters 1005 1016 argument.createOperand(null, param.getType(), UMLPackage.Literals.LITERAL_NULL); … … 1007 1018 } 1008 1019 } 1009 1010 public static InstanceSpecification createInstanceSpecification(DataType type, Event event) { 1020 1021 private static InstanceSpecification createInstanceSpecification(DataType type, 1022 Event event, 1023 String prefix, 1024 org.w3c.dom.Element currentNode, 1025 String path) 1026 { 1027 if ("".equals(path)) { 1028 path = type.getName(); 1029 } 1030 // System.out.println(path); 1011 1031 String pkgUBTInstSpecs = "UBT_InstanceSpecifications"; 1012 1032 Model model = type.getModel(); 1013 1033 Package ubtInstSpecPkg = (Package) model.getOwnedMember(pkgUBTInstSpecs); 1014 if( ubtInstSpecPkg==null ) { 1015 ubtInstSpecPkg = (Package) type.getModel().createPackagedElement(pkgUBTInstSpecs, UMLPackage.Literals.PACKAGE); 1016 } 1017 String serviceName = getServiceNameFromEvent(event); 1034 if (ubtInstSpecPkg == null) { 1035 ubtInstSpecPkg = 1036 (Package) type.getModel().createPackagedElement(pkgUBTInstSpecs, 1037 UMLPackage.Literals.PACKAGE); 1038 } 1039 String serviceName = SOAPUtils.getServiceNameFromEvent(event); 1018 1040 Package serviceInstSpecPkg = (Package) ubtInstSpecPkg.getOwnedMember(serviceName); 1019 if( serviceInstSpecPkg==null ) { 1020 serviceInstSpecPkg = (Package) ubtInstSpecPkg.createPackagedElement(serviceName, UMLPackage.Literals.PACKAGE); 1021 } 1022 1023 InstanceSpecification instSpec = (InstanceSpecification) serviceInstSpecPkg.createPackagedElement("instspec_"+type.getName(), UMLPackage.Literals.INSTANCE_SPECIFICATION); 1041 if (serviceInstSpecPkg == null) { 1042 serviceInstSpecPkg = 1043 (Package) ubtInstSpecPkg.createPackagedElement(serviceName, 1044 UMLPackage.Literals.PACKAGE); 1045 } 1046 1047 InstanceSpecification instSpec = 1048 (InstanceSpecification) serviceInstSpecPkg.createPackagedElement(prefix + "instspec_" + 1049 type.getName(), UMLPackage.Literals.INSTANCE_SPECIFICATION); 1024 1050 instSpec.getClassifiers().add(type); 1025 for( Property prop : type.getAllAttributes() ) { 1026 // TODO handle multiplicity 1027 //int lowerBound = prop.getLower(); 1028 //int upperBound = prop.getUpper(); 1029 1051 for (Property prop : type.getAllAttributes()) { 1052 if (prop.getType() instanceof PrimitiveType) { 1053 createSlotPrimitiveType(instSpec, prop, currentNode, path); 1054 } 1055 else if (prop.getType() instanceof DataType) { 1056 List<org.w3c.dom.Element> attributeNodes = null; 1057 int multiplicityChosen = 0; 1058 if (currentNode != null) { 1059 attributeNodes = getMatchingChildNode(prop, currentNode); 1060 multiplicityChosen = attributeNodes.size(); 1061 } 1062 1063 if (multiplicityChosen == 0 && prop.getLower() > 0) { 1064 if (currentNode != null) { 1065 Console.traceln(Level.WARNING, 1066 "required attribute not found in SOAP message: " + path + 1067 "." + prop.getName()); 1068 Console 1069 .traceln(Level.WARNING, 1070 "setting default values for this attribute and all its children"); 1071 Console.traceln(Level.FINE, "XML structure of path:" + StringTools.ENDLINE + 1072 SOAPUtils.getSerialization(currentNode)); 1073 } 1074 multiplicityChosen = prop.getLower(); 1075 } 1076 for (int i = 0; i < multiplicityChosen; i++) { 1077 org.w3c.dom.Element attributeNode = null; 1078 if (attributeNodes != null && !attributeNodes.isEmpty()) { 1079 attributeNode = attributeNodes.get(i); 1080 } 1081 1082 Slot slot = instSpec.createSlot(); 1083 slot.setDefiningFeature(prop); 1084 1085 InstanceValue value = 1086 (InstanceValue) slot.createValue(prop.getName() + "_" + i, prop.getType(), 1087 UMLPackage.Literals.INSTANCE_VALUE); 1088 value.setInstance(createInstanceSpecification((DataType) prop.getType(), event, 1089 prefix, attributeNode, path + 1090 "." + prop.getName())); 1091 } 1092 } 1093 else { 1094 Console.traceln(Level.SEVERE, "property neither DataType nor PrimitiveType: " + 1095 prop.getType()); 1096 // TODO abort? 1097 } 1098 } 1099 return instSpec; 1100 } 1101 1102 private static void createOperandPrimitiveType(Parameter param, 1103 Expression argument, 1104 org.w3c.dom.Element currentNode) 1105 { 1106 if ("String".equals(param.getType().getName())) { 1107 LiteralString spec = 1108 (LiteralString) argument.createOperand(param.getName(), null, 1109 UMLPackage.Literals.LITERAL_STRING); 1110 spec.setValue("foobar"); // TODO needs to be real value 1111 } 1112 else if ("Integer".equals(param.getType().getName())) { 1113 LiteralInteger spec = 1114 (LiteralInteger) argument.createOperand(param.getName(), null, 1115 UMLPackage.Literals.LITERAL_INTEGER); 1116 spec.setValue(42); // TODO needs to be real value 1117 } 1118 else if ("Boolean".equals(param.getType().getName())) { 1119 LiteralBoolean spec = 1120 (LiteralBoolean) argument.createOperand(param.getName(), null, 1121 UMLPackage.Literals.LITERAL_BOOLEAN); 1122 spec.setValue(true); // TODO needs to be real value 1123 } 1124 else if ("Real".equals(param.getType().getName())) { 1125 LiteralReal spec = 1126 (LiteralReal) argument.createOperand(param.getName(), null, 1127 UMLPackage.Literals.LITERAL_REAL); 1128 spec.setValue(3.14); // TODO needs to be real value 1129 } 1130 } 1131 1132 private static void createSlotPrimitiveType(InstanceSpecification instSpec, 1133 Property prop, 1134 org.w3c.dom.Element currentNode, 1135 String path) 1136 { 1137 List<String> attributeValues = getPrimitiveTypeValuesFromElement(prop, currentNode); 1138 1139 if (attributeValues.isEmpty()) { 1140 if (prop.getLower() == 0) { 1141 // ignoring optional attribute 1142 return; 1143 } 1144 else { 1145 if (currentNode != null) { 1146 Console.traceln(Level.WARNING, 1147 "required attribute not found in SOAP message: " + path + "." + 1148 prop.getName()); 1149 Console.traceln(Level.WARNING, "setting default values for this attribute"); 1150 } 1151 Console.traceln(Level.FINE, "XML structure of path:" + StringTools.ENDLINE + 1152 SOAPUtils.getSerialization(currentNode)); 1153 attributeValues.add(null); 1154 } 1155 } 1156 for (String attributeValue : attributeValues) { 1030 1157 Slot slot = instSpec.createSlot(); 1031 1158 slot.setDefiningFeature(prop); 1032 if( prop.getType() instanceof PrimitiveType ) { 1033 if( "String".equals(prop.getType().getName()) ) { 1034 LiteralString value = (LiteralString) slot.createValue(prop.getName(), null, UMLPackage.Literals.LITERAL_STRING); 1035 value.setValue("foobar"); // TODO needs to be real value 1036 } 1037 else if( "Integer".equals(prop.getType().getName()) ) { 1038 LiteralInteger value = (LiteralInteger) slot.createValue(prop.getName(), null, UMLPackage.Literals.LITERAL_INTEGER); 1039 value.setValue(42); // TODO needs to be real value 1040 } 1041 else if( "Boolean".equals(prop.getType().getName()) ) { 1042 LiteralBoolean value = (LiteralBoolean) slot.createValue(prop.getName(), null, UMLPackage.Literals.LITERAL_BOOLEAN); 1043 value.setValue(true); // TODO needs to be real value 1044 } 1045 else if( "Real".equals(prop.getType().getName()) ) { 1046 LiteralReal value = (LiteralReal) slot.createValue(prop.getName(), null, UMLPackage.Literals.LITERAL_REAL); 1159 if ("String".equals(prop.getType().getName())) { 1160 LiteralString value = 1161 (LiteralString) slot.createValue(prop.getName(), null, 1162 UMLPackage.Literals.LITERAL_STRING); 1163 if (attributeValue != null) { 1164 value.setValue(attributeValue); 1165 } 1166 else { 1167 value.setValue("foobar"); 1168 } 1169 } 1170 else if ("Integer".equals(prop.getType().getName())) { 1171 LiteralInteger value = 1172 (LiteralInteger) slot.createValue(prop.getName(), null, 1173 UMLPackage.Literals.LITERAL_INTEGER); 1174 if (attributeValue != null) { 1175 value.setValue(Integer.parseInt(attributeValue)); 1176 } 1177 else { 1178 value.setValue(42); 1179 } 1180 } 1181 else if ("Boolean".equals(prop.getType().getName())) { 1182 LiteralBoolean value = 1183 (LiteralBoolean) slot.createValue(prop.getName(), null, 1184 UMLPackage.Literals.LITERAL_BOOLEAN); 1185 if (attributeValue != null) { 1186 value.setValue(Boolean.parseBoolean(attributeValue)); 1187 } 1188 else { 1189 value.setValue(true); 1190 } 1191 } 1192 else if ("Real".equals(prop.getType().getName())) { 1193 LiteralReal value = 1194 (LiteralReal) slot.createValue(prop.getName(), null, 1195 UMLPackage.Literals.LITERAL_REAL); 1196 if (attributeValue != null) { 1197 value.setValue(Double.parseDouble(attributeValue)); 1198 } 1199 else { 1047 1200 value.setValue(3.14); // TODO needs to be real value 1048 1201 } 1049 1202 } 1050 else if( prop.getType() instanceof DataType ) { 1051 InstanceValue value = (InstanceValue) slot.createValue(prop.getName(), prop.getType(), UMLPackage.Literals.INSTANCE_VALUE); 1052 value.setInstance(createInstanceSpecification((DataType) prop.getType(), event)); 1053 } 1054 } 1055 return instSpec; 1056 } 1203 else { 1204 Console.traceln(Level.SEVERE, "could not create literal for primitive type: " + 1205 prop.getType().getName()); 1206 // TODO abort? 1207 } 1208 } 1209 } 1210 1211 // TODO comment 1212 private static List<org.w3c.dom.Element> getMatchingChildNode(Type type, 1213 org.w3c.dom.Element parentNode) 1214 { 1215 return getMachingChildNode(type.getName(), parentNode); 1216 } 1217 1218 // TODO comment 1219 private static List<org.w3c.dom.Element> getMatchingChildNode(Property prop, 1220 org.w3c.dom.Element parentNode) 1221 { 1222 return getMachingChildNode(prop.getName(), parentNode); 1223 } 1224 1225 // TODO comment 1226 private static List<org.w3c.dom.Element> getMachingChildNode(String typeNameRaw, 1227 org.w3c.dom.Element parentNode) 1228 { 1229 List<org.w3c.dom.Element> matchingNodes = new ArrayList<>(); 1230 Node parameterNode = null; 1231 if (parentNode != null) { 1232 NodeList parameterNodes = parentNode.getChildNodes(); 1233 String[] typeNameSplit = typeNameRaw.split(":"); 1234 String typeName = typeNameSplit[typeNameSplit.length - 1]; 1235 for (int i = 0; i < parameterNodes.getLength(); i++) { 1236 parameterNode = parameterNodes.item(i); 1237 if (parameterNode.getNodeType() == Node.ELEMENT_NODE) { 1238 String[] parameterNodeSplit = parameterNode.getNodeName().split(":"); 1239 String parameterNodeName = parameterNodeSplit[parameterNodeSplit.length - 1]; 1240 if (typeName.equals(parameterNodeName)) { 1241 matchingNodes.add((org.w3c.dom.Element) parameterNode); 1242 } 1243 } 1244 } 1245 /* 1246 * if( !matchingSOAPFound) { Console.traceln(Level.WARNING, 1247 * "could not look up name of parameter in SOAP request: " + typeName); if( 1248 * elementCount==0 ) { Console.traceln(Level.INFO, "\tno parameters found"); } else { 1249 * Console.traceln(Level.INFO, "\tparameters found:"); for( int i=0 ; 1250 * i<parameterNodes.getLength(); i++ ) { if( 1251 * parameterNodes.item(i).getNodeType()==Node.ELEMENT_NODE ) { 1252 * Console.traceln(Level.INFO, "\t\t" + parameterNodes.item(i).getNodeName()); } } } 1253 * Console.traceln(Level.WARNING, 1254 * "using dummy values for this parameter (and nested values) instead"); } 1255 */ 1256 } 1257 return matchingNodes; 1258 } 1259 1260 // TODO 1261 private static List<String> getPrimitiveTypeValuesFromElement(Property prop, 1262 org.w3c.dom.Element currentNode) 1263 { 1264 List<String> attributeValues = new LinkedList<>(); 1265 1266 if (currentNode != null) { 1267 // first check attributes of the node 1268 Attr attribute = currentNode.getAttributeNode(prop.getName()); 1269 if (attribute != null) { 1270 attributeValues.add(attribute.getValue()); 1271 } 1272 else { 1273 // now check elements 1274 List<org.w3c.dom.Element> elements = getMatchingChildNode(prop, currentNode); 1275 for (org.w3c.dom.Element element : elements) { 1276 attributeValues.add(element.getTextContent()); 1277 } 1278 } 1279 } 1280 1281 return attributeValues; 1282 } 1283 1057 1284 }
Note: See TracChangeset
for help on using the changeset viewer.