From: Robert L. <rle...@us...> - 2007-02-15 16:47:29
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv1748/src/ccmtools/generator/java/metamodel Modified Files: ComponentDef.java ProvidesDef.java Log Message: Java assemblies Index: ComponentDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/ComponentDef.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ComponentDef.java 15 Feb 2007 13:18:37 -0000 1.18 --- ComponentDef.java 15 Feb 2007 16:46:41 -0000 1.19 *************** *** 3,7 **** --- 3,10 ---- import java.io.File; import java.util.ArrayList; + import java.util.HashMap; + import java.util.Iterator; import java.util.List; + import java.util.Map; import java.util.Set; import java.util.TreeSet; *************** *** 11,19 **** --- 14,26 ---- import ccmtools.generator.java.templates.ComponentDefApplicationClassTemplate; import ccmtools.generator.java.templates.ComponentDefApplicationInterfaceTemplate; + import ccmtools.generator.java.templates.ComponentDefAssemblyClassTemplate; import ccmtools.generator.java.templates.ComponentDefContextClassTemplate; import ccmtools.generator.java.templates.ComponentDefContextInterfaceTemplate; import ccmtools.generator.java.templates.ComponentDefInterfaceTemplate; import ccmtools.parser.assembly.metamodel.Assembly; + import ccmtools.parser.assembly.metamodel.Component; import ccmtools.parser.assembly.metamodel.Model; + import ccmtools.parser.idl.metamodel.CcmModelHelper; + import ccmtools.parser.idl.metamodel.ComponentIDL.MComponentDef; import ccmtools.utils.SourceFile; import ccmtools.utils.Text; *************** *** 199,207 **** } ! public String generateAssemblyClass(Assembly assembly) { ! //return new ComponentDefAssemblyClassTemplate().generate(this); ! // TODO ! return new ComponentDefApplicationClassTemplate().generate(this); } --- 206,212 ---- } ! public String generateAssemblyClass() { ! return new ComponentDefAssemblyClassTemplate().generate(this); } *************** *** 217,229 **** } public List<SourceFile> generateAssemblySourceFiles( Model assemblies ) { ! Assembly assembly = getAssemblyDescription(assemblies, true); List<SourceFile> sourceFileList = new ArrayList<SourceFile>(); ! if (assembly != null) { String localPackageName = Text.joinList(File.separator, getJavaNamespaceList()); SourceFile applicationClass = new SourceFile(localPackageName, getIdentifier() ! + "Impl.java", generateAssemblyClass(assembly)); sourceFileList.add(applicationClass); } --- 222,236 ---- } + private Assembly assembly_; + public List<SourceFile> generateAssemblySourceFiles( Model assemblies ) { ! assembly_ = getAssemblyDescription(assemblies); List<SourceFile> sourceFileList = new ArrayList<SourceFile>(); ! if (assembly_ != null) { String localPackageName = Text.joinList(File.separator, getJavaNamespaceList()); SourceFile applicationClass = new SourceFile(localPackageName, getIdentifier() ! + "Impl.java", generateAssemblyClass()); sourceFileList.add(applicationClass); } *************** *** 231,251 **** } /** * searches for the assembly description * * @param assemblies the assembly model - * @param check true if we tell the user about unknown components * @return the assembly description (or null) */ ! Assembly getAssemblyDescription( Model assemblies, boolean check ) { ! String n = Text.joinList(Model.IDL_SCOPE, getIdlNamespaceList()); ! Assembly a = assemblies.getAssembly(n); ! if (a == null && check) { ! // TODO: how could we handle that? ! System.err.println("cannot find an assembly for component " + n); } ! return a; } --- 238,292 ---- } + private String getQualifiedCcmName() + { + return Text.joinList(Model.IDL_SCOPE, getJavaNamespaceList()) + Model.IDL_SCOPE + + getIdentifier(); + } + /** * searches for the assembly description * * @param assemblies the assembly model * @return the assembly description (or null) */ ! Assembly getAssemblyDescription( Model assemblies ) { ! return assemblies.getAssembly(getQualifiedCcmName()); ! } ! ! private HashMap<String, MComponentDef> assembly_local_components_; ! ! Map<String, MComponentDef> getAssemblyLocalComponents() ! { ! if (assembly_local_components_ == null) { ! assembly_local_components_ = new HashMap<String, MComponentDef>(); ! Map<String, Component> local_comps = assembly_.getComponents(); ! for (String key : local_comps.keySet()) ! { ! Component comp_decl = local_comps.get(key); ! MComponentDef comp_def = comp_decl.getCcmName().getCcmComponent(); ! if (comp_def == null) ! { ! throw new RuntimeException("cannot find component " + key + " of type " ! + comp_decl.getCcmName()); ! } ! assembly_local_components_.put(key, comp_def); ! } } ! return assembly_local_components_; ! } ! ! public Iterator getAssemblyAttributeDeclarations() ! { ! ArrayList<String> list = new ArrayList<String>(); ! for (String key : getAssemblyLocalComponents().keySet()) ! { ! MComponentDef comp_def = assembly_local_components_.get(key); ! String java_type = CcmModelHelper.getAbsoluteName(comp_def, "."); ! String code = TAB + "private " + java_type + " " + key + "_;"; ! list.add(code); ! } ! return list.iterator(); } Index: ProvidesDef.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/generator/java/metamodel/ProvidesDef.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** ProvidesDef.java 15 Feb 2007 13:18:37 -0000 1.18 --- ProvidesDef.java 15 Feb 2007 16:46:41 -0000 1.19 *************** *** 131,135 **** public List<SourceFile> generateAssemblySourceFiles( Model assemblies ) { ! Assembly assembly = component.getAssemblyDescription(assemblies, false); List<SourceFile> sourceFileList = new ArrayList<SourceFile>(); if (assembly != null) --- 131,135 ---- public List<SourceFile> generateAssemblySourceFiles( Model assemblies ) { ! Assembly assembly = component.getAssemblyDescription(assemblies); List<SourceFile> sourceFileList = new ArrayList<SourceFile>(); if (assembly != null) |