Making behavior method which takes a concept and returns nodes of that concept.

I'd like to have a method in a behavior:

sequence<node<C>> getThings(concept<C> ofConcept) {
    return this.model.nodes(ofConcept); // in reality, this is filtered more.
}

I'd then like to be able to call it, and get properly typed returned: 

sequence<node<Foo>> result = myNode.getThings(concept/Foo/);

I tried to simulate this with a custom SNodeOperation, but that seems to cause all sorts of trouble.  Is there a simple way to do this?

If not, I think one way to solve this is to add concepts for ConceptVariableDeclaration and ConceptVariableReference, which are analogous to the TypeVariable (Declaration/Reference) from BaseLanguage.  Does this sound like a reasonable feature request?

Thanks

1 comment
Comment actions Permalink

I already created this feature request some time ago, iff I understand you correctly: https://youtrack.jetbrains.com/issue/MPS-27392

0

Please sign in to leave a comment.