private void generateCtors(ClassNode root, FormattedFileWriter writer)
            throws java.io.IOException {
        writer.outputLine("// constructors");
        writer.outputLine(root.getCPPClassName() + "Proxy(jobject obj);");
        Iterator it = root.getConstructors();
        while (it.hasNext() == true) {
            int currentIndex = 0;
            MethodNode node = (MethodNode) it.next();
            writer.output(root.getCPPClassName() + "Proxy(");
            Iterator params = node.getParameterList();
            for (int count = 0; params.hasNext() == true; ++count) {
                ClassNode currentParam = (ClassNode) params.next();
                if (proxyGenSettings.getUseRichTypes() == true) {
                    if (currentParam.getFullyQualifiedClassName().equals(root.getFullyQualifiedClassName()) == true && count == 0 && params.hasNext() == false) {
                        writer.output(currentParam.getJNITypeName(proxyGenSettings.getProject().getUsePartialSpec()) + "& p" + currentIndex++);
                    } else {
                        writer.output(currentParam.getJNITypeName(proxyGenSettings.getProject().getUsePartialSpec()) + " p" + currentIndex++);
                    }
                } else {
                    writer.output(currentParam.getPlainJNITypeName() + " p" + currentIndex++);
                }
                if (params.hasNext() == true) {
                    writer.output(", ");
                }
            }

            writer.outputLine(");");
        }

        writer.newLine(1);
    }