Ignore:
Timestamp:
07/09/15 16:03:41 (9 years ago)
Author:
sherbold
Message:
  • minor fix: now all instance specifications should have a unique name
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-plugin-uml/src/main/java/de/ugoe/cs/autoquest/plugin/uml/UMLUtils.java

    r1999 r2000  
    3030import java.util.logging.Level; 
    3131 
     32import org.apache.commons.lang.mutable.MutableInt; 
    3233import org.eclipse.emf.common.util.EList; 
    3334import org.eclipse.uml2.uml.Activity; 
     
    5960import org.eclipse.uml2.uml.MessageSort; 
    6061import org.eclipse.uml2.uml.Model; 
    61 import org.eclipse.uml2.uml.NamedElement; 
    6262import org.eclipse.uml2.uml.Operation; 
    6363import org.eclipse.uml2.uml.Package; 
     
    561561                    callMessage.setSignature(calledOperation); 
    562562                    setMessageParameters(callMessage, calledOperation, event, 
    563                                              useRandomRequestBodies, prefix); 
     563                                         useRandomRequestBodies, prefix); 
    564564                    callMessage.setConnector(connector); 
    565565                    callMessage.setSendEvent(callSendFragment); 
     
    611611                    replyMessage.setMessageSort(MessageSort.REPLY_LITERAL); 
    612612                    replyMessage.setSignature(calledOperation); 
    613                     //setReplyMessageParameters(replyMessage, calledOperation); 
    614                     setMessageParameters(replyMessage, calledOperation, event, useRandomRequestBodies, prefix); 
     613                    // setReplyMessageParameters(replyMessage, calledOperation); 
     614                    setMessageParameters(replyMessage, calledOperation, event, 
     615                                         useRandomRequestBodies, prefix); 
    615616                    replyMessage.setConnector(connector); 
    616617                    replyMessage.setSendEvent(replySendFragment); 
     
    649650                Message message = 
    650651                    ((MessageOccurrenceSpecification) interactionFragment).getMessage(); 
    651                 //if (message.getReceiveEvent().equals(interactionFragment) && isCallMessage(message)) 
    652                 if (message.getReceiveEvent().equals(interactionFragment)) 
    653                 { 
     652                // if (message.getReceiveEvent().equals(interactionFragment) && 
     653                // isCallMessage(message)) 
     654                if (message.getReceiveEvent().equals(interactionFragment)) { 
    654655                    String clientName; 
    655656                    String serviceName; 
    656657                    String methodName = message.getSignature().getName(); 
    657658                    CallType callType; 
    658                     if( isCallMessage(message) ) { 
     659                    if (isCallMessage(message)) { 
    659660                        clientName = 
    660                                 ((MessageOccurrenceSpecification) message.getSendEvent()).getCovereds() 
    661                                     .get(0).getName(); 
     661                            ((MessageOccurrenceSpecification) message.getSendEvent()).getCovereds() 
     662                                .get(0).getName(); 
    662663                        serviceName = 
    663                                 ((MessageOccurrenceSpecification) message.getReceiveEvent()).getCovereds() 
    664                                     .get(0).getName(); 
     664                            ((MessageOccurrenceSpecification) message.getReceiveEvent()) 
     665                                .getCovereds().get(0).getName(); 
    665666                        callType = CallType.REQUEST; 
    666                     } else { 
     667                    } 
     668                    else { 
    667669                        clientName = 
    668                                 ((MessageOccurrenceSpecification) message.getReceiveEvent()).getCovereds() 
    669                                     .get(0).getName(); 
     670                            ((MessageOccurrenceSpecification) message.getReceiveEvent()) 
     671                                .getCovereds().get(0).getName(); 
    670672                        serviceName = 
    671                                 ((MessageOccurrenceSpecification) message.getSendEvent()).getCovereds() 
    672                                     .get(0).getName(); 
     673                            ((MessageOccurrenceSpecification) message.getSendEvent()).getCovereds() 
     674                                .get(0).getName(); 
    673675                        callType = CallType.RESPONSE; 
    674676                    } 
    675677                    eventSequence.add(new Event(new SimpleSOAPEventType(methodName, serviceName, 
    676                                                                         clientName, null, null, callType))); 
     678                                                                        clientName, null, null, 
     679                                                                        callType))); 
    677680                } 
    678681            } 
     
    10631066     */ 
    10641067    private static void setMessageParameters(Message message, 
    1065                                                  Operation calledOperation, 
    1066                                                  Event event, 
    1067                                                  boolean useRandomMsgBodies, 
    1068                                                  String prefix) 
     1068                                             Operation calledOperation, 
     1069                                             Event event, 
     1070                                             boolean useRandomMsgBodies, 
     1071                                             String prefix) 
    10691072    { 
    10701073        org.w3c.dom.Element requestBody; 
    1071         if(SOAPUtils.isSOAPRequest(event)) { 
     1074        if (SOAPUtils.isSOAPRequest(event)) { 
    10721075            requestBody = 
    10731076                SOAPUtils.getSoapBodyFromEvent(event, useRandomMsgBodies, CallType.REQUEST); 
    1074         } else { 
     1077        } 
     1078        else { 
    10751079            requestBody = 
    10761080                SOAPUtils.getSoapBodyFromEvent(event, useRandomMsgBodies, CallType.RESPONSE); 
    10771081        } 
    10781082        Package instSpecPkg = null; 
     1083        MutableInt instSpecNumber = new MutableInt(0); 
    10791084 
    10801085        // FOR DEBUGGING 
     
    11081113        for (Parameter param : calledOperation.getOwnedParameters()) { 
    11091114            if (instSpecPkg == null) { 
    1110                 instSpecPkg = 
    1111                     getOrCreateInstanceSpecificationPackage(message.getModel(), event); 
     1115                instSpecPkg = getOrCreateInstanceSpecificationPackage(message.getModel(), event); 
    11121116            } 
    11131117 
     
    11181122            // (Expression) callMessage.createArgument(param.getName(), param.getType(), 
    11191123            // UMLPackage.Literals.EXPRESSION); 
    1120             if ( (isInParameter(param) && SOAPUtils.isSOAPRequest(event)) || 
    1121                  (isOutParameter(param) && SOAPUtils.isSOAPResponse(event))) { 
     1124            if ((isInParameter(param) && SOAPUtils.isSOAPRequest(event)) || 
     1125                (isOutParameter(param) && SOAPUtils.isSOAPResponse(event))) 
     1126            { 
    11221127 
    11231128                // create parameters node 
     
    11271132                DataType parametersNode = (DataType) param.getType(); 
    11281133                InstanceSpecification instSpecParameters = 
    1129                     (InstanceSpecification) instSpecPkg.createPackagedElement(prefix + "instspec_" + 
     1134                    (InstanceSpecification) instSpecPkg.createPackagedElement(prefix + "instspec" + instSpecNumber.intValue() + "_" + 
    11301135                        param.getType().getName(), UMLPackage.Literals.INSTANCE_SPECIFICATION); 
    11311136                instSpecParameters.getClassifiers().add((DataType) param.getType()); 
     1137                instSpecNumber.setValue(instSpecNumber.intValue()+1); 
    11321138                // InstanceValue parametersValue = 
    11331139                // (InstanceValue) argument 
     
    11371143                InstanceValue instanceValue = 
    11381144                    (InstanceValue) message.createArgument(param.getName(), param.getType(), 
    1139                                                                UMLPackage.Literals.INSTANCE_VALUE); 
     1145                                                           UMLPackage.Literals.INSTANCE_VALUE); 
    11401146                instanceValue.setInstance(instSpecParameters); 
    11411147 
     
    11781184                                .setInstance(createInstanceSpecification((DataType) internalParameter 
    11791185                                                                             .getType(), 
    1180                                                                          instSpecPkg, prefix, 
     1186                                                                         instSpecPkg, prefix, instSpecNumber,  
    11811187                                                                         paramNode, path)); 
    11821188                            /* 
     
    11971203                // argument.createOperand(null, param.getType(), UMLPackage.Literals.LITERAL_NULL); 
    11981204                message.createArgument(param.getName(), param.getType(), 
    1199                                            UMLPackage.Literals.LITERAL_NULL); 
     1205                                       UMLPackage.Literals.LITERAL_NULL); 
    12001206            } 
    12011207        } 
     
    12251231                                                                     Package pkg, 
    12261232                                                                     String prefix, 
     1233                                                                     MutableInt instSpecNumber, 
    12271234                                                                     org.w3c.dom.Element currentNode, 
    12281235                                                                     String path) 
     
    12341241        InstanceSpecification instSpec = 
    12351242            (InstanceSpecification) pkg 
    1236                 .createPackagedElement(prefix + "instspec_" + type.getName(), 
     1243                .createPackagedElement(prefix + "instspec" + instSpecNumber.intValue() + "_" + type.getName(), 
    12371244                                       UMLPackage.Literals.INSTANCE_SPECIFICATION); 
    12381245        instSpec.getClassifiers().add(type); 
     1246        instSpecNumber.setValue(instSpecNumber.intValue()+1); 
    12391247        for (Property prop : type.getAllAttributes()) { 
    12401248            if (prop.getType() instanceof PrimitiveType) { 
     
    12771285                                                         UMLPackage.Literals.INSTANCE_VALUE); 
    12781286                    value.setInstance(createInstanceSpecification((DataType) prop.getType(), pkg, 
    1279                                                                   prefix, attributeNode, path + 
     1287                                                                  prefix, instSpecNumber, attributeNode, path + 
    12801288                                                                      "." + prop.getName())); 
    12811289                } 
     
    15181526            LiteralNull argument = 
    15191527                (LiteralNull) replyMessage.createArgument(param.getName(), param.getType(), 
    1520                                                          UMLPackage.Literals.LITERAL_NULL); 
    1521              
     1528                                                          UMLPackage.Literals.LITERAL_NULL); 
     1529 
    15221530            if (isOutParameter(param)) { 
    15231531                argument.applyStereotype(UTPUtils.getLiteralAnyStereotype(replyMessage.getModel())); 
Note: See TracChangeset for help on using the changeset viewer.