Example #1
0
  /**
   * 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);
  }
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
Example #3
0
  /**
   * 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("}");
  }