void genCode() throws IOException {
        if (!outputDirectory.exists()) {
            if (!outputDirectory.mkdirs()) {
                throw new IOException("unable to create output directory "
                        + outputDirectory);
            }
        }
        FileWriter c = new FileWriter(new File(outputDirectory, mName + ".c"));
        FileWriter h = new FileWriter(new File(outputDirectory, mName + ".h"));

        h.write("/**\n");
        h.write("* Licensed to the Apache Software Foundation (ASF) under one\n");
        h.write("* or more contributor license agreements.  See the NOTICE file\n");
        h.write("* distributed with this work for additional information\n");
        h.write("* regarding copyright ownership.  The ASF licenses this file\n");
        h.write("* to you under the Apache License, Version 2.0 (the\n");
        h.write("* \"License\"); you may not use this file except in compliance\n");
        h.write("* with the License.  You may obtain a copy of the License at\n");
        h.write("*\n");
        h.write("*     http://www.apache.org/licenses/LICENSE-2.0\n");
        h.write("*\n");
        h.write("* Unless required by applicable law or agreed to in writing, software\n");
        h.write("* distributed under the License is distributed on an \"AS IS\" BASIS,\n");
        h.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n");
        h.write("* See the License for the specific language governing permissions and\n");
        h.write("* limitations under the License.\n");
        h.write("*/\n");
        h.write("\n");

        c.write("/**\n");
        c.write("* Licensed to the Apache Software Foundation (ASF) under one\n");
        c.write("* or more contributor license agreements.  See the NOTICE file\n");
        c.write("* distributed with this work for additional information\n");
        c.write("* regarding copyright ownership.  The ASF licenses this file\n");
        c.write("* to you under the Apache License, Version 2.0 (the\n");
        c.write("* \"License\"); you may not use this file except in compliance\n");
        c.write("* with the License.  You may obtain a copy of the License at\n");
        c.write("*\n");
        c.write("*     http://www.apache.org/licenses/LICENSE-2.0\n");
        c.write("*\n");
        c.write("* Unless required by applicable law or agreed to in writing, software\n");
        c.write("* distributed under the License is distributed on an \"AS IS\" BASIS,\n");
        c.write("* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n");
        c.write("* See the License for the specific language governing permissions and\n");
        c.write("* limitations under the License.\n");
        c.write("*/\n");
        c.write("\n");

        h.write("#ifndef __" + mName.toUpperCase().replace('.', '_') + "__\n");
        h.write("#define __" + mName.toUpperCase().replace('.', '_') + "__\n");

        h.write("#include \"recordio.h\"\n");
        for (Iterator<JFile> i = mInclFiles.iterator(); i.hasNext();) {
            JFile f = i.next();
            h.write("#include \"" + f.getName() + ".h\"\n");
        }
        // required for compilation from C++
        h.write("\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n");

        c.write("#include <stdlib.h>\n"); // need it for calloc() & free()
        c.write("#include \"" + mName + ".h\"\n\n");

        for (Iterator<JRecord> i = mRecList.iterator(); i.hasNext();) {
            JRecord jr = i.next();
            jr.genCCode(h, c);
        }

        h.write("\n#ifdef __cplusplus\n}\n#endif\n\n");
        h.write("#endif //" + mName.toUpperCase().replace('.', '_') + "__\n");

        h.close();
        c.close();
    }
void genCode ( ) throws IOException { if ( ! outputDirectory . exists ( ) ) { if ( ! outputDirectory . mkdirs ( ) ) { throw new IOException ( "unable to create output directory " + outputDirectory ) ; } } FileWriter c = new FileWriter ( new File ( outputDirectory , mName + ".c" ) ) ; FileWriter h = new FileWriter ( new File ( outputDirectory , mName + ".h" ) ) ; h . write ( "/**\n" ) ; h . write ( "* Licensed to the Apache Software Foundation (ASF) under one\n" ) ; h . write ( "* or more contributor license agreements.  See the NOTICE file\n" ) ; h . write ( "* distributed with this work for additional information\n" ) ; h . write ( "* regarding copyright ownership.  The ASF licenses this file\n" ) ; h . write ( "* to you under the Apache License, Version 2.0 (the\n" ) ; h . write ( "* \"License\"); you may not use this file except in compliance\n" ) ; h . write ( "* with the License.  You may obtain a copy of the License at\n" ) ; h . write ( "*\n" ) ; h . write ( "*     http://www.apache.org/licenses/LICENSE-2.0\n" ) ; h . write ( "*\n" ) ; h . write ( "* Unless required by applicable law or agreed to in writing, software\n" ) ; h . write ( "* distributed under the License is distributed on an \"AS IS\" BASIS,\n" ) ; h . write ( "* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" ) ; h . write ( "* See the License for the specific language governing permissions and\n" ) ; h . write ( "* limitations under the License.\n" ) ; h . write ( "*/\n" ) ; h . write ( "\n" ) ; c . write ( "/**\n" ) ; c . write ( "* Licensed to the Apache Software Foundation (ASF) under one\n" ) ; c . write ( "* or more contributor license agreements.  See the NOTICE file\n" ) ; c . write ( "* distributed with this work for additional information\n" ) ; c . write ( "* regarding copyright ownership.  The ASF licenses this file\n" ) ; c . write ( "* to you under the Apache License, Version 2.0 (the\n" ) ; c . write ( "* \"License\"); you may not use this file except in compliance\n" ) ; c . write ( "* with the License.  You may obtain a copy of the License at\n" ) ; c . write ( "*\n" ) ; c . write ( "*     http://www.apache.org/licenses/LICENSE-2.0\n" ) ; c . write ( "*\n" ) ; c . write ( "* Unless required by applicable law or agreed to in writing, software\n" ) ; c . write ( "* distributed under the License is distributed on an \"AS IS\" BASIS,\n" ) ; c . write ( "* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" ) ; c . write ( "* See the License for the specific language governing permissions and\n" ) ; c . write ( "* limitations under the License.\n" ) ; c . write ( "*/\n" ) ; c . write ( "\n" ) ; h . write ( "#ifndef __" + mName . toUpperCase ( ) . replace ( '.' , '_' ) + "__\n" ) ; h . write ( "#define __" + mName . toUpperCase ( ) . replace ( '.' , '_' ) + "__\n" ) ; h . write ( "#include \"recordio.h\"\n" ) ; for ( Iterator < JFile > i = mInclFiles . iterator ( ) ; i . hasNext ( ) ; ) { JFile f = i . next ( ) ; h . write ( "#include \"" + f . getName ( ) + ".h\"\n" ) ; } h . write ( "\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n" ) ; c . write ( "#include <stdlib.h>\n" ) ; c . write ( "#include \"" + mName + ".h\"\n\n" ) ; for ( Iterator < JRecord > i = mRecList . iterator ( ) ; i . hasNext ( ) ; ) { JRecord jr = i . next ( ) ; jr . genCCode ( h , c ) ; } h . write ( "\n#ifdef __cplusplus\n}\n#endif\n\n" ) ; h . write ( "#endif //" + mName . toUpperCase ( ) . replace ( '.' , '_' ) + "__\n" ) ; h . close ( ) ; c . close ( ) ; }
Generate C++ code. This method only creates the requested file(s) and
spits-out file-level elements (such as include statements etc.)
record-level code is generated by JRecord.