Hi,
On 11 May 2011, at 12:42, Nicolas Anquetil wrote:
I use Class.setContainer(Namespace) in VerveineJ
Indeed, this is what should be used.
But it is a bit strange that:
- NamedEntities have a ParentPackage relationship. Maybe this ParentPackage could be removed for the sake of consistency in the metamodel and we keep the more generic belongsTo (a ContainerEntity)
No. parentPackage is different than container. See below.
- then Type as the relationship "container" (a ContainerEntity) which is explicitly documented as: "Container is a namespace, not a package (Smalltalk)."
Why not call it Namespace in this case?
Because it can also be a Method in the case of Java. The comment says that for Smalltalk the container is explicitly a Namespace and not a Package.
And, again, why should we treat differently Namespaces and Packages?
Because they are different entities. Namespaces have semantic meaning in the language so they influence the unique name of the entity, while Packages are physical entities for packaging :). In Smalltalk the two are explicitly different. In C++ we have explicit Namespaces, but not so explicit Packages. In Java, we have both Namespace (what you define in your Java source), and Package (the folder structure), but they happen to overlap in naming (although one is with . and the other one is with /) so people tend to see them as packages only.
Cheers, Doru
nicolas
De: "Usman Bhatti" usman.bhatti@gmail.com À: "Moose-related development" moose-dev@iam.unibe.ch Envoyé: Mercredi 11 Mai 2011 11:55:40 Objet: [Moose-dev] Namespace and Packages
I am creating a C# extractor for Moose. I am using Fame for java to access Famix objects and populate their information (similar to VerveineJ). While creating Famix.Class objects for C# classes, I need to set parent namespace to represent the namespace that the class belongs to.
However, the Famix.Class only provides a single method to set the parent and that take a Famix.Package as a parameter. So, the following expression is an error for a Famix.Class object.
class.setParentPackage(Namespace)
Since, C# uses namespaces instead of Packages to organize classes, it would be good to set a Famix.Namespace to be the parent of a class. Does meta-model not provide a way that we can set Famix.Namespace as a parent of a class. I can see another method in the Famix.Class and that is SetContainer(ContainerEntity se). Can I use this method to set a Namespace to be the parent of a Class and keeping the parentPackage relationship empty?
thanks.
Usman
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
-- www.tudorgirba.com
"The coherence of a trip is given by the clearness of the goal."