⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javaskelwriter.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Copyright 2001-2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.axis.wsdl.toJava;import org.apache.axis.Constants;import org.apache.axis.utils.Messages;import org.apache.axis.wsdl.symbolTable.BindingEntry;import org.apache.axis.wsdl.symbolTable.FaultInfo;import org.apache.axis.wsdl.symbolTable.Parameter;import org.apache.axis.wsdl.symbolTable.Parameters;import org.apache.axis.wsdl.symbolTable.SymbolTable;import javax.wsdl.Binding;import javax.wsdl.BindingInput;import javax.wsdl.BindingOperation;import javax.wsdl.BindingOutput;import javax.wsdl.Operation;import javax.wsdl.OperationType;import javax.wsdl.extensions.UnknownExtensibilityElement;import javax.wsdl.extensions.soap.SOAPBody;import javax.wsdl.extensions.soap.SOAPOperation;import javax.xml.namespace.QName;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/** * This is Wsdl2java's skeleton writer.  It writes the <BindingName>Skeleton.java * file which contains the <bindingName>Skeleton class. */public class JavaSkelWriter extends JavaClassWriter {    /** Field bEntry */    private BindingEntry bEntry;    /** Field binding */    private Binding binding;    /** Field symbolTable */    private SymbolTable symbolTable;    /**     * Constructor.     *      * @param emitter          * @param bEntry           * @param symbolTable      */    protected JavaSkelWriter(Emitter emitter, BindingEntry bEntry,                             SymbolTable symbolTable) {        super(emitter, bEntry.getName() + "Skeleton", "skeleton");        this.bEntry = bEntry;        this.binding = bEntry.getBinding();        this.symbolTable = symbolTable;    }    // ctor    /**     * Returns "implements <SEI>, org.apache.axis.wsdl.Skeleton ".     *      * @return      */    protected String getImplementsText() {        return "implements "                + bEntry.getDynamicVar(JavaBindingWriter.INTERFACE_NAME)                + ", org.apache.axis.wsdl.Skeleton ";    }    // getImplementsText    /**     * Write the body of the binding's stub file.     *      * @param pw      * @throws IOException      */    protected void writeFileBody(PrintWriter pw) throws IOException {        String portTypeName =                (String) bEntry.getDynamicVar(JavaBindingWriter.INTERFACE_NAME);        String implType = portTypeName + " impl";        // Declare private impl and skeleton base delegates        pw.println("    private " + implType + ";");        pw.println(                "    private static java.util.Map _myOperations = new java.util.Hashtable();");        pw.println(                "    private static java.util.Collection _myOperationsList = new java.util.ArrayList();");        pw.println();        pw.println("    /**");        pw.println(                "    * Returns List of OperationDesc objects with this name");        pw.println("    */");        pw.println(                "    public static java.util.List getOperationDescByName(java.lang.String methodName) {");        pw.println(                "        return (java.util.List)_myOperations.get(methodName);");        pw.println("    }");        pw.println();        pw.println("    /**");        pw.println("    * Returns Collection of OperationDescs");        pw.println("    */");        pw.println(                "    public static java.util.Collection getOperationDescs() {");        pw.println("        return _myOperationsList;");        pw.println("    }");        pw.println();        // Initialize operation parameter names        pw.println("    static {");        pw.println("        org.apache.axis.description.OperationDesc _oper;");        pw.println("        org.apache.axis.description.FaultDesc _fault;");        pw.println(                "        org.apache.axis.description.ParameterDesc [] _params;");        List operations = binding.getBindingOperations();        for (int i = 0; i < operations.size(); ++i) {            BindingOperation bindingOper = (BindingOperation) operations.get(i);            Operation operation = bindingOper.getOperation();            OperationType type = operation.getStyle();            // These operation types are not supported.  The signature            // will be a string stating that fact.            if ((OperationType.NOTIFICATION.equals(type))                    || (OperationType.SOLICIT_RESPONSE.equals(type))) {                continue;            }            Parameters parameters =                    bEntry.getParameters(bindingOper.getOperation());            if (parameters != null) {                // The invoked java name of the bindingOper is stored.                String opName = bindingOper.getOperation().getName();                String javaOpName = Utils.xmlNameToJava(opName);                pw.println(                        "        _params = new org.apache.axis.description.ParameterDesc [] {");                for (int j = 0; j < parameters.list.size(); j++) {                    Parameter p = (Parameter) parameters.list.get(j);                    String modeStr;                    switch (p.getMode()) {                        case Parameter.IN:                            modeStr =                                    "org.apache.axis.description.ParameterDesc.IN";                            break;                        case Parameter.OUT:                            modeStr =                                    "org.apache.axis.description.ParameterDesc.OUT";                            break;                        case Parameter.INOUT:                            modeStr =                                    "org.apache.axis.description.ParameterDesc.INOUT";                            break;                        default :                            throw new IOException(                                    Messages.getMessage(                                            "badParmMode00",                                            (new Byte(p.getMode())).toString()));                    }                    // Get the QNames representing the parameter name and type                    QName paramName = p.getQName();                    QName paramType = Utils.getXSIType(p);                    // Is this parameter a header?                    String inHeader = p.isInHeader()                            ? "true"                            : "false";                    String outHeader = p.isOutHeader()                            ? "true"                            : "false";                    pw.println(                            "            "                            + "new org.apache.axis.description.ParameterDesc("                            + Utils.getNewQNameWithLastLocalPart(paramName) + ", " + modeStr + ", "                            + Utils.getNewQName(paramType) + ", "                            + Utils.getParameterTypeName(p) + ".class" + ", "                            + inHeader + ", " + outHeader + "), ");                }                pw.println("        };");                // Get the return name QName and type                QName retName = null;                QName retType = null;                if (parameters.returnParam != null) {                    retName = parameters.returnParam.getQName();                    retType = Utils.getXSIType(parameters.returnParam);                }                                String returnStr;                if (retName != null) {                    returnStr = Utils.getNewQNameWithLastLocalPart(retName);                } else {                    returnStr = "null";                }                pw.println(                        "        _oper = new org.apache.axis.description.OperationDesc(\""                        + javaOpName + "\", _params, " + returnStr + ");");                if (retType != null) {                    pw.println("        _oper.setReturnType("                            + Utils.getNewQName(retType) + ");");                    if ((parameters.returnParam != null)                            && parameters.returnParam.isOutHeader()) {                        pw.println("        _oper.setReturnHeader(true);");                    }                }                // If we need to know the QName (if we have a namespace or                // the actual method name doesn't match the XML we expect),                // record it in the OperationDesc                QName elementQName = Utils.getOperationQName(bindingOper,                        bEntry, symbolTable);                if (elementQName != null) {                    pw.println("        _oper.setElementQName("                            + Utils.getNewQName(elementQName) + ");");                }                // Find the SOAPAction.                String action = Utils.getOperationSOAPAction(bindingOper);                if (action != null) {                    pw.println("        _oper.setSoapAction(\"" + action + "\");");                }                pw.println("        _myOperationsList.add(_oper);");                pw.println("        if (_myOperations.get(\"" + javaOpName                        + "\") == null) {");                pw.println("            _myOperations.put(\"" + javaOpName                        + "\", new java.util.ArrayList());");                pw.println("        }");                pw.println("        ((java.util.List)_myOperations.get(\""

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -