Index: trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SOAPEventType.java
===================================================================
--- trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SOAPEventType.java	(revision 1988)
+++ trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SOAPEventType.java	(revision 1993)
@@ -270,4 +270,16 @@
         }
     }
+    
+    /**
+     * @return the body of the soapResponse
+     */
+    public Element getSoapResponseBody() {
+        try {
+            return soapResponse.getSOAPBody();
+        }
+        catch (SOAPException e) {
+            return null;
+        }
+    }
 
     /* (non-Javadoc)
Index: trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SimpleSOAPEventType.java
===================================================================
--- trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SimpleSOAPEventType.java	(revision 1988)
+++ trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SimpleSOAPEventType.java	(revision 1993)
@@ -38,4 +38,15 @@
 public class SimpleSOAPEventType implements IEventType {
 
+    /**
+     * <p>
+     * Defines if this event represents an request or an response.
+     * </p>
+     * 
+     * @author Steffen Herbold
+     */
+    public enum CallType {
+        REQUEST, RESPONSE
+    }
+
     /**  */
     private static final long serialVersionUID = 1L;
@@ -65,13 +76,20 @@
     /**
      * <p>
-     * the body of the SOAP request; storage as serialized XML string to allow object serialization
-     * </p>
-     */
-    private final String soapRequestBody;
-    
-    /**
-     * TODO
-     */
-    private final EqualSOAPDataMap equalRequestsMap;
+     * the body of the SOAP message; storage as serialized XML string to allow object serialization
+     * </p>
+     */
+    private final String soapMsgBody;
+
+    /**
+     * <p>
+     * defines whether this event represents a request or a response
+     * </p>
+     */
+    private final CallType callType;
+
+    /**
+     * reference to the {@link EqualSOAPDataMap} associated with the sequence this event belongs to.
+     */
+    private final EqualSOAPDataMap equalBodyMap;
 
     /**
@@ -84,12 +102,12 @@
                                String serviceName,
                                String clientName,
-                               Element soapRequestBody)
+                               Element soapMsgBody)
     {
-        this(calledMethod, serviceName, clientName, soapRequestBody, null);
-    }
-    
-    /**
-     * <p>
-     * Constructor. Creates a new SimpleSOAPEventType with a EqualSOAPDATAMap. 
+        this(calledMethod, serviceName, clientName, soapMsgBody, null, CallType.REQUEST);
+    }
+
+    /**
+     * <p>
+     * Constructor. Creates a new SimpleSOAPEventType with a EqualSOAPDATAMap.
      * </p>
      * 
@@ -98,6 +116,23 @@
                                String serviceName,
                                String clientName,
-                               Element soapRequestBody,
+                               Element soapMsgBody,
                                EqualSOAPDataMap equalRequestsMap)
+    {
+        this(calledMethod, serviceName, clientName, soapMsgBody, equalRequestsMap,
+             CallType.REQUEST);
+    }
+
+    /**
+     * <p>
+     * Constructor. Creates a new SimpleSOAPEventType with a EqualSOAPDATAMap.
+     * </p>
+     * 
+     */
+    public SimpleSOAPEventType(String calledMethod,
+                               String serviceName,
+                               String clientName,
+                               Element soapMsgBody,
+                               EqualSOAPDataMap equalRequestsMap,
+                               CallType callType)
     {
         if (calledMethod == null) {
@@ -113,8 +148,12 @@
         this.serviceName = serviceName;
         this.clientName = clientName;
-        this.soapRequestBody = SOAPUtils.getSerialization(soapRequestBody);
-        this.equalRequestsMap = equalRequestsMap;
-        if( equalRequestsMap!=null ) {
-            equalRequestsMap.add(this, this.soapRequestBody);
+        this.equalBodyMap = equalRequestsMap;
+        this.soapMsgBody = SOAPUtils.getSerialization(soapMsgBody);
+        this.callType = callType;
+
+        // this must be the last part of the constructor and only be called after all variables are
+        // initialized
+        if (equalRequestsMap != null) {
+            equalRequestsMap.add(this, this.soapMsgBody);
         }
     }
@@ -161,24 +200,37 @@
      * @return body of the SOAP request
      */
-    public Element getSoapRequestBody() {
-        return createDOMElement(soapRequestBody);
-    }
-    
-    /**
-     * <p>
-     * returns a randomly draw request body for the called method using {@link EqualSOAPDataMap#getRandom(SimpleSOAPEventType)}
-     * </p>
-     *
+    public Element getSoapMsgBody() {
+        return createDOMElement(soapMsgBody);
+    }
+
+    /**
+     * <p>
+     * returns a randomly draw request body for the called method using
+     * {@link EqualSOAPDataMap#getRandom(SimpleSOAPEventType)}
+     * </p>
+     * 
      * @return randomly drawn body of the SOAP request
      */
-    public Element getRandomSoapRequestBody() {
-        if( equalRequestsMap==null ) {
-            throw new RuntimeException("cannot use random mode is no request map is available; different data missing");
-        }
-        return createDOMElement(equalRequestsMap.getRandom(this));
-    }
-    
+    public Element getRandomSoapMsgBody() {
+        if (equalBodyMap == null) {
+            throw new RuntimeException(
+                                       "cannot use random mode is no request map is available; different data missing");
+        }
+        return createDOMElement(equalBodyMap.getRandom(this));
+    }
+
+    /**
+     * <p>
+     * returns the {@link EqualSOAPDataMap} associated with this event
+     * </p>
+     * 
+     * @return the {@link EqualSOAPDataMap}
+     */
     public EqualSOAPDataMap getEqualSOAPDataMap() {
-        return equalRequestsMap;
+        return equalBodyMap;
+    }
+
+    public CallType getCallType() {
+        return callType;
     }
 
@@ -190,5 +242,5 @@
     @Override
     public String getName() {
-        return "(" + serviceName + ", " + calledMethod + ")";
+        return "(" + callType + ":" + clientName + "->" + serviceName + ", " + calledMethod + ")";
     }
 
@@ -204,5 +256,6 @@
         }
         else if (obj instanceof SimpleSOAPEventType) {
-            return HTTPUtils.equals(calledMethod, ((SimpleSOAPEventType) obj).calledMethod) &&
+            return callType.equals(((SimpleSOAPEventType) obj).callType) &&
+                HTTPUtils.equals(calledMethod, ((SimpleSOAPEventType) obj).calledMethod) &&
                 HTTPUtils.equals(serviceName, ((SimpleSOAPEventType) obj).serviceName) &&
                 HTTPUtils.equals(clientName, ((SimpleSOAPEventType) obj).clientName);
@@ -220,6 +273,6 @@
     @Override
     public int hashCode() {
-        int hashCode = calledMethod.hashCode() + serviceName.hashCode() + clientName.hashCode();
-        return hashCode;
+        return callType.hashCode() + calledMethod.hashCode() + serviceName.hashCode() +
+            clientName.hashCode();
     }
 
@@ -231,5 +284,5 @@
     @Override
     public String toString() {
-        return "SimpleSOAPEventType(" + serviceName + ", " + calledMethod + ")";
+        return "SimpleSOAPEventType" + getName();
     }
 
@@ -243,19 +296,3 @@
         }
     }
-//
-//    /**
-//     * <p>
-//     * Determines how getSoapRequestBody works.
-//     * <ul>
-//     * <li>LOCALEVENT: returns the request body of the event type itself</li>
-//     * <li>RANDOM: returns a randomly draw request body for the called method using
-//     * {@link EqualSOAPDataMap#getRandom(SimpleSOAPEventType)}.
-//     * </ul>
-//     * </p>
-//     * 
-//     * @author Steffen Herbold
-//     */
-//    public static enum RequestBodyMode {
-//        LOCALEVENT, RANDOM
-//    }
 }
