📄 javabeanwriter.java
字号:
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 + -