From: Robert L. <rle...@us...> - 2007-02-15 16:47:32
|
Update of /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv1748/src/ccmtools/parser/assembly/metamodel Modified Files: Module.java Component.java Assembly.java QualifiedName.java ModelElement.java Model.java Log Message: Java assemblies Index: Component.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/Component.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Component.java 12 Feb 2007 16:01:13 -0000 1.3 --- Component.java 15 Feb 2007 16:46:41 -0000 1.4 *************** *** 27,30 **** --- 27,35 ---- name_ = name; } + + public QualifiedName getCcmName() + { + return idl_name_; + } void postProcessing( Assembly parent, Map<String, Component> components ) Index: Assembly.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/Assembly.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Assembly.java 14 Feb 2007 12:27:05 -0000 1.5 --- Assembly.java 15 Feb 2007 16:46:41 -0000 1.6 *************** *** 14,17 **** --- 14,18 ---- import java.util.Map; import java.util.Vector; + import ccmtools.parser.idl.metamodel.ComponentIDL.MComponentDef; /** *************** *** 32,35 **** --- 33,41 ---- private HashMap<String, Component> components_; + + public Map<String, Component> getComponents() + { + return components_; + } void postProcessing( Module parent, Map<String, Assembly> assemblies ) *************** *** 48,51 **** --- 54,69 ---- } } + + private MComponentDef ccmComponent_; + + void updateCcmModel(MComponentDef component) + { + ccmComponent_ = component; + } + + public MComponentDef getCcmComponent() + { + return ccmComponent_; + } public void prettyPrint( PrintStream out, String offset ) Index: Model.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/Model.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Model.java 15 Feb 2007 13:18:37 -0000 1.6 --- Model.java 15 Feb 2007 16:46:41 -0000 1.7 *************** *** 12,16 **** --- 12,20 ---- import java.io.PrintStream; import java.util.HashMap; + import java.util.List; import java.util.Vector; + import ccmtools.parser.idl.metamodel.BaseIDL.MContainer; + import ccmtools.parser.idl.metamodel.BaseIDL.MModuleDef; + import ccmtools.parser.idl.metamodel.ComponentIDL.MComponentDef; /** *************** *** 79,82 **** --- 83,137 ---- /** + * the key is a qualified IDL name (starting with "::") + */ + static HashMap<String, MComponentDef> ccm_component_repository = new HashMap<String, MComponentDef>(); + + static void updateCcmModel( List ccm_elements, List<ModelElement> this_elements, + String parent_name ) + { + for (Object root : ccm_elements) + { + if (root instanceof MModuleDef) + { + MModuleDef module = (MModuleDef) root; + String name = module.getIdentifier(); + boolean found = false; + for (ModelElement e : this_elements) + { + if (e instanceof Module && e.name().equals(name)) + { + ((Module) e).updateCcmModel(module); + found = true; + } + } + if (!found) + { + String pn = parent_name + IDL_SCOPE + name; + final List<ModelElement> dummy = new Vector<ModelElement>(); + updateCcmModel(module.getContentss(), dummy, pn); + } + } + else if (root instanceof MComponentDef) + { + MComponentDef component = (MComponentDef) root; + String name = component.getIdentifier(); + ccm_component_repository.put(parent_name + IDL_SCOPE + name, component); + for (ModelElement e : this_elements) + { + if (e instanceof Assembly && e.name().equals(name)) + { + ((Assembly) e).updateCcmModel(component); + } + } + } + } + } + + public void updateCcmModel( MContainer ccmModel ) + { + updateCcmModel(ccmModel.getContentss(), elements_, ""); + } + + /** * searches for an assembly description * Index: ModelElement.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/ModelElement.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ModelElement.java 15 Feb 2007 13:18:37 -0000 1.5 --- ModelElement.java 15 Feb 2007 16:46:41 -0000 1.6 *************** *** 27,30 **** --- 27,35 ---- } + public String name() + { + return name_; + } + public abstract void prettyPrint( PrintStream out, String offset ); Index: QualifiedName.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/QualifiedName.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** QualifiedName.java 13 Feb 2007 07:34:45 -0000 1.4 --- QualifiedName.java 15 Feb 2007 16:46:41 -0000 1.5 *************** *** 10,13 **** --- 10,15 ---- package ccmtools.parser.assembly.metamodel; + import ccmtools.parser.idl.metamodel.ComponentIDL.MComponentDef; + /** * a qualified name *************** *** 38,40 **** --- 40,63 ---- scope_ = scope; } + + /** + * returns the component (or null if we couldn't find it) + */ + public MComponentDef getCcmComponent() + { + if (qn_.startsWith(Model.IDL_SCOPE)) + { + return Model.ccm_component_repository.get(qn_); + } + ModelElement parent = scope_; + while (parent != null) + { + String key = parent.getGlobalName() + Model.IDL_SCOPE + qn_; + MComponentDef x = Model.ccm_component_repository.get(key); + if (x != null) + return x; + parent = parent.getParent(); + } + return Model.ccm_component_repository.get(Model.IDL_SCOPE + qn_); + } } Index: Module.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src/ccmtools/parser/assembly/metamodel/Module.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Module.java 14 Feb 2007 12:27:05 -0000 1.5 --- Module.java 15 Feb 2007 16:46:41 -0000 1.6 *************** *** 13,16 **** --- 13,17 ---- import java.util.Map; import java.util.Vector; + import ccmtools.parser.idl.metamodel.BaseIDL.MModuleDef; /** *************** *** 30,39 **** { parent_ = parent; ! for (int i = 0; i < children_.size(); ++i) { ! children_.get(i).postProcessing(this, assemblies); } } public void prettyPrint( PrintStream out, String offset ) { --- 31,45 ---- { parent_ = parent; ! for (ModelElement e : children_) { ! e.postProcessing(this, assemblies); } } + void updateCcmModel( MModuleDef module ) + { + Model.updateCcmModel(module.getContentss(), children_, getGlobalName()); + } + public void prettyPrint( PrintStream out, String offset ) { |