Example #1
0
 /**
  * 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;
 }
Example #2
0
  /** 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