From 699653d2ae2df1cec6af2915c90a6a7137a1c077 Mon Sep 17 00:00:00 2001 From: slaws Date: Tue, 13 Dec 2011 14:12:38 +0000 Subject: TUSCANY-3890 - separate the request wrapper model from the response wrapper model as per the change in 1.x under TUSCANY-2931. git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1213702 13f79535-47bb-0310-9956-ffa450edef68 --- .../sca/databinding/util/DataTypeHelper.java | 10 +++--- .../util/OperationDataBindingHelper.java | 6 +++- .../sca/databinding/xml/DOMWrapperHandler.java | 39 ++++++++++++++-------- 3 files changed, 37 insertions(+), 18 deletions(-) (limited to 'sca-java-2.x/trunk/modules/databinding/src/main/java/org') diff --git a/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/DataTypeHelper.java b/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/DataTypeHelper.java index 847fcf226c..8a0789c673 100644 --- a/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/DataTypeHelper.java +++ b/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/DataTypeHelper.java @@ -132,13 +132,15 @@ public final class DataTypeHelper { } private static void getDataTypes(List dataTypes, Operation op, boolean useWrapper) { - WrapperInfo wrapper = op.getWrapper(); - if (useWrapper && wrapper != null) { - DataType dt1 = wrapper.getInputWrapperType(); + WrapperInfo inputWrapper = op.getInputWrapper(); + WrapperInfo outputWrapper = op.getOutputWrapper(); + + if (useWrapper && (inputWrapper != null) && (outputWrapper != null)) { + DataType dt1 = inputWrapper.getWrapperType(); if (dt1 != null) { dataTypes.add(dt1); } - DataType dt2 = wrapper.getOutputWrapperType(); + DataType dt2 = outputWrapper.getWrapperType(); if (dt2 != null) { dataTypes.add(dt2); } diff --git a/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/OperationDataBindingHelper.java b/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/OperationDataBindingHelper.java index 56c32ef2b6..8ecd0ffb7f 100644 --- a/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/OperationDataBindingHelper.java +++ b/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/util/OperationDataBindingHelper.java @@ -55,10 +55,14 @@ public class OperationDataBindingHelper { return false; } - if (source.isWrapperStyle() != target.isWrapperStyle()) { + if (source.isInputWrapperStyle() != target.isInputWrapperStyle()) { return true; } + if (source.isOutputWrapperStyle() != target.isOutputWrapperStyle()) { + return true; + } + // Check output type List sourceOutputType = source.getOutputType().getLogical(); List targetOutputType = target.getOutputType().getLogical(); diff --git a/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java b/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java index abeeae47a6..6736888b0e 100644 --- a/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java +++ b/sca-java-2.x/trunk/modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/xml/DOMWrapperHandler.java @@ -47,10 +47,11 @@ public class DOMWrapperHandler implements WrapperHandler { } public Node create(Operation operation, boolean input) { + WrapperInfo inputWrapperInfo = operation.getInputWrapper(); + WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); + + ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); - WrapperInfo wrapperInfo = operation.getWrapper(); - ElementInfo element = input ? wrapperInfo.getInputWrapperElement() : wrapperInfo.getOutputWrapperElement(); - // Class wrapperClass = input ? wrapperInfo.getInputWrapperClass() : wrapperInfo.getOutputWrapperClass(); Document document = domHelper.newDocument(); QName name = element.getQName(); return DOMHelper.createElement(document, name); @@ -59,8 +60,11 @@ public class DOMWrapperHandler implements WrapperHandler { public void setChildren(Node wrapper, Object[] childObjects, Operation operation, boolean input) { - List childElements = input? operation.getWrapper().getInputChildElements(): - operation.getWrapper().getOutputChildElements(); + WrapperInfo inputWrapperInfo = operation.getInputWrapper(); + WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); + + List childElements = input? inputWrapperInfo.getChildElements(): + outputWrapperInfo.getChildElements(); for (int i = 0; i < childElements.size(); i++) { setChild(wrapper, i, childElements.get(i), childObjects[i]); } @@ -76,8 +80,13 @@ public class DOMWrapperHandler implements WrapperHandler { public List getChildren(Node wrapper, Operation operation, boolean input) { assert wrapper != null; - List childElements = input? operation.getWrapper().getInputChildElements(): - operation.getWrapper().getOutputChildElements(); + + WrapperInfo inputWrapperInfo = operation.getInputWrapper(); + WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); + + List childElements = input? inputWrapperInfo.getChildElements(): + outputWrapperInfo.getChildElements(); + if (wrapper.getNodeType() == Node.DOCUMENT_NODE) { wrapper = ((Document)wrapper).getDocumentElement(); } @@ -96,8 +105,10 @@ public class DOMWrapperHandler implements WrapperHandler { * @see org.apache.tuscany.sca.databinding.WrapperHandler#getWrapperType(Operation, boolean) */ public DataType getWrapperType(Operation operation, boolean input) { - WrapperInfo wrapper = operation.getWrapper(); - ElementInfo element = input? wrapper.getInputWrapperElement(): wrapper.getOutputWrapperElement(); + WrapperInfo inputWrapperInfo = operation.getInputWrapper(); + WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); + + ElementInfo element = input? inputWrapperInfo.getWrapperElement(): outputWrapperInfo.getWrapperElement(); DataType wrapperType = new DataTypeImpl(DOMDataBinding.NAME, Node.class, new XMLType(element)); return wrapperType; @@ -106,10 +117,12 @@ public class DOMWrapperHandler implements WrapperHandler { public boolean isInstance(Object wrapperObj, Operation operation, boolean input) { - WrapperInfo wrapperInfo = operation.getWrapper(); - ElementInfo element = input ? wrapperInfo.getInputWrapperElement() : wrapperInfo.getOutputWrapperElement(); - List childElements = - input ? wrapperInfo.getInputChildElements() : wrapperInfo.getOutputChildElements(); + WrapperInfo inputWrapperInfo = operation.getInputWrapper(); + WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); + + ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); + List childElements = input ? inputWrapperInfo.getChildElements() : outputWrapperInfo.getChildElements(); + Node wrapper = (Node)wrapperObj; if (wrapper.getNodeType() == Node.DOCUMENT_NODE) { wrapper = ((Document)wrapper).getDocumentElement(); -- cgit v1.2.3