/** * Returns the qualified class name of the super class, adjusted to add the 'descriptors' * sub-package. * * @return Returns the qualified class name of the super class */ private String getSuperClassName() { final String superClassName; if (_type.getSuperClass().getPackageName() == null || _type.getSuperClass().getPackageName().equals("")) { if (getPackageName() == null) { // no target package specified --> do not append package (=null) superClassName = _type.getSuperClass().getLocalName() + XMLConstants.DESCRIPTOR_SUFFIX; } else { // target package specified --> simply use it superClassName = getPackageName() + "." + _type.getSuperClass().getLocalName() + XMLConstants.DESCRIPTOR_SUFFIX; } } else { superClassName = _type.getSuperClass().getPackageName() + XMLConstants.DESCRIPTOR_PACKAGE + _type.getSuperClass().getLocalName() + XMLConstants.DESCRIPTOR_SUFFIX; } return superClassName; }
/** 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