Package org.apache.axis.wsdl.symbolTable

Examples of org.apache.axis.wsdl.symbolTable.Parameter


        pw.println("        }");
        pw.println("        org.apache.axis.client.Call _call = createCall();");

        // loop over paramters and set up in/out params
        for (int i = 0; i < parms.list.size(); ++i) {
            Parameter p = (Parameter) parms.list.get(i);

            String mimeType = p.getMIMEType();

            // Get the QName representing the parameter type
            QName paramType = Utils.getXSIType(p);

            // Set the javaType to the name of the type
            String javaType = null;
            if (mimeType != null) {
                javaType = "javax.activation.DataHandler.class, ";
            }
            else {
                javaType = p.getType().getName();
                if (javaType != null) {
                    javaType += ".class, ";
                } else {
                    javaType = "";
                }
            }

            // Get the text representing newing a QName for the name and type
            String paramNameText = Utils.getNewQName(p.getQName());
            String paramTypeText = Utils.getNewQName(paramType);

            // Generate the addParameter call with the
            // name qname, typeQName, optional javaType, and mode
            if (p.getMode() == Parameter.IN) {
                pw.println("        _call.addParameter(" + paramNameText + ", "
                           + paramTypeText + ", "
                           + javaType + "javax.xml.rpc.ParameterMode.IN);");
            }
            else if (p.getMode() == Parameter.INOUT) {
                pw.println("        _call.addParameter(" + paramNameText + ", "
                           + paramTypeText + ", "
                           + javaType + "javax.xml.rpc.ParameterMode.INOUT);");
            }
            else { // p.getMode() == Parameter.OUT
                pw.println("        _call.addParameter(" + paramNameText + ", "
                           + paramTypeText + ", "
                           + javaType + "javax.xml.rpc.ParameterMode.OUT);");
            }
        }
        // set output type
        if (parms.returnParam != null) {

            // Get the QName for the return Type
            QName returnName = Utils.getXSIType(parms.returnParam);
           
            // Get the javaType
            String javaType = null;
            if (parms.returnParam.getMIMEType() != null) {
                javaType = "javax.activation.DataHandler";
            }
            else {
                javaType = parms.returnParam.getType().getName();
            }
            if (javaType == null) {
                pw.println("        _call.setReturnType(" +
                           Utils.getNewQName(returnName) + ");");
            } else {
                pw.println("        _call.setReturnType(" +
                           Utils.getNewQName(returnName) +
                           ", " + javaType + ".class);");
            }
        }
        else {
            pw.println("        _call.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);");
        }

        // SoapAction
        if (soapAction != null) {
            pw.println("        _call.setUseSOAPAction(true);");
            pw.println("        _call.setSOAPActionURI(\"" + soapAction + "\");");
        }

        boolean hasMIME = Utils.hasMIME(bEntry, operation);

        // Encoding: literal or encoded use.
        int use = bEntry.getInputBodyType(operation.getOperation());
        if (use == BindingEntry.USE_LITERAL) {
            // Turn off encoding
            pw.println("        _call.setEncodingStyle(null);");
            // turn off XSI types
            pw.println("        _call.setScopedProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);");
        }
        if (hasMIME || use == BindingEntry.USE_LITERAL) {
            // If it is literal, turn off multirefs.
            //
            // If there are any MIME types, turn off multirefs.
            // I don't know enough about the guts to know why
            // attachments don't work with multirefs, but they don't.
            pw.println("        _call.setScopedProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);");
        }

        // Style: document, RPC, or wrapped
        int style = bEntry.getBindingStyle();
        String styleStr = "rpc";
        if (style == BindingEntry.STYLE_DOCUMENT) {
            if (symbolTable.isWrapped()) {
                styleStr = "wrapped";
            } else {
                styleStr = "document";
            }
        }

        if (!hasMIME) {
            pw.println("        _call.setOperationStyle(\"" + styleStr + "\");");
        }

        // Operation name
        if (styleStr.equals("wrapped")) {
            // We need to make sure the operation name, which is what we
            // wrap the elements in, matches the Qname of the parameter
            // element.
            Map partsMap = operation.getOperation().getInput().getMessage().getParts();
            Part p = (Part)partsMap.values().iterator().next();
            QName q = p.getElementName();
            pw.println("        _call.setOperationName(new javax.xml.namespace.QName(\"" + q.getNamespaceURI() + "\", \"" + q.getLocalPart() + "\"));" );
        } else {
            QName elementQName = Utils.getOperationQName(operation);
            if (elementQName != null) {
                pw.println("        _call.setOperationName(" +
                        Utils.getNewQName(elementQName) + ");" );
            }
        }

        // Invoke the operation
        pw.println();
        pw.print("        java.lang.Object _resp = _call.invoke(");
        pw.print("new java.lang.Object[] {");

        // Write the input and inout parameter list
        boolean needComma = false;
        for (int i = 0; i < parms.list.size(); ++i) {
            Parameter p = (Parameter) parms.list.get(i);

            if (p.getMode() != Parameter.OUT) {
                if (needComma) {
                    pw.print(", ");
                }
                else {
                    needComma = true;
                }

                String javifiedName = Utils.xmlNameToJava(p.getName());
                if (p.getMode() != Parameter.IN) {
                    javifiedName += ".value";
                }
                if (p.getMIMEType() == null) {
                    javifiedName = Utils.wrapPrimitiveType(
                            p.getType(), javifiedName);
                }
                pw.print(javifiedName);
            }
        }
        pw.println("});");
        pw.println();
        pw.println("        if (_resp instanceof java.rmi.RemoteException) {");
        pw.println("            throw (java.rmi.RemoteException)_resp;");
        pw.println("        }");

        int allOuts = parms.outputs + parms.inouts;
        if (allOuts > 0) {
            pw.println("        else {");
            if (allOuts == 1) {
                if (parms.returnParam != null) {
                    writeOutputAssign(pw, "return ", parms.returnParam.getType(),
                            parms.returnParam.getMIMEType(), "_resp");
                }
                else {
                    // The resp object must go into a holder
                    int i = 0;
                    Parameter p = (Parameter) parms.list.get(i);

                    while (p.getMode() == Parameter.IN) {
                        p = (Parameter) parms.list.get(++i);
                    }
                    String javifiedName = Utils.xmlNameToJava(p.getName());
                    String qnameName = Utils.getNewQName(p.getQName());
                              
                    pw.println("            java.util.Map _output;");
                    pw.println("            _output = _call.getOutputParams();");
                    writeOutputAssign(pw, javifiedName + ".value = ",
                                      p.getType(), p.getMIMEType(),
                                      "_output.get(" + qnameName + ")");
                }
            }
            else {
                // There is more than 1 output.  Get the outputs from getOutputParams.   
                pw.println("            java.util.Map _output;");
                pw.println("            _output = _call.getOutputParams();");
                for (int i = 0; i < parms.list.size (); ++i) {
                    Parameter p = (Parameter) parms.list.get (i);
                    String javifiedName = Utils.xmlNameToJava(p.getName());
                    String qnameName = Utils.getNewQName(p.getQName());
                    if (p.getMode() != Parameter.IN) {
                        writeOutputAssign(pw, javifiedName + ".value = ",
                                          p.getType(), p.getMIMEType(),
                                          "_output.get(" + qnameName + ")");
                    }
                }
                if (parms.returnParam != null) {
                    writeOutputAssign(pw, "return ", parms.returnParam.getType(),
View Full Code Here


    public static boolean hasMIME(BindingEntry bEntry, BindingOperation operation) {
        Parameters parameters =
          bEntry.getParameters(operation.getOperation());
        if (parameters != null) {
            for (int idx = 0; idx < parameters.list.size(); ++idx) {
                Parameter p = (Parameter) parameters.list.get(idx);
                if (p.getMIMEType() != null) {
                    return true;
                }
            }
        }
        return false;
View Full Code Here

            throw new RuntimeException(operationName + " was not found.");
        }

        // loop over paramters and set up in/out params
        for (int j = 0; j < parameters.list.size(); ++j) {
            Parameter p = (Parameter) parameters.list.get(j);

            if (p.getMode() == 1) {           // IN
                inNames.add(p.getQName().getLocalPart());
                inTypes.add(p);
            } else if (p.getMode() == 2) {    // OUT
                outNames.add(p.getQName().getLocalPart());
            } else if (p.getMode() == 3) {    // INOUT
                inNames.add(p.getQName().getLocalPart());
                inTypes.add(p);
                outNames.add(p.getQName().getLocalPart());
            }
        }

        // set output type
        if (parameters.returnParam != null) {
            // Get the QName for the return Type
            QName returnType = org.apache.axis.wsdl.toJava.Utils.getXSIType(
                    parameters.returnParam);
            QName returnQName = parameters.returnParam.getQName();

            outNames.add(returnQName.getLocalPart());
        }

        if (inNames.size() != args.length - 2)
            throw new RuntimeException("Need " + inNames.size() + " arguments!!!");

        for (int pos = 0; pos < inNames.size(); ++pos) {
            String arg = args[pos + 2];
            Parameter p = (Parameter) inTypes.get(pos);
            inputs.add(getParamData((org.apache.axis.client.Call) call, p, arg));
        }
        System.out.println("Executing operation " + operationName + " with parameters:");
        for (int j = 0; j < inputs.size(); j++) {
            System.out.println(inNames.get(j) + "=" + inputs.get(j));
View Full Code Here

      // Fill in any out parameter holders
      Iterator iparam = parms.list.iterator(  );

      while ( iparam.hasNext(  ) )
      {
         Parameter param = (Parameter) iparam.next(  );

         if ( param.getMode(  ) == Parameter.OUT )
         {
            // write a constructor for each of the parameters
            BooleanHolder bThrow            = new BooleanHolder( false );
            String        constructorString = Utils.getConstructorForParam( param, st, bThrow );

            if ( bThrow.value )
            {
               pw.println( "\ttry {" );
            }

            pw.println( "\t" + Utils.xmlNameToJava( param.getName(  ) ) + ".value = " + constructorString + ";" );

            if ( bThrow.value )
            {
               pw.println( "\t} catch (Exception e) {" );
               pw.println( "\t}" );
            }
         }
         else if ( ( param.getMode(  ) == Parameter.IN ) || ( param.getMode(  ) == Parameter.INOUT ) )
         {
            if ( numInParams > 0 )
            {
               inParamList += ",";
            }

            inParamList += Utils.xmlNameToJava( param.getName(  ) );
            numInParams++;
         }
      }

      pw.print( "\t\t" );
View Full Code Here

        }
        pw.println(" >");

        Vector paramList = params.list;
        for (int i = 0; i < paramList.size(); i++) {
            Parameter param = (Parameter) paramList.elementAt(i);
            TypeEntry typeEntry = param.getType();

            QName paramQName = null;
            QName paramType = null;

            // Get the parameter type QName
            if (typeEntry instanceof DefinedElement &&
                typeEntry.getRefType() != null) {
                paramType = typeEntry.getRefType().getQName();
            } else {
                paramType = typeEntry.getQName();
            }

            // Get the parameter name QName
            paramQName = param.getQName();

            pw.print("        <parameter");
            if (paramQName == null || "".equals(paramQName.getNamespaceURI())) {
                pw.print(" name=\"" + param.getName() + "\"" );
            } else {
                pw.print(" qname=\"" +
                         Utils.genQNameAttributeString(paramQName,
                                                       "pns") + "\"");
            }

            pw.print(" type=\"" +
                     Utils.genQNameAttributeString(paramType,
                                                   "tns") + "\"");
            // Get the parameter mode
            if (param.getMode() != Parameter.IN) {
                pw.print(" mode=\"" + getModeString(param.getMode()) + "\"");
            }
            pw.println("/>");
        }

        pw.println("      </operation>");
View Full Code Here

        Parameters params = bEntry.getParameters(operation);
       
        // Loop over parameter types for this operation
        for (int i=0; i < params.list.size(); i++) {
            Parameter p = (Parameter) params.list.get(i);
            v.add(p.getType());
        }
       
        // Add the return type
        if (params.returnType != null)
            v.add(params.returnType);
View Full Code Here

        pw.println("        }");
        pw.println("        org.apache.axis.client.Call call = createCall();");

        // loop over paramters and set up in/out params
        for (int i = 0; i < parms.list.size(); ++i) {
            Parameter p = (Parameter) parms.list.get(i);

            // We need to use the Qname of the actual type, not the QName of the element
            TypeEntry type = p.getType();
            if (type instanceof DefinedElement
                    && type.getRefType() != null) {
                type = type.getRefType();
            }
            QName qn = type.getQName();
            String javaType = type.getName();

            if (javaType != null) {
                javaType += ".class, ";
            } else {
                javaType = "";
            }

            String typeString = "new javax.xml.namespace.QName(\"" +
                    qn.getNamespaceURI() + "\", \"" +
                    qn.getLocalPart() + "\")";
            QName paramQName = p.getQName();
            String qnName = "p" + i + "QName";
            pw.println("        javax.xml.namespace.QName " + qnName + " = new javax.xml.namespace.QName(\"" +
                    paramQName.getNamespaceURI() + "\", \"" +
                    paramQName.getLocalPart() + "\");");
            if (p.getMode() == Parameter.IN) {
                pw.println("        call.addParameter(" + qnName + ", "
                           + typeString + ", "
                           + javaType + "javax.xml.rpc.ParameterMode.IN);");
            }
            else if (p.getMode() == Parameter.INOUT) {
                pw.println("        call.addParameter(" + qnName + ", "
                           + typeString + ", "
                           + javaType + "javax.xml.rpc.ParameterMode.INOUT);");
            }
            else { // p.getMode() == Parameter.OUT
                pw.println("        call.addParameter(" + qnName + ", "
                           + typeString + ", "
                           + javaType + "javax.xml.rpc.ParameterMode.OUT);");
            }
        }
        // set output type
        if (parms.returnType != null) {
            // We need to use the Qname of the actual type, not the QName of the element
            QName qn = parms.returnType.getQName();
            if (parms.returnType instanceof DefinedElement) {
                TypeEntry type = ((DefinedElement) parms.returnType).getRefType();
                if (type != null && type.getQName() != null) {
                    qn = type.getQName();
                }
            }
            String outputType = "new javax.xml.namespace.QName(\"" +
                qn.getNamespaceURI() + "\", \"" +
                qn.getLocalPart() + "\")";
            pw.println("        call.setReturnType(" +
                       outputType + ");");
        }
        else {
            pw.println("        call.setReturnType(org.apache.axis.encoding.XMLType.AXIS_VOID);");
        }

        // SoapAction
        if (soapAction != null) {
            pw.println("        call.setUseSOAPAction(true);");
            pw.println("        call.setSOAPActionURI(\"" + soapAction + "\");");
        }

        // Encoding: literal or encoded use.
        int use = bEntry.getInputBodyType(operation.getOperation());
        if (use == BindingEntry.USE_LITERAL) {
            // Turn off encoding
            pw.println("        call.setEncodingStyle(null);");
            // turn off multirefs
            pw.println("        call.setScopedProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);");
            // turn off XSI types
            pw.println("        call.setScopedProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);");
        }
       
        // Style: document, RPC, or wrapped
        int style = bEntry.getBindingStyle();
        String styleStr = "rpc";
        if (style == BindingEntry.STYLE_DOCUMENT) {
            if (symbolTable.isWrapped()) {
                styleStr = "wrapped";
            } else {
                styleStr = "document";
            }
        }
        pw.println("        call.setOperationStyle(\"" + styleStr + "\");");

        // Operation name
        if (styleStr.equals("wrapped")) {
            // We need to make sure the operation name, which is what we
            // wrap the elements in, matches the Qname of the parameter
            // element.
            Map partsMap = operation.getOperation().getInput().getMessage().getParts();
            Part p = (Part)partsMap.values().iterator().next();
            QName q = p.getElementName();
            pw.println("        call.setOperationName(new javax.xml.namespace.QName(\"" + q.getNamespaceURI() + "\", \"" + q.getLocalPart() + "\"));" );
        } else {
            QName elementQName = Utils.getOperationQName(operation);
            if (elementQName != null) {
                pw.println("        call.setOperationName(" +
                        Utils.getNewQName(elementQName) + ");" );
            }
        }
       
        // Invoke the operation
        pw.println();
        pw.print("        Object resp = call.invoke(");
        pw.print("new Object[] {");

        // Write the input and inout parameter list
        boolean needComma = false;
        for (int i = 0; i < parms.list.size(); ++i) {
            Parameter p = (Parameter) parms.list.get(i);

            String javifiedName = Utils.xmlNameToJava(p.getName());
            if (p.getMode() != Parameter.OUT) {
                if (needComma) {
                    pw.print(", ");
                }
                else {
                    needComma = true;
                }
                if (p.getMode() == Parameter.IN) {
                    pw.print(Utils.wrapPrimitiveType(p.getType(),
                            javifiedName));
                }
                else {
                    pw.print(
                            Utils.wrapPrimitiveType(p.getType(),
                            javifiedName + ".value"));
                }
            }
        }
        pw.println("});");
        pw.println();
        pw.println("        if (resp instanceof java.rmi.RemoteException) {");
        pw.println("            throw (java.rmi.RemoteException)resp;");
        pw.println("        }");

        int allOuts = parms.outputs + parms.inouts;
        if (allOuts > 0) {
            pw.println("        else {");
            if (allOuts == 1) {
                if (parms.returnType != null) {
                    writeOutputAssign(pw, "return ",
                                      parms.returnType, "resp");
                }
                else {
                    // The resp object must go into a holder
                    int i = 0;
                    Parameter p = (Parameter) parms.list.get(i);

                    while (p.getMode() == Parameter.IN) {
                        p = (Parameter) parms.list.get(++i);
                    }
                    String javifiedName = Utils.xmlNameToJava(p.getName());
                    String qnameName = Utils.getNewQName(p.getQName());
                              
                    pw.println("            java.util.Map output;");
                    pw.println("            output = call.getOutputParams();");
                    writeOutputAssign(pw, javifiedName + ".value =",
                                      p.getType(),
                                      "output.get(" + qnameName + ")");
                }
            }
            else {
                // There is more than 1 output.  Get the outputs from getOutputParams.   
                pw.println("            java.util.Map output;");
                pw.println("            output = call.getOutputParams();");
                for (int i = 0; i < parms.list.size (); ++i) {
                    Parameter p = (Parameter) parms.list.get (i);
                    String javifiedName = Utils.xmlNameToJava(p.getName());
                    String qnameName = Utils.getNewQName(p.getQName());
                    if (p.getMode() != Parameter.IN) {
                        writeOutputAssign(pw, javifiedName + ".value =",
                                          p.getType(),
                                          "output.get(" + qnameName + ")");
                    }
                }
                if (parms.returnType != null) {
                    writeOutputAssign(pw, "return ",
View Full Code Here

        Parameters parameters = bEntry.getParameters(operation.getOperation());

        if (parameters != null) {
            for (int idx = 0; idx < parameters.list.size(); ++idx) {
                Parameter p = (Parameter) parameters.list.get(idx);

                if (p.getMIMEInfo() != null) {
                    return true;
                }
            }
        }
View Full Code Here

                faultMessage.getOrderedParts(null),
                literal, faultName, null);

        // Write data members of the exception and getter methods for them
        for (int i = 0; i < params.size(); i++) {
            Parameter param = (Parameter) params.get(i);
            String type = param.getType().getName();
            String variable = Utils.xmlNameToJava(param.getName());

            pw.println("    public " + type + " " + variable + ";");
            pw.println("    public " + type + " get"
                    + Utils.capitalizeFirstChar(variable) + "() {");
            pw.println("        return this." + variable + ";");
            pw.println("    }");
        }

        // Default contructor
        pw.println();
        pw.println("    public " + className + "() {");
        pw.println("    }");
        pw.println();

        // contructor that initializes data
        if (params.size() > 0) {
            pw.print("      public " + className + "(");

            for (int i = 0; i < params.size(); i++) {
                if (i != 0) {
                    pw.print(", ");
                }

                Parameter param = (Parameter) params.get(i);
                String type = param.getType().getName();
                String variable = Utils.xmlNameToJava(param.getName());

                pw.print(type + " " + variable);
            }

            pw.println(") {");

            for (int i = 0; i < params.size(); i++) {
                Parameter param = (Parameter) params.get(i);
                String variable = Utils.xmlNameToJava(param.getName());

                pw.println("        this." + variable + " = " + variable + ";");
            }

            pw.println("    }");
        }

        // Method that serializes exception data (writeDetail)
        // The QName of the element is passed in by the runtime and is found
        // via the fault meta-data in the WSDD.
        // NOTE: This function is also written in JavaBeanFaultWriter.java
        pw.println();
        pw.println("    /**");
        pw.println("     * Writes the exception data to the faultDetails");
        pw.println("     */");
        pw.println(
                "    public void writeDetails(javax.xml.namespace.QName qname, org.apache.axis.encoding.SerializationContext context) throws java.io.IOException {");

        for (int i = 0; i < params.size(); i++) {
            Parameter param = (Parameter) params.get(i);
            String variable = Utils.xmlNameToJava(param.getName());

            pw.println("        context.serialize(qname, null, "
                    + Utils.wrapPrimitiveType(param.getType(), variable)
                    + ");");
        }

        pw.println("    }");
    }    // writeFileBody
View Full Code Here

                    + "oper = new org.apache.axis.description.OperationDesc();");
            pw.println(indent + "oper.setName(\"" + operName + "\");");

            // loop over paramters and set up in/out params
            for (int j = 0; j < parameters.list.size(); ++j) {
                Parameter p = (Parameter) parameters.list.get(j);

                // Get the QName representing the parameter type
                QName paramType = Utils.getXSIType(p);

                // Set the javaType to the name of the type
                String javaType = null;

                if (p.getMIMEInfo() != null) {
                    MimeInfo mimeInfo = p.getMIMEInfo();

                    javaType = JavaUtils.mimeToJava(mimeInfo.getType())
                            + mimeInfo.getDimensions() + ".class, ";
                } else {
                    javaType = p.getType().getName();

                    if (javaType != null) {
                        javaType += ".class, ";
                    } else {
                        javaType = "null, ";
                    }
                }

                // Get the text representing newing a QName for the name and type
                String paramNameText = Utils.getNewQNameWithLastLocalPart(p.getQName());
                String paramTypeText = Utils.getNewQName(paramType);

                // Generate the addParameter call with the
                // name qname, typeQName, optional javaType, and mode
                boolean isInHeader = p.isInHeader();
                boolean isOutHeader = p.isOutHeader();

                pw.println("        oper.addParameter(" + paramNameText + ", "
                        + paramTypeText + ", " + javaType
                        + modeStrings[p.getMode()] + ", " + isInHeader
                        + ", " + isOutHeader + ");");
            }

            // set output type
            if (parameters.returnParam != null) {
View Full Code Here

TOP

Related Classes of org.apache.axis.wsdl.symbolTable.Parameter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.