/** Generates the initialization. */
  private void generateInit(JavaWriter out) throws IOException {
    String className = getClassName();
    int p = className.lastIndexOf('.');
    if (p > 0) className = className.substring(p + 1);

    ArrayList<AmberField> fields = _embeddableType.getFields();

    for (Constructor ctor : _embeddableType.getBeanClass().getConstructors()) {
      out.println();
      // XXX: s/b actual access type?
      out.print("public ");

      out.print(className);
      out.print("(");

      Class[] args = ctor.getParameterTypes();
      for (int i = 0; i < args.length; i++) {
        if (i != 0) out.print(", ");

        out.printClass(args[i]);
        out.print(" a" + i);
      }
      out.println(")");
      out.println("{");
      out.pushDepth();

      out.print("super(");
      for (int i = 0; i < args.length; i++) {
        if (i != 0) out.print(", ");

        out.print("a" + i);
      }
      out.println(");");

      for (AmberField field : fields) {
        field.generatePostConstructor(out);
      }

      out.popDepth();
      out.println("}");
    }
  }