/** * Adds the given Exception to this JConstructor's throws clause. * * @param exp The JClass representing the Exception. */ public void addException(final JClass exp) { if (exp == null) { return; } // -- make sure exception is not already added String expClassName = exp.getName(); for (int i = 0; i < _exceptions.size(); i++) { JClass jClass = _exceptions.elementAt(i); if (expClassName.equals(jClass.getName())) { return; } } // -- add exception _exceptions.addElement(exp); }
/** Initializes this DescriptorJClass with the required methods. */ private void init() { // Make sure that the Descriptor is extended XMLClassDescriptor even when // the user has specified a super class for all the generated classes String superClass = null; if (_config != null) { superClass = _config.getProperty(BuilderConfiguration.Property.SUPER_CLASS, null); } boolean extended = false; if (_type.getSuperClassQualifiedName() == null || _type.getSuperClassQualifiedName().equals(superClass)) { setSuperClass(XMLCLASS_DESCRIPTOR_IMPL); } else { if (_type.getSuperClass() == null) { setSuperClass(null); } else { extended = true; setSuperClass(getSuperClassName()); } } superClass = null; if (_type.getPackageName() != null && _type.getPackageName().length() > 0) { addImport(_type.getName()); if (extended) { if (_type.getSuperClass() != null) { addImport(getSuperClassName()); } } } addField(new JField(JType.BOOLEAN, "elementDefinition")); addField(new JField(SGTypes.String, "nsPrefix")); addField(new JField(SGTypes.String, "nsURI")); addField(new JField(SGTypes.String, "xmlName")); // -- if there is a super class, the identity field must remain // -- the same than the one in the super class addField(new JField(XML_FIELD_DESCRIPTOR_CLASS, "identity")); // -- create default constructor addDefaultConstructor(extended); // jsc.add("Class[] emptyClassArgs = new Class[0];"); // jsc.add("Class[] classArgs = new Class[1];"); // ---------------------------------------------/ // - Methods Defined by XMLClassDescriptorImpl -/ // ---------------------------------------------/ addXMLClassDescriptorImplOverrides(); // -----------------------------------------/ // - Methods Defined by XMLClassDescriptor -/ // -----------------------------------------/ addXMLClassDescriptorOverrides(); // --------------------------------------/ // - Methods defined by ClassDescriptor -/ // --------------------------------------/ addClassDescriptorOverrides(extended); } // -- createSource
/** * Prints this JConstructor to the provided JSourceWriter. * * @param jsw The JSourceWriter to print the constructor to. */ public void print(final JSourceWriter jsw) { // -- print annotations printAnnotations(jsw); if (_modifiers.isPrivate()) { jsw.write("private"); } else if (_modifiers.isProtected()) { jsw.write("protected"); } else { jsw.write("public"); } jsw.write(' '); jsw.write(_declaringClass.getLocalName()); jsw.write('('); // -- any parameter annotations? boolean parameterAnnotations = false; for (JParameter jParameter : _params.values()) { if (jParameter.hasAnnotations()) { parameterAnnotations = true; break; } } // -- print parameters if (parameterAnnotations) { jsw.indent(); } int parameterCount = 0; for (JParameter jParameter : _params.values()) { if (parameterCount > 0) { jsw.write(", "); } if (parameterAnnotations) { jsw.writeln(); } jParameter.printAnnotations(jsw); String typeAndName = jParameter.toString(); jsw.write(typeAndName); parameterCount++; } if (parameterAnnotations) { jsw.unindent(); } jsw.write(")"); if (_exceptions.size() > 0) { jsw.writeln(); jsw.write("throws "); for (int i = 0; i < _exceptions.size(); i++) { if (i > 0) { jsw.write(", "); } JClass jClass = _exceptions.elementAt(i); jsw.write(jClass.getName()); } } jsw.writeln(" {"); _sourceCode.print(jsw); if (!jsw.isNewline()) { jsw.writeln(); } jsw.writeln("}"); }