From: Robert L. <rle...@us...> - 2007-02-14 12:27:18
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv14714/src/ccmtools/generator/java Modified Files: Main.java JavaComponentGenerator.java CommandLineParameters.java Log Message: ccm assembly metamodel + Java generator Index: JavaComponentGenerator.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/JavaComponentGenerator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JavaComponentGenerator.java 15 Jan 2007 16:42:24 -0000 1.1 --- JavaComponentGenerator.java 14 Feb 2007 12:27:04 -0000 1.2 *************** *** 4,8 **** import java.util.List; import java.util.logging.Logger; - import ccmtools.CcmtoolsException; import ccmtools.Constants; --- 4,7 ---- *************** *** 13,16 **** --- 12,16 ---- import ccmtools.generator.java.metamodel.JavaLocalInterfaceGeneratorElement; import ccmtools.generator.java.metamodel.ModelRepository; + import ccmtools.parser.assembly.metamodel.Model; import ccmtools.ui.UserInterfaceDriver; import ccmtools.utils.SourceFileHelper; *************** *** 24,27 **** --- 24,28 ---- public static final String CLIENT_LIB_GENERATOR_ID = "clientlib"; public static final String CORBA_COMPONENT_GENERATOR_ID = "remote"; + public static final String ASSEMBLY_GENERATOR_ID = "assembly"; /** UI driver for generator messages */ *************** *** 54,58 **** ! public void generate(ModelRepository javaModel) throws CcmtoolsException { logger.fine("enter"); --- 55,59 ---- ! public void generate(ModelRepository javaModel, Model assemblies) throws CcmtoolsException { logger.fine("enter"); *************** *** 79,82 **** --- 80,87 ---- generateApplication(javaModel); } + else if (generatorId.equals(ASSEMBLY_GENERATOR_ID)) + { + generateAssembly(javaModel, assemblies); + } } logger.fine("leave"); *************** *** 168,172 **** logger.fine("leave"); } ! public void generateClientLibComponent(ModelRepository javaModelRepo) --- 173,202 ---- logger.fine("leave"); } ! ! public void generateAssembly(ModelRepository javaModelRepo, Model assemblies) ! throws CcmtoolsException ! { ! logger.fine("enter"); ! try ! { ! List<JavaApplicationGeneratorElement> generatorElements = ! new ArrayList<JavaApplicationGeneratorElement>(); ! generatorElements.addAll(javaModelRepo.findAllProvides()); ! generatorElements.addAll(javaModelRepo.findAllComponents()); ! generatorElements.addAll(javaModelRepo.findAllHomes()); ! ! // Save all source file objects ! for(JavaApplicationGeneratorElement element : generatorElements) ! { ! SourceFileHelper.writeApplicationFiles(uiDriver, parameters.getOutDir(), ! element.generateAssemblySourceFiles(assemblies)); ! } ! } ! catch (Exception e) ! { ! throw new CcmtoolsException("[Java Assembly Generator] " + e.getMessage()); ! } ! logger.fine("leave"); ! } public void generateClientLibComponent(ModelRepository javaModelRepo) Index: Main.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/Main.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Main.java 19 Jan 2007 12:07:30 -0000 1.9 --- Main.java 14 Feb 2007 12:27:04 -0000 1.10 *************** *** 4,8 **** import java.util.Iterator; import java.util.logging.Logger; - import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; --- 4,7 ---- *************** *** 12,20 **** import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; - import ccmtools.CcmtoolsException; import ccmtools.CodeGenerator.CcmGraphTraverser; import ccmtools.CodeGenerator.GraphTraverser; import ccmtools.generator.java.metamodel.ModelRepository; import ccmtools.parser.idl.ParserManager; import ccmtools.parser.idl.metamodel.BaseIDL.MContainer; --- 11,19 ---- import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import ccmtools.CcmtoolsException; import ccmtools.CodeGenerator.CcmGraphTraverser; import ccmtools.CodeGenerator.GraphTraverser; import ccmtools.generator.java.metamodel.ModelRepository; + import ccmtools.parser.assembly.metamodel.Model; import ccmtools.parser.idl.ParserManager; import ccmtools.parser.idl.metamodel.BaseIDL.MContainer; *************** *** 60,63 **** --- 59,64 ---- setCcmtoolsProperties(); JavaComponentGenerator generator = new JavaComponentGenerator(parameters, uiDriver); + + Model assemblies = ccmtools.parser.assembly.Main.parse(parameters.getAssemblyFiles()); for (Iterator i = parameters.getIdlFiles().iterator(); i.hasNext();) *************** *** 78,82 **** // Run the Java component generator which can handle all of // the different generator flags (-iface, -local, -app, -clientlib, etc.) ! generator.generate(javaModel); } } --- 79,83 ---- // Run the Java component generator which can handle all of // the different generator flags (-iface, -local, -app, -clientlib, etc.) ! generator.generate(javaModel, assemblies); } } *************** *** 137,140 **** --- 138,143 ---- options.addOption(JavaComponentGenerator.CORBA_COMPONENT_GENERATOR_ID, false, "Run the Java CORBA component generator"); + options.addOption(JavaComponentGenerator.ASSEMBLY_GENERATOR_ID, + false, "Run the Java assembly generator"); options.addOption("noexit", false, "Don't exit Java VM with error status"); *************** *** 193,198 **** --- 196,208 ---- if (cmd.hasOption(JavaComponentGenerator.APPLICATION_GENERATOR_ID)) { + if (cmd.hasOption(JavaComponentGenerator.ASSEMBLY_GENERATOR_ID)) + throw new ParseException("cannot use impl. skeletons"+ + " and assemblies together"); parameters.getGeneratorIds().add(JavaComponentGenerator.APPLICATION_GENERATOR_ID); } + else if (cmd.hasOption(JavaComponentGenerator.ASSEMBLY_GENERATOR_ID)) + { + parameters.getGeneratorIds().add(JavaComponentGenerator.ASSEMBLY_GENERATOR_ID); + } if (cmd.hasOption(JavaComponentGenerator.INTERFACE_GENERATOR_ID)) *************** *** 241,245 **** for(int i = 0; i < arguments.length; i++) { ! parameters.getIdlFiles().add(arguments[i]); } --- 251,261 ---- for(int i = 0; i < arguments.length; i++) { ! String x = arguments[i].toLowerCase(); ! if(x.endsWith(".idl")) ! parameters.getIdlFiles().add(arguments[i]); ! else if(x.endsWith(".assembly")) ! parameters.getAssemblyFiles().add(arguments[i]); ! else ! throw new ParseException("unknown file type: "+arguments[i]); } Index: CommandLineParameters.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/CommandLineParameters.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CommandLineParameters.java 10 Aug 2006 20:21:59 -0000 1.1 --- CommandLineParameters.java 14 Feb 2007 12:27:04 -0000 1.2 *************** *** 24,27 **** --- 24,30 ---- private List<String> idlFiles = new ArrayList<String>(); + /** List of assembly input files */ + private List<String> assemblyFiles = new ArrayList<String>(); + // Parameter getter and setter methods ------------------------------------ *************** *** 60,63 **** --- 63,72 ---- } + + public List<String> getAssemblyFiles() + { + return assemblyFiles; + } + public List<String> getGeneratorIds() *************** *** 74,77 **** --- 83,87 ---- checkOutputPath(); checkIdlFiles(); + checkAssemblyFiles(); } *************** *** 93,108 **** /** * Check if the given IDL file exists. * @throws CcmtoolsException */ ! private void checkIdlFiles() ! throws CcmtoolsException { ! for(String idlFile : getIdlFiles()) ! { ! if(!isExistingFile(idlFile, getIncludePaths())) ! { ! throw new CcmtoolsException("Invalid IDL input file " + idlFile); ! } ! } } --- 103,132 ---- /** * Check if the given IDL file exists. + * * @throws CcmtoolsException */ ! private void checkIdlFiles() throws CcmtoolsException { ! for (String idlFile : getIdlFiles()) ! { ! if (!isExistingFile(idlFile, getIncludePaths())) ! { ! throw new CcmtoolsException("Invalid IDL input file " + idlFile); ! } ! } ! } ! ! /** ! * Check if the given assembly file exists. ! * ! * @throws CcmtoolsException ! */ ! private void checkAssemblyFiles() throws CcmtoolsException ! { ! for (String f : getAssemblyFiles()) ! { ! if (f == null || !(new File(f)).exists()) ! throw new CcmtoolsException("Invalid assembly input file " + f); ! } } *************** *** 161,164 **** --- 185,193 ---- buffer.append("IDL input files: ").append(idlFile).append("\n"); } + + for(String f : getAssemblyFiles()) + { + buffer.append("assembly input files: ").append(f).append("\n"); + } return buffer.toString(); |