You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sc...@apache.org on 2011/01/13 21:54:22 UTC

svn commit: r1058748 - in /tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding: Mediator.java impl/MediatorImpl.java impl/TransformationContextImpl.java

Author: scottkurz
Date: Thu Jan 13 20:54:22 2011
New Revision: 1058748

URL: http://svn.apache.org/viewvc?rev=1058748&view=rev
Log:
Add context via MediatorImpl so a transformer can know whether a transform is for input/output/fault.

Modified:
    tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java
    tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java
    tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java

Modified: tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java?rev=1058748&r1=1058747&r2=1058748&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/Mediator.java Thu Jan 13 20:54:22 2011
@@ -33,6 +33,17 @@ import org.apache.tuscany.sca.interfaced
  */
 public interface Mediator {
 
+	// Constants used by the databinding framework's TransformationContext metadata
+    public final static String SOURCE_OPERATION = "source.operation";
+    public final static String TARGET_OPERATION = "target.operation";
+
+    // Use String constants rather than an enum, in case the dependency isn't factored 
+    // out well enough and someone needs to use the String values. 
+    public static final String BODY_TYPE = "body.type";
+    public static final String BODY_TYPE_INPUT = "input";
+    public static final String BODY_TYPE_OUTPUT = "output";
+    public static final String BODY_TYPE_FAULT = "fault";
+    
     /**
      * Mediate the data from the source type to the target type
      * @param source The data to be mediated
@@ -201,4 +212,5 @@ public interface Mediator {
     TransformationContext createTransformationContext(DataType sourceDataType,
                                                       DataType targetDataType,
                                                       Map<String, Object> metadata);
+    
 }

Modified: tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java?rev=1058748&r1=1058747&r2=1058748&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/MediatorImpl.java Thu Jan 13 20:54:22 2011
@@ -64,8 +64,7 @@ import org.oasisopen.sca.ServiceRuntimeE
  * @tuscany.spi.extension.asclient
  */
 public class MediatorImpl implements Mediator {
-    private static final String TARGET_OPERATION = "target.operation";
-    private static final String SOURCE_OPERATION = "source.operation";
+
     private ExtensionPointRegistry registry;
     private DataBindingExtensionPoint dataBindings;
     private TransformerExtensionPoint transformers;
@@ -327,6 +326,10 @@ public class MediatorImpl implements Med
         if (sourceOperation != null) {
             context.put(TARGET_OPERATION, sourceOperation);
         }
+        if (context.get(BODY_TYPE) == null) {
+        	context.put(BODY_TYPE, BODY_TYPE_FAULT);
+        }
+
 
         Object newResult =
             transformException(result, targetDataType, sourceDataType, targetFaultType, sourceFaultType, context);
@@ -403,6 +406,10 @@ public class MediatorImpl implements Med
         if (sourceOperation != null) {
             context.put(TARGET_OPERATION, sourceOperation);
         }
+        if (context.get(BODY_TYPE) == null) {
+        	context.put(BODY_TYPE, BODY_TYPE_OUTPUT);
+        }
+
         return mediate(output, targetType, sourceType, context);
     }
 
@@ -429,6 +436,10 @@ public class MediatorImpl implements Med
         if (targetOperation != null) {
             context.put(TARGET_OPERATION, targetOperation);
         }
+        if (context.get(BODY_TYPE) == null) {
+        	context.put(BODY_TYPE, BODY_TYPE_INPUT);
+        }
+        
         return mediate(input, sourceType, targetType, context);
     }
 

Modified: tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java?rev=1058748&r1=1058747&r2=1058748&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/TransformationContextImpl.java Thu Jan 13 20:54:22 2011
@@ -21,14 +21,13 @@ package org.apache.tuscany.sca.databindi
 import java.util.HashMap;
 import java.util.Map;
 
+import static org.apache.tuscany.sca.databinding.Mediator.SOURCE_OPERATION;
+import static org.apache.tuscany.sca.databinding.Mediator.TARGET_OPERATION;
 import org.apache.tuscany.sca.databinding.TransformationContext;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Operation;
 
 public class TransformationContextImpl implements TransformationContext {
-    private static final String SOURCE_OPERATION = "source.operation";
-
-    private static final String TARGET_OPERATION = "target.operation";
 
     private DataType sourceDataType;