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 bu...@apache.org on 2002/10/03 22:11:20 UTC
cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava JavaDeployWriter.java JavaSkelWriter.java JavaStubWriter.java
butek 2002/10/03 13:11:20
Modified: java/src/org/apache/axis/wsdl/symbolTable Tag:
explicitHeaderWork BindingEntry.java Parameter.java
SymbolTable.java
java/src/org/apache/axis/wsdl/toJava Tag: explicitHeaderWork
JavaDeployWriter.java JavaSkelWriter.java
JavaStubWriter.java
Log:
A bit more header work - distinguish between input and output headers.
Revision Changes Path
No revision
No revision
1.3.8.2 +28 -9 xml-axis/java/src/org/apache/axis/wsdl/symbolTable/BindingEntry.java
Index: BindingEntry.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/BindingEntry.java,v
retrieving revision 1.3.8.1
retrieving revision 1.3.8.2
diff -u -r1.3.8.1 -r1.3.8.2
--- BindingEntry.java 2 Oct 2002 19:32:48 -0000 1.3.8.1
+++ BindingEntry.java 3 Oct 2002 20:11:20 -0000 1.3.8.2
@@ -213,20 +213,37 @@
} // setMIMEType
/**
- * Get the mime mapping for the given parameter name.
- * If there is none, this returns null.
+ * Is this parameter an input header parameter?.
*/
- public boolean isHeaderParameter(String operationName,
+ public boolean isInHeaderParameter(String operationName,
String parameterName) {
+ return (headerParameter(operationName, parameterName) & IN_HEADER) > 0;
+ } // isInHeaderParameter
+
+ /**
+ * Is this parameter an output header parameter?.
+ */
+ public boolean isOutHeaderParameter(String operationName,
+ String parameterName) {
+ return (headerParameter(operationName, parameterName) & OUT_HEADER) > 0;
+ } // isInHeaderParameter
+
+ /**
+ * Get the flag indicating what sort of header this parameter is.
+ */
+ public static final int NO_HEADER = 0;
+ public static final int IN_HEADER = 1;
+ public static final int OUT_HEADER = 2;
+ private int headerParameter(String operationName, String parameterName) {
Map opMap = (Map) headerParameters.get(operationName);
if (opMap == null) {
- return false;
+ return NO_HEADER;
}
else {
- Boolean bool = (Boolean) opMap.get(parameterName);
- return bool == null ? false : bool.booleanValue();
+ Integer I = (Integer) opMap.get(parameterName);
+ return I == null ? NO_HEADER : I.intValue();
}
- } // isHeaderParameter
+ } // headerParameter
/**
* Get the header parameter map.
@@ -238,13 +255,15 @@
/**
* Set the header parameter mapping for the given parameter name.
*/
- public void setHeaderParameter(String operationName, String parameterName, boolean isHeader) {
+ public void setHeaderParameter(String operationName, String parameterName, int headerFlags) {
Map opMap = (Map) headerParameters.get(operationName);
if (opMap == null) {
opMap = new HashMap();
headerParameters.put(operationName, opMap);
}
- opMap.put(parameterName, new Boolean(isHeader));
+ Integer I = (Integer) opMap.get(parameterName);
+ int i = I == null ? headerFlags : (I.intValue() | headerFlags);
+ opMap.put(parameterName, new Integer(i));
} // setHeaderParameter
/**
1.3.8.2 +13 -3 xml-axis/java/src/org/apache/axis/wsdl/symbolTable/Parameter.java
Index: Parameter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/Parameter.java,v
retrieving revision 1.3.8.1
retrieving revision 1.3.8.2
diff -u -r1.3.8.1 -r1.3.8.2
--- Parameter.java 2 Oct 2002 19:28:05 -0000 1.3.8.1
+++ Parameter.java 3 Oct 2002 20:11:20 -0000 1.3.8.2
@@ -80,13 +80,15 @@
private byte mode = IN;
private boolean inHeader = false;
+ private boolean outHeader = false;
public String toString() {
return "(" + type
+ (mimeType == null ? "" : "(" + mimeType + ")")
+ ", " + getName() + ", "
+ (mode == IN ? "IN)" : mode == INOUT ? "INOUT)" : "OUT)"
- + (inHeader ? "(soap:header)" : ""));
+ + (inHeader ? "(IN soap:header)" : "")
+ + (outHeader ? "(OUT soap:header)" : ""));
} // toString
public QName getQName() {
@@ -134,11 +136,19 @@
this.mode = mode;
}
- public boolean inHeader() {
+ public boolean isInHeader() {
return inHeader;
- } // inHeader
+ } // isInHeader
public void setInHeader(boolean inHeader) {
this.inHeader = inHeader;
} // setInHeader
+
+ public boolean isOutHeader() {
+ return outHeader;
+ } // isOutHeader
+
+ public void setOutHeader(boolean outHeader) {
+ this.outHeader = outHeader;
+ } // setOutHeader
} // class Parameter
1.41.6.2 +16 -5 xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
Index: SymbolTable.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v
retrieving revision 1.41.6.1
retrieving revision 1.41.6.2
diff -u -r1.41.6.1 -r1.41.6.2
--- SymbolTable.java 2 Oct 2002 19:32:48 -0000 1.41.6.1
+++ SymbolTable.java 3 Oct 2002 20:11:20 -0000 1.41.6.2
@@ -1332,9 +1332,13 @@
setMIMEType(param, bindingEntry == null ? null :
bindingEntry.getMIMEType(opName, partName));
if (bindingEntry != null &&
- bindingEntry.isHeaderParameter(opName, partName)) {
+ bindingEntry.isInHeaderParameter(opName, partName)) {
param.setInHeader(true);
}
+ if (bindingEntry != null &&
+ bindingEntry.isOutHeaderParameter(opName, partName)) {
+ param.setOutHeader(true);
+ }
v.add(param);
@@ -1415,9 +1419,12 @@
p.setType(elem.getType());
setMIMEType(p, bindingEntry == null ? null :
bindingEntry.getMIMEType(opName, partName));
- if (bindingEntry.isHeaderParameter(opName, partName)) {
+ if (bindingEntry.isInHeaderParameter(opName, partName)) {
p.setInHeader(true);
}
+ if (bindingEntry.isOutHeaderParameter(opName, partName)) {
+ p.setOutHeader(true);
+ }
v.add(p);
}
} else {
@@ -1433,9 +1440,12 @@
}
setMIMEType(param, bindingEntry == null ? null :
bindingEntry.getMIMEType(opName, partName));
- if (bindingEntry.isHeaderParameter(opName, partName)) {
+ if (bindingEntry.isInHeaderParameter(opName, partName)) {
param.setInHeader(true);
}
+ if (bindingEntry.isOutHeaderParameter(opName, partName)) {
+ param.setOutHeader(true);
+ }
v.add(param);
}
@@ -1598,9 +1608,10 @@
// parts come from messages used in the portType's operation
// input/output clauses - it does not work for implicit
// headers - those whose parts come from messages not used in
- // the portType-s operation's input/output clauses.
+ // the portType's operation's input/output clauses. I don't
+ // know what we're supposed to emit for implicit headers.
bEntry.setHeaderParameter(operation.getName(), header.getPart(),
- true);
+ input ? BindingEntry.IN_HEADER : BindingEntry.OUT_HEADER);
}
else if (obj instanceof MIMEMultipartRelated) {
bEntry.setBodyType(operation,
No revision
No revision
1.65.4.2 +5 -11 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java
Index: JavaDeployWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaDeployWriter.java,v
retrieving revision 1.65.4.1
retrieving revision 1.65.4.2
diff -u -r1.65.4.1 -r1.65.4.2
--- JavaDeployWriter.java 2 Oct 2002 20:09:00 -0000 1.65.4.1
+++ JavaDeployWriter.java 3 Oct 2002 20:11:20 -0000 1.65.4.2
@@ -444,17 +444,11 @@
}
// Is this a header?
- // NOTE: the symbol table will have to change eventually to distinguish
- // between the input and output aspects of INOUT parameters. One COULD
- // be in the header while the other could be in the body. Right now the
- // symbol table assumes it's all or nothing.
- if (param.inHeader()) {
- if (param.getMode() != Parameter.OUT) {
- pw.print(" inHeader=\"true\"");
- }
- if (param.getMode() != Parameter.IN) {
- pw.print(" outHeader=\"true\"");
- }
+ if (param.isInHeader()) {
+ pw.print(" inHeader=\"true\"");
+ }
+ if (param.isOutHeader()) {
+ pw.print(" outHeader=\"true\"");
}
pw.println("/>");
1.49.6.2 +2 -6 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaSkelWriter.java
Index: JavaSkelWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaSkelWriter.java,v
retrieving revision 1.49.6.1
retrieving revision 1.49.6.2
diff -u -r1.49.6.1 -r1.49.6.2
--- JavaSkelWriter.java 2 Oct 2002 20:09:00 -0000 1.49.6.1
+++ JavaSkelWriter.java 3 Oct 2002 20:11:20 -0000 1.49.6.2
@@ -187,12 +187,8 @@
QName paramType = Utils.getXSIType(p);
// Is this parameter a header?
- // NOTE: the symbol table will have to change eventually to distinguish
- // between the input and output aspects of INOUT parameters. One COULD
- // be in the header while the other could be in the body. Right now the
- // symbol table assumes it's all or nothing.
- String inHeader = p.inHeader() ? "true" : "false";
- String outHeader = inHeader;
+ String inHeader = p.isInHeader() ? "true" : "false";
+ String outHeader = p.isOutHeader() ? "true" : "false";
pw.println(" " +
"new org.apache.axis.description.ParameterDesc(" +
Utils.getNewQName(paramName) +
1.98.4.2 +1 -1 xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java
Index: JavaStubWriter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java,v
retrieving revision 1.98.4.1
retrieving revision 1.98.4.2
diff -u -r1.98.4.1 -r1.98.4.2
--- JavaStubWriter.java 2 Oct 2002 19:32:48 -0000 1.98.4.1
+++ JavaStubWriter.java 3 Oct 2002 20:11:20 -0000 1.98.4.2
@@ -517,7 +517,7 @@
// Generate the addParameter call with the
// name qname, typeQName, optional javaType, and mode
- if (p.getMode() != Parameter.OUT && p.inHeader()) {
+ if (p.getMode() != Parameter.OUT && p.isInHeader()) {
pw.println(" _call.addParameterAsHeader(" + paramNameText + ", "
+ paramTypeText + ", "
+ javaType + "javax.xml.rpc.ParameterMode.IN);");