2016-03-31 2 views
2

Les utilisateurs de Soley Studio?
J'ai commencé à définir le métamodèle pour mon graphique. Je veux définir deux classes de noeuds (ProdFunction et ProdPart), qui étendent une autre classe de noeuds (ArchitectureRelated).Comment puis-je définir une classe de noeud, qui étend une autre classe de noeud, dans le métamodèle de Soley Studio?

Mais chaque fois que je vérifie les erreurs ou construire la solution, il me donne cette erreur:

"ArchitectureRelated" is a error type but a node type is expected

J'ai essayé des noms différents pour la classe, mais il n'a pas changé. Y a-t-il des mots-clés spéciaux pour définir un "type de noeud"? Le code pour mon nœud méta-modèle est:

node class ProdFunction extends ArchitectureRelated{ 
mode:string; 
name:string; 
} 

node class ProdPart extends ArchitectureRelated{ 
name:string; 
partnumber:int; 
hierLevel:int; 
} 

Répondre

2

Dans le métamodèle, vous ne pouvez étendre les classes définies. Par conséquent, vous devez définir ArchitectureRelated en tant que classe de noeud. D'après ce que je comprends, vous ne voulez pas créer d'instances de cette classe? Donc, je l'ai défini comme une classe abstract.

Rappelez-vous également que la superclasse la plus élevée doit s'étendre IdentifiableNode, IdentifiableDirectedEdge ou IdentifiableUndirectedEdge.

Je vous recommande d'utiliser votre superclasse ArchitectureRelated pour l'attribut name:string; et laissez hériter aux classes ProdFunction et ProdPart.

abstract node class ArchitectureRelated extends IdentifiableNode{ 
name:string; 
} 

node class ProdFunction extends ArchitectureRelated{ 
mode:string; 
} 

node class ProdPart extends ArchitectureRelated{ 
partnumber:int; 
hierLevel:int; 
} 

Vous pouvez trouver plus sur la définition d'un métamodèle ici: Soley Help Center (Metamodel)

+1

Merci, vous avez résolu mon problème. Plus d'erreurs! – hnnes