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

📄 javabeanwriter.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        for (int i = extendList.size() - 1; i >= 0; i--) {            TypeEntry te = (TypeEntry) extendList.elementAt(i);            // The names of the inherited parms are mangled            // in case they interfere with local parms.            String mangle = "";            if (i > 0) {                mangle = "_"                        + Utils.xmlNameToJava(te.getQName().getLocalPart())                        + "_";            }            // Process the attributes            Vector attributes = te.getContainedAttributes();            if (attributes != null) {                for (int j = 0; j < attributes.size(); j += 1) {                    ContainedAttribute attr = (ContainedAttribute) attributes.get(j);                    String name = getAttributeName(attr);                    String typeName = attr.getType().getName();                    // TODO - What about MinOccurs and Nillable?                    // Do they make sense here?                    if (attr.getOptional()) {                        typeName = Utils.getWrapperType(typeName);                    }                    paramTypes.add(typeName);                    paramNames.add(JavaUtils.getUniqueValue(                            helper.reservedPropNames, name));                }            }            // Process the elements            Vector elements = te.getContainedElements();            if (elements != null) {                for (int j = 0; j < elements.size(); j++) {                    ElementDecl elem = (ElementDecl) elements.get(j);                    if (elem.getAnyElement()) {                        if (!gotAny) {                            gotAny = true;                            paramTypes.add("org.apache.axis.message.MessageElement []");                            paramNames.add(Constants.ANYCONTENT);                        }                    } else {                        paramTypes.add(processTypeName(elem,elem.getType().getName()));                        String name = elem.getName() == null ? ("param" + i) : elem.getName();                        paramNames.add(JavaUtils.getUniqueValue(                            helper.reservedPropNames, name));                    }                }            }        }        if (isMixed && !isAny && !parentIsAny && !parentIsMixed) {            paramTypes.add("org.apache.axis.message.MessageElement []");            paramNames.add(Constants.ANYCONTENT);        }        // Set the index where the local params start        int localParams = paramTypes.size() - names.size() / 2;        // Now write the constructor signature        if (paramTypes.size() > 0) {            // Prevent name clash between local parameters and the            // parameters for the super class            if(localParams > 0) {                for (int j = 0; j < localParams; j++) {                    String name = (String) paramNames.elementAt(j);                    if(paramNames.indexOf(name, localParams)!=-1){                        paramNames.set(j, "_" + name);                    }                }            }            pw.println("    public " + className + "(");            for (int i = 0; i < paramTypes.size(); i++) {                pw.print("           " + paramTypes.elementAt(i) + " "                        + paramNames.elementAt(i));                if ((i + 1) < paramTypes.size()) {                    pw.println(",");                } else {                    pw.println(") {");                }            }            // Call the extended constructor to set inherited fields            if ((extendType != null) && (localParams > 0)) {                pw.println("        super(");                for (int j = 0; j < localParams; j++) {                    pw.print("            " + paramNames.elementAt(j));                    if ((j + 1) < localParams) {                        pw.println(",");                    } else {                        pw.println(");");                    }                }            }            // Set local fields directly            for (int j = localParams; j < paramNames.size(); j++) {                pw.println("        this." + paramNames.elementAt(j) + " = "                        + paramNames.elementAt(j) + ";");            }            pw.println("    }");            pw.println();        }    }    /**     * Writes the constructors for SimpleTypes.     * Writes a constructor accepting a string and     * a constructor accepting the simple java type.     */    protected void writeSimpleConstructors() {        // If this is a simple type,need to emit a string        // constructor and a value construtor.        if (!type.isSimpleType())            return;        pw.println("    // " + Messages.getMessage("needStringCtor"));        // Simple types without simpleValueTypes are derived classes.        // Inherit the simple constructor.        if (simpleValueTypes.size() == 0)        {           if (extendType != null)           {               // Find the java type of the most base type.               TypeEntry baseType = type;               while (true)               {                   TypeEntry superType = SchemaUtils.getBaseType(                       baseType, emitter.getSymbolTable());                   if (superType == null)                       break;                   else                       baseType = superType;               }               String baseJavaType = baseType.getName();               pw.println("    public " + className + "("                       + baseJavaType + " _value) {");               pw.println("        super(_value);");               pw.println("    }");               pw.println();           }        }        else if (isUnion() || simpleValueTypes.get(0).equals("java.lang.String")) {             pw.println("    public " + className                    + "(java.lang.String _value) {");            pw.println("        this._value = _value;");            pw.println("    }");            int i = 0;            for (Iterator iterator = simpleValueTypes.iterator();                 iterator.hasNext();) {                String typeName = (String) iterator.next();                if (typeName.equals("java.lang.String")) {                    i += 2;                    continue;                }                String capName = "_value";                if (isUnion()) {                    // names and simpleValueTypes should match as                    // union is over simple types                    String name = (String) names.get(i + 1);                    capName = Utils.capitalizeFirstChar(name);                }                pw.println("    public " + className + "(" + typeName                        + " _value) {");                pw.println("        set" + capName + "(_value);");                pw.println("    }");                pw.println();                i += 2;            }        } else if (simpleValueTypes.size() == 1) {            pw.println("    public " + className + "("                    + simpleValueTypes.get(0) + " _value) {");            pw.println("        this._value = _value;");            pw.println("    }");            pw.println("    public " + className                    + "(java.lang.String _value) {");            writeSimpleTypeGetter((String) simpleValueTypes.get(0), null,                    "this._value =");            pw.println("    }");            pw.println();        }    }    /**     * Method writeSimpleTypeGetter     *      * @param simpleValueType      * @param name                 * @param returnString         */    protected void writeSimpleTypeGetter(String simpleValueType, String name,                                         String returnString) {        // Make sure we wrap base types with its Object type        String wrapper = JavaUtils.getWrapper(simpleValueType);        if (wrapper != null) {            pw.println("        " + returnString + " new " + wrapper                    + "(_value)." + simpleValueType + "Value();");        } else {            if (simpleValueType.equals("byte[]")) {	        String encoder = getBinaryTypeEncoderName ("_value");                pw.println("        " + returnString                        + " " + encoder + ".decode(_value);");            } else if (simpleValueType.equals("org.apache.axis.types.URI")) {                pw.println("        try {");                pw.println("            " + returnString                        + " new org.apache.axis.types.URI(_value);");                pw.println("        }");                pw.println(                        "        catch (org.apache.axis.types.URI.MalformedURIException mue) {");                pw.println(                        "            throw new java.lang.RuntimeException(mue.toString());");                pw.println("       }");            } else if (simpleValueType.equals("java.util.Date")) {                pw.println("        try {");                pw.println(                        "            " + returnString                        + " (java.text.DateFormat.getDateTimeInstance()).parse(_value);");                pw.println("        }");                pw.println("        catch (java.text.ParseException e){");                pw.println(                        "            throw new java.lang.RuntimeException(e.toString());");                pw.println("        }");            } else if (simpleValueType.equals("java.util.Calendar")) {                pw.println("        java.util.Calendar cal =");                pw.println(                        "            (java.util.Calendar) new org.apache.axis.encoding.ser.CalendarDeserializer(");                pw.println(                        "                java.lang.String.class, org.apache.axis.Constants.XSD_STRING).makeValue(_value);");                pw.println("        " + returnString + " cal;");            } else if (enumerationTypes.contains(simpleValueType)) {                // we're generating code that will obtain a reference to an enumeration: use the                // class forString interface, not the constructor.  Bug 19069                pw.println("        " + returnString + " " + simpleValueType                        + ".fromString(_value);");            } else {                pw.println("        " + returnString + " new "                        + simpleValueType + "(_value);");            }        }    }    /**     * Method isUnion     *      * @return      */    private boolean isUnion() {        return this.simpleValueTypes.size() > 1;    }    /**     * Writes the toString method     * Currently the toString method is only written for     * simpleTypes.     */    protected void writeToStringMethod() {        // If this is a simple type, emit a toString        if (simpleValueTypes.size() == 0) {            return;        }        pw.println("    // " + Messages.getMessage("needToString"));        pw.println("    public java.lang.String toString() {");        if (isUnion() || simpleValueTypes.get(0).equals("java.lang.String")) {            pw.println("        return _value;");        } else {            String wrapper =                    JavaUtils.getWrapper((String) simpleValueTypes.get(0));            if (wrapper != null) {                pw.println("        return new " + wrapper                        + "(_value).toString();");            } else {                String simpleValueType0 = (String)simpleValueTypes.get(0);                 if (simpleValueType0.equals("byte[]")) {	            String encoder = getBinaryTypeEncoderName ("_value");                    pw.println(                            "        return _value == null ? null : " +			    encoder + ".encode(_value);");                } else if (simpleValueType0.equals("java.util.Calendar")) {                    pw.println(                            "        return _value == null ? null : new org.apache.axis.encoding.ser.CalendarSerializer().getValueAsString(_value, null);");                } else {                    pw.println(                            "        return _value == null ? null : _value.toString();");                }            }        }        pw.println("    }");        pw.println();    }    /**     * Method writeSimpleTypeSetter     *      * @param simpleValueType      */    protected void writeSimpleTypeSetter(String simpleValueType) {        String wrapper = JavaUtils.getWrapper(simpleValueType);        if (wrapper != null) {            pw.println("        this._value = new " + wrapper                    + "(_value).toString();");        } else {            if (simpleValueType.equals("byte[]")) {		String encoder = getBinaryTypeEncoderName ("_value");                pw.println(                        "        this._value = _value == null ? null : " +			encoder + ".encode(_value);");            } else if (simpleValueType.equals("java.util.Calendar")) {                pw.println(                        "        this._value = _value == null ? null : new org.apache.axis.encoding.ser.CalendarSerializer().getValueAsString(_value, null);");            } else {                pw.println(                        "        this._value = _value == null ? null : _value.toString();");            }        }    }    /**     * Writes the setter and getter methods     */    protected void writeAccessMethods() {        int j = 0;

⌨️ 快捷键说明

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