summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/interface
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--branches/sca-java-1.x/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java18
-rw-r--r--branches/sca-java-1.x/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java10
-rw-r--r--branches/sca-java-1.x/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java4
-rw-r--r--branches/sca-java-1.x/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java28
-rw-r--r--branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java2
-rw-r--r--branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java16
-rw-r--r--branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java37
-rw-r--r--branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java8
-rw-r--r--branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java82
-rw-r--r--branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java74
-rw-r--r--branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java144
11 files changed, 264 insertions, 159 deletions
diff --git a/branches/sca-java-1.x/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java b/branches/sca-java-1.x/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
index ac086745c0..79a304bc2b 100644
--- a/branches/sca-java-1.x/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
+++ b/branches/sca-java-1.x/modules/interface-java-jaxws/src/main/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessor.java
@@ -129,7 +129,8 @@ public class JAXWSJavaInterfaceProcessor implements JavaInterfaceVisitor {
if(bare) {
// For BARE parameter style, the data won't be unwrapped
// The wrapper should be null
- operation.setWrapperStyle(false);
+ operation.setInputWrapperStyle(false);
+ operation.setOutputWrapperStyle(false);
}
documentStyle = methodSOAPBinding.style() == Style.DOCUMENT;
}
@@ -300,14 +301,17 @@ public class JAXWSJavaInterfaceProcessor implements JavaInterfaceVisitor {
}
String db = inputWrapperDT != null ? inputWrapperDT.getDataBinding() : JAXB_DATABINDING;
- WrapperInfo wrapperInfo =
- new WrapperInfo(db, new ElementInfo(inputWrapper, null), new ElementInfo(outputWrapper, null),
- inputElements, outputElements);
+
+ WrapperInfo inputWrapperInfo =
+ new WrapperInfo(db, new ElementInfo(inputWrapper, null), inputElements);
+ WrapperInfo outputWrapperInfo =
+ new WrapperInfo(db, new ElementInfo(outputWrapper, null), outputElements);
- wrapperInfo.setInputWrapperType(inputWrapperDT);
- wrapperInfo.setOutputWrapperType(outputWrapperDT);
+ inputWrapperInfo.setWrapperType(inputWrapperDT);
+ outputWrapperInfo.setWrapperType(outputWrapperDT);
- operation.setWrapper(wrapperInfo);
+ operation.setInputWrapper(inputWrapperInfo);
+ operation.setOutputWrapper(outputWrapperInfo);
}
}
}
diff --git a/branches/sca-java-1.x/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java b/branches/sca-java-1.x/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java
index 108d283584..725f296090 100644
--- a/branches/sca-java-1.x/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java
+++ b/branches/sca-java-1.x/modules/interface-java-jaxws/src/test/java/org/apache/tuscany/sca/interfacedef/java/jaxws/JAXWSJavaInterfaceProcessorTestCase.java
@@ -60,9 +60,9 @@ public class JAXWSJavaInterfaceProcessorTestCase extends TestCase {
interfaceProcessor.visitInterface(contract);
Operation op = contract.getOperations().get(0);
- Assert.assertTrue(!op.isWrapperStyle());
- Assert.assertEquals(new QName("http://www.example.com/stock", "stockQuoteOffer"), op.getWrapper().getInputWrapperElement().getQName());
- Assert.assertEquals(new QName("http://www.example.com/stock", "stockQuoteOfferResponse"), op.getWrapper().getOutputWrapperElement().getQName());
+ Assert.assertTrue(!op.isInputWrapperStyle());
+ Assert.assertEquals(new QName("http://www.example.com/stock", "stockQuoteOffer"), op.getInputWrapper().getWrapperElement().getQName());
+ Assert.assertEquals(new QName("http://www.example.com/stock", "stockQuoteOfferResponse"), op.getOutputWrapper().getWrapperElement().getQName());
}
/**
@@ -90,14 +90,14 @@ public class JAXWSJavaInterfaceProcessorTestCase extends TestCase {
op = op2;
}
- assertTrue(!op.isWrapperStyle() && op.getWrapper() == null);
+ assertTrue(!op.isInputWrapperStyle() && op.getInputWrapper() == null);
if ("M2".equals(op2.getName())) {
op = op2;
} else {
op = op1;
}
- assertTrue(!op.isWrapperStyle() && op.getWrapper() != null);
+ assertTrue(!op.isInputWrapperStyle() && op.getInputWrapper() != null);
}
diff --git a/branches/sca-java-1.x/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java b/branches/sca-java-1.x/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java
index c392b92f8a..5b019b748f 100644
--- a/branches/sca-java-1.x/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java
+++ b/branches/sca-java-1.x/modules/interface-wsdl-xml/src/test/java/org/apache/tuscany/sca/interfacedef/wsdl/introspect/WSDLOperationIntrospectorTestCase.java
@@ -67,13 +67,13 @@ public class WSDLOperationIntrospectorTestCase extends AbstractWSDLTestCase {
outputType.getLogical().getElementName());
Assert.assertTrue(op.isWrapperStyle());
- DataType<List<DataType>> unwrappedInputType = op.getWrapper().getWrapperInfo().getUnwrappedInputType();
+ DataType<List<DataType>> unwrappedInputType = op.getWrapper().getInputWrapperInfo().getUnwrappedInputType();
List<DataType> childTypes = unwrappedInputType.getLogical();
Assert.assertEquals(1, childTypes.size());
DataType<XMLType> childType = childTypes.get(0);
Assert.assertEquals(new QName(null, "tickerSymbol"), childType.getLogical().getElementName());
- childType = op.getWrapper().getWrapperInfo().getUnwrappedOutputType();
+ childType = op.getWrapper().getOutputWrapperInfo().getUnwrappedOutputType();
Assert.assertEquals(new QName(null, "price"), childType.getLogical().getElementName());
}
diff --git a/branches/sca-java-1.x/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java b/branches/sca-java-1.x/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
index ab6467bfd7..ba2e4b6ec0 100644
--- a/branches/sca-java-1.x/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
+++ b/branches/sca-java-1.x/modules/interface-wsdl/src/main/java/org/apache/tuscany/sca/interfacedef/wsdl/impl/WSDLOperationIntrospectorImpl.java
@@ -220,10 +220,11 @@ public class WSDLOperationIntrospectorImpl {
operationModel.setInputType(getInputType());
operationModel.setOutputType(getOutputType());
- operationModel.setWrapperStyle(isWrapperStyle());
+ operationModel.setInputWrapperStyle(isWrapperStyle());
+ operationModel.setOutputWrapperStyle(isWrapperStyle());
if (isWrapperStyle()) {
- WrapperInfo wrapperInfo = getWrapper().getWrapperInfo();
- operationModel.setWrapper(wrapperInfo);
+ operationModel.setInputWrapper(getWrapper().getInputWrapperInfo());
+ operationModel.setOutputWrapper(getWrapper().getOutputWrapperInfo());
}
}
return operationModel;
@@ -352,7 +353,8 @@ public class WSDLOperationIntrospectorImpl {
//
// private DataType<XMLType> unwrappedOutputType;
- private transient WrapperInfo wrapperInfo;
+ private transient WrapperInfo inputWrapperInfo;
+ private transient WrapperInfo outputWrapperInfo;
private List<XmlSchemaElement> getChildElements(XmlSchemaElement element) throws InvalidWSDLException {
if (element == null) {
@@ -553,25 +555,33 @@ public class WSDLOperationIntrospectorImpl {
}
*/
- public WrapperInfo getWrapperInfo() throws InvalidWSDLException {
- if (wrapperInfo == null) {
+ public WrapperInfo getInputWrapperInfo() throws InvalidWSDLException {
+ if (inputWrapperInfo == null) {
ElementInfo in = getElementInfo(getInputWrapperElement());
- ElementInfo out = getElementInfo(getOutputWrapperElement());
List<ElementInfo> inChildren = new ArrayList<ElementInfo>();
if (in != null) {
for (XmlSchemaElement e : getInputChildElements()) {
inChildren.add(getElementInfo(e));
}
}
+
+ inputWrapperInfo = new WrapperInfo(dataBinding, in, inChildren);
+ }
+ return inputWrapperInfo;
+ }
+
+ public WrapperInfo getOutputWrapperInfo() throws InvalidWSDLException {
+ if (outputWrapperInfo == null) {
+ ElementInfo out = getElementInfo(getOutputWrapperElement());
List<ElementInfo> outChildren = new ArrayList<ElementInfo>();
if (out != null) {
for (XmlSchemaElement e : getOutputChildElements()) {
outChildren.add(getElementInfo(e));
}
}
- wrapperInfo = new WrapperInfo(dataBinding, in, out, inChildren, outChildren);
+ outputWrapperInfo = new WrapperInfo(dataBinding, out, outChildren);
}
- return wrapperInfo;
+ return outputWrapperInfo;
}
}
diff --git a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
index 1f5620c0b9..63e26ef7f7 100644
--- a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
+++ b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/DataType.java
@@ -27,7 +27,7 @@ import java.lang.reflect.Type;
* runtime is written in Java. This may be the same form used by the application
* but it may not; for example, an application that is performing stream
* processing may want a physical form such as an
- * {@link java.io.InputStream InputStream} to semantially operate on application
+ * {@link java.io.InputStream InputStream} to semantically operate on application
* data such as a purchase order. The logical description is that used by the
* assembly model and is an identifier into some well-known type space; examples
* may be a Java type represented by its Class or an XML type represented by its
diff --git a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java
index f9de645a6e..1e91dc6fdb 100644
--- a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java
+++ b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Interface.java
@@ -79,6 +79,22 @@ public interface Interface extends Cloneable, PolicySetAttachPoint {
* @param dataBinding
*/
void resetDataBinding(String dataBinding);
+
+ /**
+ * Set the interface input types by copying those from the
+ * interface provided
+ *
+ * @param newInterface
+ */
+ public void resetInterfaceInputTypes(Interface newInterface);
+
+ /**
+ * Set the interface output types by copying those from the
+ * interface provided
+ *
+ * @param newInterface
+ */
+ public void resetInterfaceOutputTypes(Interface newInterface);
/**
* Returns true if the Interface is dynamic.
diff --git a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java
index 4676e35f80..51b7645e57 100644
--- a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java
+++ b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/Operation.java
@@ -132,26 +132,47 @@ public interface Operation extends Cloneable, PolicySetAttachPoint {
* Set the operation to be non-blocking
*/
void setNonBlocking(boolean nonBlocking);
+
+ /**
+ * @return the inputWrapperInfo
+ */
+ WrapperInfo getInputWrapper();
+
+ /**
+ * @param wrapperInfo the inputWrapperInfo to set
+ */
+ void setInputWrapper(WrapperInfo wrapperInfo);
/**
- * @return the wrapperInfo
+ * @return the outputWrapperInfo
*/
- WrapperInfo getWrapper();
+ WrapperInfo getOutputWrapper();
/**
- * @param wrapperInfo the wrapperInfo to set
+ * @param wrapperInfo the outputWrapperInfo to set
*/
- void setWrapper(WrapperInfo wrapperInfo);
+ // TODO - WI
+ void setOutputWrapper(WrapperInfo wrapperInfo);
/**
- * @return the wrapperStyle
+ * @return the inputWrapperStyle
+ */
+ boolean isInputWrapperStyle();
+
+ /**
+ * @param inputWrapperStyle the wrapperStyle to set
+ */
+ void setInputWrapperStyle(boolean wrapperStyle);
+
+ /**
+ * @return the outputWrapperStyle
*/
- boolean isWrapperStyle();
+ boolean isOutputWrapperStyle();
/**
- * @param wrapperStyle the wrapperStyle to set
+ * @param outputWrapperStyle the wrapperStyle to set
*/
- void setWrapperStyle(boolean wrapperStyle);
+ void setOutputWrapperStyle(boolean wrapperStyle);
/**
* @deprecated This should be the WrapperInfo.getDataBinding()
diff --git a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
index 9e7d6882f7..149e6306e5 100644
--- a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
+++ b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceContractMapperImpl.java
@@ -87,14 +87,14 @@ public class InterfaceContractMapperImpl implements InterfaceContractMapper {
boolean checkSourceWrapper = true;
List<DataType> sourceInputType = source.getInputType().getLogical();
- if (source.isWrapperStyle() && source.getWrapper() != null) {
- sourceInputType = source.getWrapper().getUnwrappedInputType().getLogical();
+ if (source.isInputWrapperStyle() && source.getInputWrapper() != null) {
+ sourceInputType = source.getInputWrapper().getUnwrappedInputType().getLogical();
checkSourceWrapper = false;
}
boolean checkTargetWrapper = true;
List<DataType> targetInputType = target.getInputType().getLogical();
- if (target.isWrapperStyle() && target.getWrapper() != null) {
- targetInputType = target.getWrapper().getUnwrappedInputType().getLogical();
+ if (target.isInputWrapperStyle() && target.getInputWrapper() != null) {
+ targetInputType = target.getInputWrapper().getUnwrappedInputType().getLogical();
checkTargetWrapper = false;
}
diff --git a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
index e2a524c5e0..23f1eec8cf 100644
--- a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
+++ b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/InterfaceImpl.java
@@ -151,10 +151,11 @@ public class InterfaceImpl implements Interface {
}
}
- if (op.isWrapperStyle()) {
- WrapperInfo wrapper = op.getWrapper();
- if (wrapper != null) {
- DataType<List<DataType>> unwrappedInputType = wrapper.getUnwrappedInputType();
+
+ if (op.isInputWrapperStyle()) {
+ WrapperInfo inputWrapperInfo = op.getInputWrapper();
+ if (inputWrapperInfo != null) {
+ DataType<List<DataType>> unwrappedInputType = inputWrapperInfo.getUnwrappedInputType();
if (unwrappedInputType != null) {
for (DataType d : unwrappedInputType.getLogical()) {
if (d.getDataBinding() == null) {
@@ -162,7 +163,13 @@ public class InterfaceImpl implements Interface {
}
}
}
- DataType unwrappedOutputType = wrapper.getUnwrappedOutputType();
+ }
+ }
+
+ if (op.isOutputWrapperStyle()) {
+ WrapperInfo outputWrapperInfo = op.getOutputWrapper();
+ if (outputWrapperInfo != null){
+ DataType unwrappedOutputType = outputWrapperInfo.getUnwrappedOutputType();
if (unwrappedOutputType != null && unwrappedOutputType.getDataBinding() == null) {
unwrappedOutputType.setDataBinding(dataBinding);
}
@@ -179,6 +186,54 @@ public class InterfaceImpl implements Interface {
dataType.setDataBinding(dataBinding);
}
}
+
+ public void resetInterfaceInputTypes(Interface newInterface){
+ for (int i = 0; i < getOperations().size(); i++) {
+ // TODO - same operation order is assumed. How to really
+ // find the right operation when we know that the
+ // data types will be different
+ Operation oldOperation = getOperations().get(i);
+ Operation newOperation = newInterface.getOperations().get(i);
+
+ if (!oldOperation.getName().equals(newOperation.getName())){
+ break;
+ }
+
+ // set input types
+ oldOperation.setInputType(newOperation.getInputType());
+
+ // set wrapper
+ if (newOperation.isInputWrapperStyle()) {
+ oldOperation.setInputWrapperStyle(true);
+ oldOperation.setInputWrapper(newOperation.getInputWrapper());
+ }
+ }
+ }
+
+ public void resetInterfaceOutputTypes(Interface newInterface){
+ for (int i = 0; i < getOperations().size(); i++) {
+ // TODO - same operation order is assumed. How to really
+ // find the right operation when we know that the
+ // data types will be different
+ Operation oldOperation = getOperations().get(i);
+ Operation newOperation = newInterface.getOperations().get(i);
+
+ if (!oldOperation.getName().equals(newOperation.getName())){
+ break;
+ }
+
+ // set output types
+ oldOperation.setOutputType(newOperation.getOutputType());
+
+ // set fault types
+ oldOperation.setFaultTypes(newOperation.getFaultTypes());
+
+ // set wrapper
+ if (newOperation.isOutputWrapperStyle()) {
+ oldOperation.setOutputWrapper(newOperation.getOutputWrapper());
+ }
+ }
+ }
public void resetDataBinding(String dataBinding) {
for (Operation op : getOperations()) {
@@ -200,16 +255,23 @@ public class InterfaceImpl implements Interface {
setDataBinding((DataType) d.getLogical(), dataBinding);
}
}
- if (op.isWrapperStyle()) {
- WrapperInfo wrapper = op.getWrapper();
- if (wrapper != null) {
- DataType<List<DataType>> unwrappedInputType = wrapper.getUnwrappedInputType();
+
+ if (op.isInputWrapperStyle()) {
+ WrapperInfo inputWrapperInfo = op.getInputWrapper();
+ if (inputWrapperInfo != null) {
+ DataType<List<DataType>> unwrappedInputType = inputWrapperInfo.getUnwrappedInputType();
if (unwrappedInputType != null) {
for (DataType d : unwrappedInputType.getLogical()) {
setDataBinding(d, dataBinding);
}
}
- DataType unwrappedOutputType = wrapper.getUnwrappedOutputType();
+ }
+ }
+
+ if (op.isOutputWrapperStyle()) {
+ WrapperInfo outputWrapperInfo = op.getOutputWrapper();
+ if (outputWrapperInfo != null){
+ DataType unwrappedOutputType = outputWrapperInfo.getUnwrappedOutputType();
if (unwrappedOutputType != null) {
setDataBinding(unwrappedOutputType, dataBinding);
}
diff --git a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
index 00a5dc3065..4b61dbe7ea 100644
--- a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
+++ b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/impl/OperationImpl.java
@@ -50,8 +50,12 @@ public class OperationImpl implements Operation {
private Interface interfaze;
private ConversationSequence conversationSequence = ConversationSequence.CONVERSATION_NONE;
private boolean nonBlocking;
- private boolean wrapperStyle;
- private WrapperInfo wrapper;
+ // TODO - WI
+ //private WrapperInfo wrapper;
+ private boolean inputWrapperStyle;
+ private boolean outputWrapperStyle;
+ private WrapperInfo inputWrapper;
+ private WrapperInfo outputWrapper;
private boolean dynamic;
private Map<QName, List<DataType<XMLType>>> faultBeans;
@@ -238,38 +242,76 @@ public class OperationImpl implements Operation {
/**
* @return the wrapperInfo
*/
- public WrapperInfo getWrapper() {
- return wrapper;
- }
+ // TODO - WI
+ //public WrapperInfo getWrapper() {
+ // return wrapper;
+ //}
/**
* @param wrapperInfo the wrapperInfo to set
*/
- public void setWrapper(WrapperInfo wrapperInfo) {
- this.wrapper = wrapperInfo;
+ // TODO - WI
+ //public void setWrapper(WrapperInfo wrapperInfo) {
+ // this.wrapper = wrapperInfo;
+ //}
+
+ public WrapperInfo getInputWrapper() {
+ return inputWrapper;
+ }
+
+ public void setInputWrapper(WrapperInfo inputWrapper) {
+ this.inputWrapper = inputWrapper;
+ }
+
+ public WrapperInfo getOutputWrapper() {
+ return outputWrapper;
+ }
+
+ public void setOutputWrapper(WrapperInfo outputWrapper) {
+ this.outputWrapper = outputWrapper;
}
/**
- * @return the wrapperStyle
+ * @return the inputWrapperStyle
*/
- public boolean isWrapperStyle() {
- return wrapperStyle;
+ public boolean isInputWrapperStyle() {
+ return inputWrapperStyle;
}
/**
- * @param wrapperStyle the wrapperStyle to set
+ * @param inputWrapperStyle the wrapperStyle to set
*/
- public void setWrapperStyle(boolean wrapperStyle) {
- this.wrapperStyle = wrapperStyle;
+ public void setInputWrapperStyle(boolean wrapperStyle) {
+ this.inputWrapperStyle = wrapperStyle;
+ }
+
+ /**
+ * @return the outputWrapperStyle
+ */
+ public boolean isOutputWrapperStyle() {
+ return inputWrapperStyle;
}
+ /**
+ * @param outputWrapperStyle the wrapperStyle to set
+ */
+ public void setOutputWrapperStyle(boolean wrapperStyle) {
+ this.inputWrapperStyle = wrapperStyle;
+ }
+
+ // TODO - WI
+ // These are deprecated and are a little awkward now that
+ // we split input wrapper from output wrapper
public String getDataBinding() {
- return wrapper != null ? wrapper.getDataBinding() : null;
+ return inputWrapper != null ? inputWrapper.getDataBinding() : null;
}
public void setDataBinding(String dataBinding) {
- if (wrapper != null) {
- wrapper.setDataBinding(dataBinding);
+ if (inputWrapper != null) {
+ inputWrapper.setDataBinding(dataBinding);
+ }
+ if (outputWrapper != null) {
+ outputWrapper.setDataBinding(dataBinding);
}
}
diff --git a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java
index 12db460959..b5a7915a11 100644
--- a/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java
+++ b/branches/sca-java-1.x/modules/interface/src/main/java/org/apache/tuscany/sca/interfacedef/util/WrapperInfo.java
@@ -31,7 +31,7 @@ import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
* A WSDL operation qualifies for wrapper style mapping only if the following
* criteria are met:
* <ul>
- * <li>(i) The operation�s input and output messages (if present) each contain
+ * <li>(i) The operation is input and output messages (if present) each contain
* only a single part
* <li>(ii) The input message part refers to a global element declaration whose
* localname is equal to the operation name
@@ -48,76 +48,61 @@ import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl;
* @version $Rev$ $Date$
*/
public class WrapperInfo {
- private ElementInfo inputWrapperElement;
-
- private ElementInfo outputWrapperElement;
-
- private List<ElementInfo> inputChildElements;
-
- private List<ElementInfo> outputChildElements;
+ private String dataBinding;
+ private ElementInfo wrapperElement;
+ private List<ElementInfo> childElements;
+ private DataType<XMLType> wrapperType;
- // The data type of the unwrapped input child elements
+ // A cache for the derived data type of the unwrapped
+ // input child elements
private DataType<List<DataType>> unwrappedInputType;
- // The data type of the unwrapped output child element (we only supports one child)
+ // A cache for the derived data type of the unwrapped
+ // output child element (we only support one child)
private DataType<XMLType> unwrappedOutputType;
- // The data for the input/output wrappers
- private String dataBinding;
-
- // The data type for the input (request) wrapper bean
- private DataType<XMLType> inputWrapperType;
- // The data type for the output (response) wrapper bean
- private DataType<XMLType> outputWrapperType;
-
public WrapperInfo(String dataBinding,
- ElementInfo inputWrapperElement,
- ElementInfo outputWrapperElement,
- List<ElementInfo> inputElements,
- List<ElementInfo> outputElements) {
+ ElementInfo wrapperElement,
+ List<ElementInfo> childElements) {
super();
this.dataBinding = dataBinding;
- this.inputWrapperElement = inputWrapperElement;
- this.outputWrapperElement = outputWrapperElement;
- this.inputChildElements = inputElements;
- this.outputChildElements = outputElements;
+ this.wrapperElement = wrapperElement;
+ this.childElements = childElements;
}
- /**
- * @return the inputElements
- */
- public List<ElementInfo> getInputChildElements() {
- return inputChildElements;
+ public List<ElementInfo> getChildElements() {
+ return childElements;
}
- /**
- * @return the inputWrapperElement
- */
- public ElementInfo getInputWrapperElement() {
- return inputWrapperElement;
+ public ElementInfo getWrapperElement() {
+ return wrapperElement;
+ }
+
+ public String getDataBinding() {
+ return dataBinding;
+ }
+
+ public void setDataBinding(String dataBinding) {
+ this.dataBinding = dataBinding;
}
- /**
- * @return the outputElements
- */
- public List<ElementInfo> getOutputChildElements() {
- return outputChildElements;
+ public DataType<XMLType> getWrapperType() {
+ return wrapperType;
}
- /**
- * @return the outputWrapperElement
- */
- public ElementInfo getOutputWrapperElement() {
- return outputWrapperElement;
+ public void setWrapperType(DataType<XMLType> wrapperType) {
+ this.wrapperType = wrapperType;
}
+
+ public Class<?> getWrapperClass() {
+ return wrapperType == null ? null : wrapperType.getPhysical();
+ }
+
- /**
- * @return the unwrappedInputType
- */
public DataType<List<DataType>> getUnwrappedInputType() {
if (unwrappedInputType == null) {
List<DataType> childTypes = new ArrayList<DataType>();
- for (ElementInfo element : getInputChildElements()) {
+ for (ElementInfo element : getChildElements()) {
DataType type = getDataType(element);
childTypes.add(type);
}
@@ -126,23 +111,9 @@ public class WrapperInfo {
return unwrappedInputType;
}
- private DataType getDataType(ElementInfo element) {
- DataType type = null;
- if (element.isMany()) {
- DataType logical = new DataTypeImpl<XMLType>(dataBinding, Object.class, new XMLType(element));
- type = new DataTypeImpl<DataType>("java:array", Object[].class, logical);
- } else {
- type = new DataTypeImpl<XMLType>(dataBinding, Object.class, new XMLType(element));
- }
- return type;
- }
-
- /**
- * @return the unwrappedOutputType
- */
public DataType getUnwrappedOutputType() {
if (unwrappedOutputType == null) {
- List<ElementInfo> elements = getOutputChildElements();
+ List<ElementInfo> elements = getChildElements();
if (elements != null && elements.size() > 0) {
if (elements.size() > 1) {
// We don't support output with multiple parts
@@ -155,36 +126,15 @@ public class WrapperInfo {
}
return unwrappedOutputType;
}
-
- public Class<?> getInputWrapperClass() {
- return inputWrapperType == null ? null : inputWrapperType.getPhysical();
- }
-
- public Class<?> getOutputWrapperClass() {
- return outputWrapperType == null ? null : outputWrapperType.getPhysical();
- }
-
- public String getDataBinding() {
- return dataBinding;
- }
-
- public void setDataBinding(String dataBinding) {
- this.dataBinding = dataBinding;
- }
-
- public DataType<XMLType> getInputWrapperType() {
- return inputWrapperType;
- }
-
- public void setInputWrapperType(DataType<XMLType> inputWrapperType) {
- this.inputWrapperType = inputWrapperType;
- }
-
- public DataType<XMLType> getOutputWrapperType() {
- return outputWrapperType;
- }
-
- public void setOutputWrapperType(DataType<XMLType> outputWrapperType) {
- this.outputWrapperType = outputWrapperType;
- }
+
+ private DataType getDataType(ElementInfo element) {
+ DataType type = null;
+ if (element.isMany()) {
+ DataType logical = new DataTypeImpl<XMLType>(dataBinding, Object.class, new XMLType(element));
+ type = new DataTypeImpl<DataType>("java:array", Object[].class, logical);
+ } else {
+ type = new DataTypeImpl<XMLType>(dataBinding, Object.class, new XMLType(element));
+ }
+ return type;
+ }
}