Changeset 1926


Ignore:
Timestamp:
03/18/15 10:05:36 (10 years ago)
Author:
sherbold
Message:
  • UMLUtils now add real values to test cases based on the observations in the event sequence
  • test updated
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  
    2323import java.util.logging.Level; 
    2424 
     25import static org.junit.Assert.*; 
     26 
    2527import org.apache.commons.lang.SerializationUtils; 
    2628import org.eclipse.uml2.uml.Interaction; 
    2729import org.eclipse.uml2.uml.Model; 
    2830import org.eclipse.uml2.uml.StateMachine; 
    29 import org.eclipse.uml2.uml.Transition; 
    3031import org.eclipse.uml2.uml.UMLPackage; 
    3132import org.junit.After; 
     
    3637import de.ugoe.cs.autoquest.eventcore.Event; 
    3738import de.ugoe.cs.autoquest.plugin.http.HTTPLogParser; 
    38 import de.ugoe.cs.autoquest.plugin.http.HTTPUtils; 
     39import de.ugoe.cs.autoquest.plugin.http.SOAPUtils; 
    3940import de.ugoe.cs.autoquest.plugin.http.eventcore.SOAPEventType; 
    40 import de.ugoe.cs.autoquest.plugin.uml.eventcore.UMLTransitionType; 
    4141import de.ugoe.cs.autoquest.testgeneration.RandomWalkGenerator; 
    4242import de.ugoe.cs.autoquest.usageprofiles.FirstOrderMarkovModel; 
     
    5959        new TextConsole(Level.INFO); 
    6060    } 
    61      
     61 
    6262    @After 
    6363    public void tearDown() throws Exception { 
     
    6868    public void testCreateUMLTransitionSequence_1() throws Exception { 
    6969        // 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") 
    7274            .getFile())); 
    7375        Collection<List<Event>> httpSequences = parser.getSequences(); 
    74         Model model = 
    75             ModelUtils.loadModel(ClassLoader 
    76                 .getSystemResourceAsStream("createSequence_1_model.uml")); 
     76 
     77        Model model = 
     78            ModelUtils.loadModel(ClassLoader.getSystemResourceAsStream("ita_model_v2.uml")); 
    7779 
    7880        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            
    8285        Collection<List<Event>> umlSequences = new LinkedList<>(); 
     86         
     87        // remove everything but transport from sequences 
    8388        for (List<Event> httpSequence : httpSequences) { 
    8489            for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 
     
    8893                } 
    8994                else { 
    90                     if (!event.getType().toString().contains("ixsmq")) { 
     95                    SOAPEventType eventType = (SOAPEventType) event.getType(); 
     96                    if (!"TransportService".equals(eventType.getServiceName())) { 
    9197                        eventIter.remove(); 
    9298                    } 
    9399                } 
    94100            } 
    95  
    96101            umlSequences.add(UMLUtils.createUMLTransitionSequence(httpSequence, stateMachine)); 
    97102        } 
     
    100105    @Test 
    101106    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") 
    105111            .getFile())); 
    106112        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 
    116118        for (List<Event> httpSequence : httpSequences) { 
    117119            for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 
     
    121123                } 
    122124                else { 
    123                     if (!event.getType().toString().contains("ixsmq")) { 
     125                    SOAPEventType eventType = (SOAPEventType) event.getType(); 
     126                    if (!"TransportService".equals(eventType.getServiceName())) { 
    124127                        eventIter.remove(); 
    125128                    } 
    126129                } 
    127130            } 
    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"); 
    142140    } 
    143141 
     
    170168        } 
    171169 
    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 
    175174    @Test 
    176175    public void testCreateInteractionFromEventSequence_2() throws Exception { 
     
    201200        } 
    202201 
    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 
    206206    @Test 
    207207    public void testCalculateUsageScore_1() throws Exception { 
     
    220220        Collection<List<Event>> simpleSOAPSequences = new LinkedList<>(); 
    221221        for (List<Event> httpSequence : httpSequences) { 
    222             simpleSOAPSequences.add(HTTPUtils.convertToSimpleSOAPEvent(httpSequence, true)); 
     222            simpleSOAPSequences.add(SOAPUtils.convertToSimpleSOAPEvent(httpSequence, true)); 
    223223        } 
    224224 
     
    244244        } 
    245245    } 
    246      
     246 
    247247    @Test 
    248248    public void testCreateScheduling_1() throws Exception { 
    249249        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 
    255257        UMLUtils.createScheduling(model, usageProfile, null); 
    256          
     258 
    257259        ModelUtils.writeModelToFile(model, OUTPUT_DIR + "testCreateScheduling_1_result.uml"); 
    258260    } 
    259      
     261 
    260262    @Test 
    261263    public void testValidateModelWithLog_1() throws Exception { 
    262264        HTTPLogParser parser = 
    263                 new HTTPLogParser(new File(ClassLoader 
    264                     .getSystemResource("testCreateInteractionFromEventSequence_1_properties.txt") 
    265                     .getFile())); 
     265            new HTTPLogParser(new File(ClassLoader 
     266                .getSystemResource("testCreateInteractionFromEventSequence_1_properties.txt") 
     267                .getFile())); 
    266268        parser 
    267269            .parseFile(new File(ClassLoader 
     
    270272        Collection<List<Event>> httpSequences = parser.getSequences(); 
    271273 
     274        for (List<Event> httpSequence : httpSequences) { 
     275            SOAPUtils.removeNonSOAPEvents(httpSequence); 
     276        } 
    272277         
    273278        Model model = 
    274279            ModelUtils.loadModel(ClassLoader 
    275280                .getSystemResourceAsStream("testCreateInteractionFromEventSequence_1_model.uml")); 
    276          
     281 
    277282        int violations = UMLUtils.validateModelWithLog(httpSequences, model, null); 
    278         if( violations==0 ) { 
     283        if (violations == 0) { 
    279284            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 
    285291    @Test 
    286292    public void testValidateModelWithLog_2() throws Exception { 
    287293        HTTPLogParser parser = 
    288                 new HTTPLogParser(new File(ClassLoader 
    289                     .getSystemResource("testCreateInteractionFromEventSequence_2_properties.txt") 
    290                     .getFile())); 
     294            new HTTPLogParser(new File(ClassLoader 
     295                .getSystemResource("testCreateInteractionFromEventSequence_2_properties.txt") 
     296                .getFile())); 
    291297        parser 
    292298            .parseFile(new File(ClassLoader 
     
    295301        Collection<List<Event>> httpSequences = parser.getSequences(); 
    296302 
     303        for (List<Event> httpSequence : httpSequences) { 
     304            SOAPUtils.removeNonSOAPEvents(httpSequence); 
     305        } 
    297306         
    298307        Model model = 
    299308            ModelUtils.loadModel(ClassLoader 
    300309                .getSystemResourceAsStream("testCreateInteractionFromEventSequence_2_model.uml")); 
    301          
     310 
    302311        int violations = UMLUtils.validateModelWithLog(httpSequences, model, null); 
    303         if( violations==0 ) { 
     312        if (violations == 0) { 
    304313            System.out.println("No problems found."); 
    305         } else { 
     314        } 
     315        else { 
    306316            System.out.println(violations + " violations found."); 
    307317        } 
    308318    } 
    309      
     319 
    310320    @Test 
    311321    public void testValidateModelWithLog_HL7_RLUS_v3() throws Exception { 
    312322        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())); 
    316325        parser 
    317326            .parseFile(new File(ClassLoader 
     
    320329        Collection<List<Event>> httpSequences = parser.getSequences(); 
    321330 
    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 
    327338        int violations = UMLUtils.validateModelWithLog(httpSequences, model, "RLUSTestSuite_1"); 
    328         if( violations==0 ) { 
     339        if (violations == 0) { 
    329340            System.out.println("No problems found."); 
    330         } else { 
     341        } 
     342        else { 
    331343            System.out.println(violations + " violations found."); 
    332344        } 
    333          
     345 
    334346        // remove everything but rlusService from sequences 
    335347        for (List<Event> httpSequence : httpSequences) { 
    336348            for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 
    337349                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 
    351362        ModelUtils.writeModelToFile(model, OUTPUT_DIR + "hl7_v3_result.uml"); 
    352363    } 
    353      
     364 
    354365    @Test 
    355366    public void testValidateModelWithLog_HL7_IXS_v3() throws Exception { 
    356367        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())); 
    360370        parser 
    361371            .parseFile(new File(ClassLoader 
     
    364374        Collection<List<Event>> httpSequences = parser.getSequences(); 
    365375 
    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 
    371383        int violations = UMLUtils.validateModelWithLog(httpSequences, model, "IXSTestSuite_1"); 
    372         if( violations==0 ) { 
     384        if (violations == 0) { 
    373385            System.out.println("No problems found."); 
    374         } else { 
     386        } 
     387        else { 
    375388            System.out.println(violations + " violations found."); 
    376389        } 
    377          
     390 
    378391        // remove everything but rlusService from sequences 
    379392        for (List<Event> httpSequence : httpSequences) { 
    380393            for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 
    381394                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 
    395405        ModelUtils.writeModelToFile(model, OUTPUT_DIR + "hl7_v3_result.uml"); 
    396406    } 
    397      
     407 
    398408    @Test 
    399409    public void testValidateModelWithLog_ITA_v2() throws Exception { 
    400410        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 
    415424        int violations = UMLUtils.validateModelWithLog(httpSequences, model, null); 
    416         if( violations==0 ) { 
     425        if (violations == 0) { 
    417426            System.out.println("No problems found."); 
    418         } else { 
     427        } 
     428        else { 
    419429            System.out.println(violations + " violations found."); 
    420430        } 
    421          
     431 
    422432        // remove everything but transport from sequences 
    423433        for (List<Event> httpSequence : httpSequences) { 
    424434            for (Iterator<Event> eventIter = httpSequence.iterator(); eventIter.hasNext();) { 
    425435                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 
    439446        ModelUtils.writeModelToFile(model, OUTPUT_DIR + "ita_v2_result.uml"); 
    440          
     447 
    441448    } 
    442449 
  • trunk/autoquest-plugin-uml-test/src/test/resources/hl7model_v3.uml

    r1914 r1926  
    6969        </packagedElement> 
    7070        <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> 
    7274          <ownedAttribute xmi:type="uml:Property" xmi:id="_Z4koQLwTEeS8kt2gTxQkQg" name="RLUSsemantic-signifier" type="_hVXYsLwNEeS8kt2gTxQkQg"/> 
    7375        </packagedElement> 
     
    101103        </packagedElement> 
    102104        <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"> 
    104106          <ownedAttribute xmi:type="uml:Property" xmi:id="_c20sIMcWEeSYR7D_AlByKg" name="version" visibility="public"> 
    105107            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 
     
    188190          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_TUh2gMcWEeSYR7D_AlByKg" name="DESC"/> 
    189191        </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"> 
    191193          <ownedAttribute xmi:type="uml:Property" xmi:id="_y3xlYMcXEeSYR7D_AlByKg" name="document" visibility="public" type="_14bXIMcQEeSYR7D_AlByKg"> 
    192194            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_zXPIkMcXEeSYR7D_AlByKg"/> 
     
    204206          </ownedAttribute> 
    205207        </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"> 
    208210            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aBYosMcZEeSYR7D_AlByKg" value="1"/> 
    209211            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_aBZPwMcZEeSYR7D_AlByKg" value="1"/> 
     
    255257            </defaultValue> 
    256258          </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"> 
    258260            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_3k-kQMcrEeSYR7D_AlByKg"/> 
    259261            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_3lBnkMcrEeSYR7D_AlByKg" value="1"/> 
     
    263265          </ownedAttribute> 
    264266          <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"/> 
    265268            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_nxDjEMcsEeSYR7D_AlByKg"/> 
    266269            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_nxEKIMcsEeSYR7D_AlByKg" value="1"/> 
     
    306309            </defaultValue> 
    307310          </ownedAttribute> 
    308           <ownedAttribute xmi:type="uml:Property" xmi:id="_jP6_YMcaEeSYR7D_AlByKg" name="prevResultID" visibility="public"> 
     311          <ownedAttribute xmi:type="uml:Property" xmi:id="_jP6_YMcaEeSYR7D_AlByKg" name="previousResultID" visibility="public"> 
    309312            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 
    310313            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kLhsAMcaEeSYR7D_AlByKg" value="1"/> 
     
    315318          </ownedAttribute> 
    316319        </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"> 
    318321          <ownedAttribute xmi:type="uml:Property" xmi:id="_vZbu4McaEeSYR7D_AlByKg" name="document" visibility="public" type="_14bXIMcQEeSYR7D_AlByKg"> 
    319322            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wAgV8McaEeSYR7D_AlByKg"/> 
     
    363366            </defaultValue> 
    364367          </ownedAttribute> 
    365           <ownedAttribute xmi:type="uml:Property" xmi:id="_PnTkmccbEeSYR7D_AlByKg" name="prevResultID" visibility="public"> 
     368          <ownedAttribute xmi:type="uml:Property" xmi:id="_PnTkmccbEeSYR7D_AlByKg" name="previousResultID" visibility="public"> 
    366369            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 
    367370            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PnTkmscbEeSYR7D_AlByKg" value="1"/> 
     
    451454            </defaultValue> 
    452455          </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"> 
    454457            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 
    455458            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hs89gMcqEeSYR7D_AlByKg" value="1"/> 
     
    459462            </defaultValue> 
    460463          </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"> 
    462465            <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/> 
    463466            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_kIWB4McqEeSYR7D_AlByKg" value="1"/> 
     
    614617          <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_5pptkMcyEeSYR7D_AlByKg" name="Numeric"/> 
    615618        </packagedElement> 
     619        <packagedElement xmi:type="uml:DataType" xmi:id="_XENlYMvZEeSyCug81TQDwA" name="FindSemanticSignifierRequest"/> 
    616620      </packagedElement> 
    617621      <packagedElement xmi:type="uml:Package" xmi:id="__Qta4L2pEeSe48NTDZ3Xhg" name="IXS"> 
     
    12671271            </defaultValue> 
    12681272          </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> 
    14571273        </packagedElement> 
    14581274      </packagedElement> 
     
    14741290          </ownedOperation> 
    14751291          <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"/> 
    14771293            <ownedParameter xmi:type="uml:Parameter" xmi:id="_TUbbQLwSEeS8kt2gTxQkQg" name="response" type="_5OOj4LwQEeS8kt2gTxQkQg" direction="return"/> 
    14781294          </ownedOperation> 
     
    15081324        <packagedElement xmi:type="uml:Component" xmi:id="_CrcpgKC4EeSR_swKuhjZ_A" clientDependency="_DQbpILEPEeSPMcTTAQ1qKQ" name="RLUSMetaDataPortType"/> 
    15091325        <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"> 
    15111327          <ownedAttribute xmi:type="uml:Property" xmi:id="_Heb2YKDDEeSR_swKuhjZ_A" name="rlusService" visibility="public" type="_Aow1gKC3EeSR_swKuhjZ_A"> 
    15121328            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_LoBh8KDDEeSR_swKuhjZ_A" value="1"/> 
     
    15331349            </end> 
    15341350          </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"/> 
    15541351        </packagedElement> 
    15551352        <packagedElement xmi:type="uml:Component" xmi:id="_JyRr0KDEEeSR_swKuhjZ_A" name="RLUSEnvironment"> 
     
    15941391        <packagedElement xmi:type="uml:Component" xmi:id="_XvSrQLEVEeSPMcTTAQ1qKQ" clientDependency="_cK23oLEVEeSPMcTTAQ1qKQ" name="RLUSRLPNotesMQPortType"/> 
    15951392        <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"> 
    15971394          <ownedAttribute xmi:type="uml:Property" xmi:id="_Y1zcwMfREeSYR7D_AlByKg" name="rlusService" visibility="public" type="_Aow1gKC3EeSR_swKuhjZ_A"> 
    15981395            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_aAcq8MfREeSYR7D_AlByKg" value="1"/> 
     
    16131410            </end> 
    16141411          </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"/> 
    16481412        </packagedElement> 
    16491413      </packagedElement> 
     
    17001464            </end> 
    17011465          </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"/> 
    17211466        </packagedElement> 
    17221467        <packagedElement xmi:type="uml:Component" xmi:id="_rCusUMDjEeSlO4e8QG-B1g" name="IXSTestEnvironment"> 
     
    17721517        <packagedElement xmi:type="uml:Component" xmi:id="_0AKlcMdGEeSYR7D_AlByKg" clientDependency="_6cGHEMdGEeSYR7D_AlByKg" name="IXSPOCDPatientPortType"/> 
    17731518        <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"> 
    17751520          <ownedAttribute xmi:type="uml:Property" xmi:id="_Dw-GIMfTEeSYR7D_AlByKg" name="ixsService" visibility="public" type="_DjK-QMDOEeSlO4e8QG-B1g"> 
    17761521            <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_E2j1MMfTEeSYR7D_AlByKg" value="1"/> 
     
    17911536            </end> 
    17921537          </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"/> 
    18261538        </packagedElement> 
    18271539      </packagedElement> 
     
    18501562  <utp:SUT xmi:id="_kqUhwKDDEeSR_swKuhjZ_A" base_Property="_Heb2YKDDEeSR_swKuhjZ_A"/> 
    18511563  <utp:TestComponent xmi:id="_pKr5IKDEEeSR_swKuhjZ_A" base_StructuredClassifier="_JyRr0KDEEeSR_swKuhjZ_A"/> 
    1852   <utp:TestCase xmi:id="_aaC9kLzXEeSu8bCjKN8_hw" base_Operation="_R78v4LzXEeSu8bCjKN8_hw"/> 
    18531564  <utp:TestContext xmi:id="_m_364MDjEeSlO4e8QG-B1g" base_BehavioredClassifier="_awaUYMDjEeSlO4e8QG-B1g" base_StructuredClassifier="_awaUYMDjEeSlO4e8QG-B1g"/> 
    18541565  <utp:TestComponent xmi:id="_vLsFwMDjEeSlO4e8QG-B1g" base_StructuredClassifier="_rCusUMDjEeSlO4e8QG-B1g"/> 
    18551566  <utp:SUT xmi:id="_K06PEMDlEeSlO4e8QG-B1g" base_Property="_5o09kMDkEeSlO4e8QG-B1g"/> 
    1856   <utp:TestCase xmi:id="_qo_KEMD4EeSlO4e8QG-B1g" base_Operation="_lPfV0MD4EeSlO4e8QG-B1g"/> 
    18571567  <utp:TestContext xmi:id="_JnER4MdGEeSYR7D_AlByKg" base_BehavioredClassifier="_Db-BkMdGEeSYR7D_AlByKg" base_StructuredClassifier="_Db-BkMdGEeSYR7D_AlByKg"/> 
    18581568  <utp:TestContext xmi:id="_XlOZYMdHEeSYR7D_AlByKg" base_BehavioredClassifier="_Nc3pUMdHEeSYR7D_AlByKg" base_StructuredClassifier="_Nc3pUMdHEeSYR7D_AlByKg"/> 
    18591569  <utp:SUT xmi:id="_KMWqoMfSEeSYR7D_AlByKg" base_Property="_Y1zcwMfREeSYR7D_AlByKg"/> 
    18601570  <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"/> 
    18631571</xmi:XMI> 
  • trunk/autoquest-plugin-uml-test/src/test/resources/ita_model_v2.uml

    r1908 r1926  
    170170        </end> 
    171171      </ownedConnector> 
    172       <ownedOperation xmi:type="uml:Operation" xmi:id="_k-fb8LHPEeS0dumc9hw2vw" name="functional_TestCase1"/> 
    173172    </packagedElement> 
    174173    <packagedElement xmi:type="uml:Component" xmi:id="_hwwbELETEeSnYZTmeJXZKg" name="Logistics_Environment"> 
     
    220219        <subvertex xmi:type="uml:State" xmi:id="_FwmnMMcFEeSZe4KIZH8Y5w" name="StatePickUpDropOffConfirmed"/> 
    221220      </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"/> 
    238221    </packagedElement> 
    239222    <packagedElement xmi:type="uml:Actor" xmi:id="_jPjZ8MGeEeSgpOzAzVFJPA" name="MaterialSupplier"/> 
     
    536519  <utp:SUT xmi:id="_LBHaYLETEeSnYZTmeJXZKg" base_Property="_HczmILETEeSnYZTmeJXZKg"/> 
    537520  <utp:TestComponent xmi:id="_-93ZALEUEeSnYZTmeJXZKg" base_StructuredClassifier="_hwwbELETEeSnYZTmeJXZKg"/> 
    538   <utp:TestCase xmi:id="_qXb2kLHPEeS0dumc9hw2vw" base_Operation="_k-fb8LHPEeS0dumc9hw2vw"/> 
    539521</xmi:XMI> 
  • trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java

    r1916 r1926  
    1515package de.ugoe.cs.autoquest.plugin.uml; 
    1616 
     17import java.io.StringWriter; 
     18import java.util.ArrayList; 
    1719import java.util.Collection; 
    1820import java.util.Collections; 
     
    3032import java.util.TreeSet; 
    3133 
     34import javax.xml.transform.Transformer; 
     35import javax.xml.transform.TransformerException; 
     36import javax.xml.transform.TransformerFactory; 
     37import javax.xml.transform.TransformerFactoryConfigurationError; 
     38import javax.xml.transform.dom.DOMSource; 
     39import javax.xml.transform.stream.StreamResult; 
     40 
    3241import org.eclipse.emf.common.util.EList; 
     42import org.eclipse.emf.common.util.URI; 
    3343import org.eclipse.uml2.uml.Activity; 
    3444import org.eclipse.uml2.uml.ActivityEdge; 
    3545import org.eclipse.uml2.uml.ActivityNode; 
    3646import org.eclipse.uml2.uml.CallConcurrencyKind; 
     47import org.eclipse.uml2.uml.CallEvent; 
    3748import org.eclipse.uml2.uml.CallOperationAction; 
    3849import org.eclipse.uml2.uml.Comment; 
     
    6677import org.eclipse.uml2.uml.Property; 
    6778import org.eclipse.uml2.uml.Region; 
     79import org.eclipse.uml2.uml.Relationship; 
    6880import org.eclipse.uml2.uml.Slot; 
    6981import org.eclipse.uml2.uml.StateMachine; 
    7082import org.eclipse.uml2.uml.Stereotype; 
    7183import org.eclipse.uml2.uml.Transition; 
     84import org.eclipse.uml2.uml.Trigger; 
     85import org.eclipse.uml2.uml.Type; 
    7286import org.eclipse.uml2.uml.UMLPackage; 
    7387import org.eclipse.uml2.uml.Vertex; 
     88import org.w3c.dom.Attr; 
     89import org.w3c.dom.Node; 
     90import org.w3c.dom.NodeList; 
    7491 
    7592import de.ugoe.cs.autoquest.eventcore.Event; 
     93import de.ugoe.cs.autoquest.plugin.http.SOAPUtils; 
    7694import de.ugoe.cs.autoquest.plugin.http.eventcore.SOAPEventType; 
    7795import de.ugoe.cs.autoquest.plugin.http.eventcore.SimpleSOAPEventType; 
    7896import de.ugoe.cs.autoquest.plugin.uml.eventcore.UMLTransitionType; 
    7997import de.ugoe.cs.autoquest.usageprofiles.IStochasticProcess; 
     98import de.ugoe.cs.util.StringTools; 
    8099import de.ugoe.cs.util.console.Console; 
    81100 
     
    88107 */ 
    89108public 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); 
    90117 
    91118    /** 
     
    135162        for (List<Event> sequence : sequences) { 
    136163            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) { 
    140167                    Set<String> curCalledMethods = calledMethods.get(serviceName); 
    141168                    if (curCalledMethods == null) { 
     
    152179        for (Entry<String, Set<String>> entry : calledMethods.entrySet()) { 
    153180            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); 
    156183            } 
    157184        } 
     
    204231                                    "\tFound the following realized interfaces for the service \"" + 
    205232                                        serviceName + "\": "); 
    206                     for( Interface intface : interfaces ) { 
     233                    for (Interface intface : interfaces) { 
    207234                        Console.traceln(Level.INFO, "\t" + intface.getName()); 
    208                         for( Operation operation : intface.getAllOperations() ) { 
     235                        for (Operation operation : intface.getAllOperations()) { 
    209236                            Console.traceln(Level.INFO, "\t\t" + operation.getName()); 
    210237                        } 
     
    235262     * <p> 
    236263     * 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 state 
    238      * machine. 
     264     * sequence of events with the {@link SOAPEventType} or {@link SimpleSOAPEventType}, by matching 
     265     * the sequences to a state machine. 
    239266     * </p> 
    240267     *  
     
    248275                                                          StateMachine stateMachine) 
    249276    { 
     277        System.out.println("foo"); 
    250278        List<List<Transition>> matchingSequences = 
    251279            determineMatchingTransitionSequences(sequence, stateMachine); 
     280        System.out.println(matchingSequences.size()); 
    252281 
    253282        if (matchingSequences.size() != 1) { 
     
    370399        for (Iterator<Event> eventIterator = sequence.iterator(); eventIterator.hasNext();) { 
    371400            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; 
    410412            } 
    411413            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; 
    415437            } 
    416438        } 
     
    444466        final Stereotype utpTestContext = (Stereotype) utpProfile.getOwnedMember("TestContext"); 
    445467 
     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 
    446473        Component testContext = fetchTestContext(model, utpTestContext, testContextName); 
    447474        if (testContext == null) { 
     
    485512        for (Event event : sequence) { 
    486513            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 + "_"; 
    490518                // determine lifelines 
    491519                Lifeline msgTargetLifeline; 
    492520                Lifeline msgSourceLifeline; 
    493                  
     521 
    494522                msgSourceLifeline = interaction.getLifeline(clientName); 
    495523                msgTargetLifeline = interaction.getLifeline(serviceName); 
    496                  
     524 
    497525                if (msgSourceLifeline == null) { 
    498526                    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); 
    500529                } 
    501530                if (msgTargetLifeline == null) { 
    502531                    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); 
    504534                } 
    505535                // determine correct target interface 
     
    541571                // setup for both SYNCH and ASYNCH calls 
    542572                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); 
    546575                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); 
    550578 
    551579                callSendFragment.setCovered(msgSourceLifeline); 
     
    554582                // create call 
    555583                Message callMessage = interaction.createMessage(methodName); 
    556                 callMessage.setSignature(calledOperation);  
    557                 setMessageParameters(callMessage, calledOperation, event); 
     584                callMessage.setSignature(calledOperation); 
     585                setMessageParameters(callMessage, calledOperation, event, prefix); 
    558586                callMessage.setConnector(inferConnector(msgSourceLifeline, msgTargetLifeline)); 
    559587                callMessage.setSendEvent(callSendFragment); 
     
    577605                    MessageOccurrenceSpecification replySendFragment = 
    578606                        (MessageOccurrenceSpecification) interaction 
    579                             .createFragment(i + ":" + methodName + "_replySendFragment", 
     607                            .createFragment(prefix + "replySendFragment", 
    580608                                            UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 
    581609                    MessageOccurrenceSpecification replyRecvFragment = 
    582610                        (MessageOccurrenceSpecification) interaction 
    583                             .createFragment(i + ":" + methodName + "_replyRecvFragment", 
     611                            .createFragment(prefix + "replyRecvFragment", 
    584612                                            UMLPackage.Literals.MESSAGE_OCCURRENCE_SPECIFICATION); 
    585613 
     
    618646    } 
    619647 
    620      
    621  
    622648    /** 
    623649     * <p> 
     
    653679                            .getName(); 
    654680                } 
    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 
    656686            } 
    657687        } 
     
    755785        } 
    756786        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 event 
    765      *            event for which the service name is retrieved 
    766      * @return service name 
    767      */ 
    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 event 
    786      * </p> 
    787      *  
    788      * @param event 
    789      *            event for which the called method is retrieved 
    790      * @return called method 
    791      */ 
    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 event 
    812      *            event for which the client name is retrieved 
    813      * @return service name 
    814      */ 
    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         } 
    827787    } 
    828788 
     
    864824     * @return matching transitions 
    865825     */ 
    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 
    869833        List<Transition> matching = new LinkedList<>(); 
    870834        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 
    876860        } 
    877861        return matching; 
     
    970954        return null; 
    971955    } 
    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 
    974986        // 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 { 
    10041015                // set literalNull for out and return parameters 
    10051016                argument.createOperand(null, param.getType(), UMLPackage.Literals.LITERAL_NULL); 
     
    10071018        } 
    10081019    } 
    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); 
    10111031        String pkgUBTInstSpecs = "UBT_InstanceSpecifications"; 
    10121032        Model model = type.getModel(); 
    10131033        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); 
    10181040        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); 
    10241050        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) { 
    10301157            Slot slot = instSpec.createSlot(); 
    10311158            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 { 
    10471200                    value.setValue(3.14); // TODO needs to be real value 
    10481201                } 
    10491202            } 
    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 
    10571284} 
Note: See TracChangeset for help on using the changeset viewer.