netscape-revival
sun-java/classsrc/netscape/tools/jmc/JavaImplHeaderGen.java
// Copyright (c) 1995 Netscape Communications Corporation. All rights reserved.
package netscape.tools.jmc;
import netscape.tools.jmc.*;
import netscape.tools.jric.*;
import netscape.tools.ClassFileParser.*;
import java.io.*;
import java.util.Vector;
public
class JavaImplHeaderGen extends JMCGenerator {
public JavaImplHeaderGen(netscape.tools.jmc.Main global, ClassDef clazz) {
super(global, clazz);
}
protected String getFileName() {
return "M" + getImplName() + ".h";
}
protected String getHeaderString() {
return clazz.name + " module C-language header file\n * Generated by jmc";
}
protected void generateOutput() throws IOException {
int i;
String prefix = getImplName();
out.println("#ifndef _M" + prefix + "_H_");
out.println("#define _M" + prefix + "_H_\n");
out.println("#include \"M" + clazz.getPrefix() + ".h\"");
out.println("typedef struct " + getImplName()
+ "\t" + getImplName() + ";\n");
out.println("#ifdef __cplusplus");
out.println("extern \"C\" {");
out.println("#endif /* __cplusplus */\n");
Vector interfaces = getInterfaces(clazz);
printBlockComment("Factory Operations");
out.println("JRI_PUBLIC_API(" + prefix + "*)");
out.println(prefix + "Factory_Create(jint size);\n");
out.println("#ifdef __cplusplus");
out.println("} /* extern \"C\" */");
out.println("#endif /* __cplusplus */\n");
out.println("#endif /* _M" + prefix + "_H_ */");
}
//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//
}