You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by to...@apache.org on 2001/09/24 23:58:57 UTC
cvs commit: xml-axis/java/src/org/apache/axis/wsdl WsdlAttributes.java
tomj 01/09/24 14:58:57
Modified: java/src/org/apache/axis/wsdl WsdlAttributes.java
Log:
From Ravi Kumar [rkumar@borland.com]:
make code cleaner when setting binding and body style.
Correctly iterate through faults.
Revision Changes Path
1.2 +36 -34 xml-axis/java/src/org/apache/axis/wsdl/WsdlAttributes.java
Index: WsdlAttributes.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/WsdlAttributes.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- WsdlAttributes.java 2001/09/14 20:08:09 1.1
+++ WsdlAttributes.java 2001/09/24 21:58:56 1.2
@@ -63,6 +63,7 @@
import javax.wsdl.Binding;
import javax.wsdl.PortType;
import javax.wsdl.BindingOperation;
+import javax.wsdl.BindingFault;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -154,12 +155,12 @@
private class OperationAttr {
private int inputBodyType;
private int outputBodyType;
- private int faultBodyType;
+ private HashMap faultBodyTypeMap;
- public OperationAttr(int inputBodyType, int outputBodyType, int faultBodyType) {
+ public OperationAttr(int inputBodyType, int outputBodyType, HashMap faultBodyTypeMap) {
this.inputBodyType = inputBodyType;
this.outputBodyType = outputBodyType;
- this.faultBodyType = faultBodyType;
+ this.faultBodyTypeMap = faultBodyTypeMap;
}
public int getInputBodyType() {
@@ -170,8 +171,8 @@
return outputBodyType;
}
- public int getFaultBodyType() {
- return faultBodyType;
+ public HashMap getFaultBodyTypeMap() {
+ return faultBodyTypeMap;
}
}
@@ -219,10 +220,7 @@
bindingType = TYPE_SOAP;
SOAPBinding sb = (SOAPBinding) obj;
String style = sb.getStyle();
- if (style.equalsIgnoreCase("rpc")) {
- bindingStyle = STYLE_RPC;
- }
- else if (style.equalsIgnoreCase("document")) {
+ if (style.equalsIgnoreCase("document")) {
bindingStyle = STYLE_DOCUMENT;
}
}
@@ -248,7 +246,6 @@
// Check the Binding Operations for use="literal"
int inputBodyType = USE_ENCODED;
int outputBodyType = USE_ENCODED;
- int faultBodyType = USE_ENCODED;
List bindList = binding.getBindingOperations();
for (Iterator opIterator = bindList.iterator(); opIterator.hasNext();) {
BindingOperation bindOp = (BindingOperation) opIterator.next();
@@ -261,10 +258,8 @@
String use = ((SOAPBody) obj).getUse();
if (use.equalsIgnoreCase("literal")) {
inputBodyType = USE_LITERAL;
- }
- else {
- inputBodyType = USE_ENCODED;
}
+ break;
}
}
// output
@@ -274,35 +269,41 @@
if (obj instanceof SOAPBody) {
String use = ((SOAPBody) obj).getUse();
if (use.equalsIgnoreCase("literal")) {
- if (use.equalsIgnoreCase("literal")) {
- outputBodyType = USE_LITERAL;
- }
- else {
- outputBodyType = USE_ENCODED;
- }
+ outputBodyType = USE_LITERAL;
}
+ break;
}
}
- // fault
- Iterator faultIter = bindOp.getBindingOutput().getExtensibilityElements().iterator();
- for (; faultIter.hasNext();) {
- Object obj = faultIter.next();
- if (obj instanceof SOAPBody) {
- String use = ((SOAPBody) obj).getUse();
- if (use.equalsIgnoreCase("literal")) {
+
+ // faults
+ HashMap faultMap = new HashMap();
+ Iterator faultMapIter = bindOp.getBindingFaults().values().iterator();
+ for (; faultMapIter.hasNext(); ) {
+ BindingFault bFault = (BindingFault)faultMapIter.next();
+
+ // Set default entry for this fault
+ String faultName = bFault.getName();
+ int faultBodyType = USE_ENCODED;
+
+ Iterator faultIter =
+ ((BindingFault)faultMapIter.next()).getExtensibilityElements().iterator();
+ for (; faultIter.hasNext();) {
+ Object obj = faultIter.next();
+ if (obj instanceof SOAPBody) {
+ String use = ((SOAPBody) obj).getUse();
if (use.equalsIgnoreCase("literal")) {
faultBodyType = USE_LITERAL;
- }
- else {
- faultBodyType = USE_ENCODED;
}
+ break;
}
}
+ // Add this fault name and bodyType to the map
+ faultMap.put(faultName, new Integer(faultBodyType));
}
// Associate the portType operation that goes with this binding
// with the body types.
attributes.put(bindOp.getOperation(),
- new OperationAttr(inputBodyType, outputBodyType, faultBodyType));
+ new OperationAttr(inputBodyType, outputBodyType, faultMap));
} // binding operations
} // bindings
@@ -337,19 +338,20 @@
// XXX - we may not have seen all operations
return USE_ENCODED;
}
- return attr.getInputBodyType();
+ return attr.getOutputBodyType();
}
/**
* Return body type of operation: literal or encoded
*/
- public int getFaultBodyType(Operation operation) {
+ public int getFaultBodyType(Operation operation, String faultName) {
OperationAttr attr = (OperationAttr) attributes.get(operation);
if (attr == null) {
// XXX - we may not have seen all operations
return USE_ENCODED;
}
- return attr.getInputBodyType();
+ HashMap m = attr.getFaultBodyTypeMap();
+ return ((Integer) m.get(faultName)).intValue();
}
/**
@@ -369,8 +371,8 @@
*/
public int getBindingType(Binding binding) {
BindingAttr attr = (BindingAttr) attributes.get(binding);
- // defensive code, as we should have seen all bindings
if (attr == null) {
+ // defensive code, as we should have seen all bindings
return TYPE_SOAP;
}
return attr.getType();