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(a)gmail.com>
À: "Moose-related development" <moose-dev(a)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(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
_______________________________________________
Moose-dev mailing list
Moose-dev(a)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."