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);");