public void generateIncludes(ClassNode root, FormattedFileWriter writer)
            throws java.io.IOException {
        HashMap alreadyGenerated = new HashMap();

        writer.outputLine("#include \"net/sourceforge/jnipp/JNIEnvHelper.h\"");
        writer.outputLine("#include \"" + root.getCPPClassName() + "Proxy.h\"");

        if (proxyGenSettings.getUseRichTypes() == true) {
            writer.newLine(1);
            writer.outputLine("// includes for parameter and return type proxy classes");
            Iterator it = root.getDependencies();
            while (it.hasNext() == true) {
                ClassNode cn = (ClassNode) it.next();
                if (alreadyGenerated.get(cn.getFullyQualifiedCPPClassName()) == null && cn.needsProxy() == true) {
                    String headerFile = cn.getPackageName().replace('.', File.separatorChar);
                    if (headerFile.equals("") == false) {
                        headerFile += File.separatorChar;
                    }
                    headerFile += cn.getCPPClassName() + "Proxy.h";
                    writer.outputLine("#include \"" + headerFile + "\"");
                    alreadyGenerated.put(cn.getFullyQualifiedCPPClassName(), cn);
                }
            }
        }

        writer.newLine(1);
    }