CDDef { public void generateOutputFiles(String outputDirectory, String behCodeType) throws Exception {{ System.out.println("Generating files in the directory '" + outputDirectory + "':"); String cdFileName, docFileName, preprocessorFileName, initFileName, validateFileName; if (behCodeType.equals("DJ")) { cdFileName = "X2J.java"; docFileName = "X2Jdoc.java"; preprocessorFileName = "X2Jpreprocessor.java"; initFileName = "X2Jinit.java"; validateFileName = "X2Jvalidate.java"; } else { cdFileName = "X2J.cd"; docFileName = "X2Jdoc.beh"; preprocessorFileName = "X2Jpreprocessor.beh"; initFileName = "X2Jinit.beh"; validateFileName = "X2Jvalidate.beh"; } System.out.println("\tClass-dictionary file: " + cdFileName + ",\n" + "\tBehavior files: " + docFileName + ", " + preprocessorFileName + ", " + initFileName + ", " + validateFileName + "."); outputDirectory = outputDirectory + File.separatorChar; cdFileName = outputDirectory + cdFileName; docFileName = outputDirectory + docFileName; preprocessorFileName = outputDirectory + preprocessorFileName; initFileName = outputDirectory + initFileName; validateFileName = outputDirectory + validateFileName; String errors; // Create the methods for the XMLDoc class and other basic methods errors = GenerateBasicMethods.generateXMLDocCode(docFileName, behCodeType); if (!errors.equals("")) throw new Exception(errors); errors = GenerateBasicMethods.generatePreprocessorCode(preprocessorFileName, behCodeType); if (!errors.equals("")) throw new Exception(errors); // Traverse the schema definition to generate the cd, and the // initialization & validations visitors for the XML instance document GenerateCDVisitor cv = new GenerateCDVisitor(cdFileName, behCodeType); printClasses(cv); errors = cv.getErrors(); if (!errors.equals("")) throw new Exception(errors); GenerateInitsVisitor iv = new GenerateInitsVisitor(initFileName, behCodeType); printInits(iv); errors = iv.getErrors(); if (!errors.equals("")) throw new Exception(errors); GenerateValidationsVisitor bv = new GenerateValidationsVisitor(validateFileName, behCodeType); printValidations(bv); errors = bv.getErrors(); if (!errors.equals("")) throw new Exception(errors); }} traversal printClasses(GenerateCDVisitor) { bypassing {-> *,tail,*, -> CDDef,root_element,*, -> CDDef,global_elements,*, -> CDDef,global_attributes,*, -> CDDef,global_groups,*, -> CDDef,global_attribute_groups,*} to *; } traversal printInits(GenerateInitsVisitor) { bypassing {-> *,tail,*, -> CDDef,root_element,*, -> CDDef,global_elements,*, -> CDDef,global_attributes,*, -> CDDef,global_groups,*, -> CDDef,global_attribute_groups,*} to *; } traversal printValidations(GenerateValidationsVisitor) { bypassing {-> *,tail,*, -> CDDef,root_element,*, -> CDDef,global_elements,*, -> CDDef,global_attributes,*, -> CDDef,global_groups,*, -> CDDef,global_attribute_groups,*} to *; } // use for debugging public void print() bypassing -> *,tail,* to * (DisplayVisitor); }