xmf-xmodeler / XModeler

Contains the xmodeler sources
1 stars 0 forks source link

"Set Parents" does not work on classes which are not direct instances of XCore::Class #28

Open jgulden opened 10 years ago

jgulden commented 10 years ago

Invoking "Set Parents" by right-clicking on a class which instantiates a meta-class from a custom meta-package, only shows up a dialogue with one element "XCore::Object". Instead, a list of all accessible classes should show up.

The reason seems to be, that Package::availableContents(Classifier c) filters all available elements to be instances of the type c.

Package::availableContents(Classifier) is invoked from Classifier::availableParents(), which uses self.of() as filter-classifier c. In regular cases, this results in XCore::Class to be the filter type, which results in a list of all available classes.

However, in the described case, self.of() is a custom defined meta-type, of which no instances exist yet, so an empty list gets returned.

Presumably, the filter should always test on XCore::Class to be the type of the returned elements.

This leads to the following WORKAROUND:

change Classifier::availableParents() from

@Operation availableParents():Set(Classifier) let availableClassifiers = if owner <> null andthen owner.isKindOf(Package) then owner.availableContents( self.of() ) + XOCL.availableContents( self.of() ) else self.imports->iterate(i importedContents = Set{} | importedContents + i.contents()->select(i | i <> null andthen i <> self andthen i.of() = self.of())) end; allParents = self.allParents() in availableClassifiers->excluding(self)->select(c | not allParents->includes(c)) end end

to

@Operation availableParents():Set(Classifier) let availableClassifiers = if owner <> null andthen owner.isKindOf(Package) then owner.availableContents( XCore::Class ) + XOCL.availableContents( XCore::Class ) else self.imports->iterate(i importedContents = Set{} | importedContents + i.contents()->select(i | i <> null andthen i <> self andthen i.of() = self.of())) end; allParents = self.allParents() in availableClassifiers->excluding(self)->select(c | not allParents->includes(c)) end end

RobinTPotter commented 10 years ago

Hi jgulden - are you the guy that wrote the jjack java jackaudio bridge? do you still maintain it and where? sorry, totally the wrong place to do this!

jgulden commented 10 years ago

Hello - yes, but I'm no longer maintaining JJack. It once had been made part of the Frinika workstation (www.frinika.com), and was further developed there, but I don't find it among the current sources.

Regards, Jens

Am 04.08.2014 um 13:28 schrieb RobinTPotter:

Hi jgulden - are you the guy that wrote the jjack java jackaudio bridge? do you still maintain it and where? sorry, totally the wrong place to do this!

— Reply to this email directly or view it on GitHub https://github.com/xmf-xmodeler/XModeler/issues/28#issuecomment-51048487.

Dr. Jens Gulden Lehrstuhl fuer Wirtschaftsinformatik und Unternehmensmodellierung Institut fuer Informatik und Wirtschaftsinformatik (ICB) - Prof. Frank Universitaet Duisburg-Essen, Campus Essen Raum R09 R04 H35 tel [+49|0] 201/183-2719 fax [+49|0] 201/183-4011 www http://www.wi-inf.uni-duisburg-essen.de/FGFrank/

RobinTPotter commented 9 years ago

Thanks for the reply. Sorry it taken me so long to acknowledge you.

Thanks again Robin On 5 Aug 2014 10:07, "jgulden" notifications@github.com wrote:

Hello - yes, but I'm no longer maintaining JJack. It once had been made part of the Frinika workstation (www.frinika.com), and was further developed there, but I don't find it among the current sources.

Regards, Jens

Am 04.08.2014 um 13:28 schrieb RobinTPotter:

Hi jgulden - are you the guy that wrote the jjack java jackaudio bridge? do you still maintain it and where? sorry, totally the wrong place to do this!

Reply to this email directly or view it on GitHub < https://github.com/xmf-xmodeler/XModeler/issues/28#issuecomment-51048487>.

Dr. Jens Gulden Lehrstuhl fuer Wirtschaftsinformatik und Unternehmensmodellierung Institut fuer Informatik und Wirtschaftsinformatik (ICB) - Prof. Frank Universitaet Duisburg-Essen, Campus Essen Raum R09 R04 H35 tel [+49|0] 201/183-2719 fax [+49|0] 201/183-4011 www http://www.wi-inf.uni-duisburg-essen.de/FGFrank/

Reply to this email directly or view it on GitHub https://github.com/xmf-xmodeler/XModeler/issues/28#issuecomment-51169962 .