2017-04-12 4 views
0

Ich möchte die Automatisierungsschnittstelle von Enterprise Architect (EA) verwenden, um Code aus meinem StateMachine-Diagramm gemäß dem StateMachine-Framework meiner Firma zu generieren.So rufen Sie Eintrag/Exit/Eigenschaft von Statusoperationen ab

Mit jedem Zustand möchte ich genau wissen, dass es sich bei der Operation um eine Eingabe- oder eine Exit-Aktion handelt. Bitte beachten Sie die Bilder für weitere Details.

enter image description here

enter image description here

Ich verwende unter Code-Schnipsel (C#), um die Aktion Art der Methode zu bekommen, aber es scheint keine Möglichkeit zu haben, das zu tun.

private void getElement(EA.Repository repository) 
    { 
     //repository.OpenDiagram(6); 
     EA.Diagram currentDiagram = repository.GetCurrentDiagram(); 

     var objs = currentDiagram.DiagramObjects; 
     for (short obj_i = 0; obj_i < objs.Count; ++obj_i) 
     { 
      EA.Element elem = repository.GetElementByID(objs.GetAt(obj_i)); 
      if(elem.Name == "State") //get only the state elments 
      { 
       var stateMethodList = elem.Methods; 
       for(short mt_i = 0; mt_i < stateMethodList.Count; ++mt_i) 
       { 
        EA.Method mt = stateMethodList.GetAt(mt_i); 
        EA.Parameter parameter = mt.Parameters.GetAt(index); //we can get the method's parameters using the EA.Method.Parameters attribute 
        string returnType = mt.ReturnType;     //we can get the method's return type using EA.Method.ReturnType attribute 

        //I want to get method's action type but the mt seems to be the common method type, and have no attribute name EA.Method.Actions and something like that. 
       } 
      } 
     } 

    } 

Ich verbringe viel Zeit, um den Aktionstyp der Methode zu finden, aber habe es noch nicht gefunden.

Antwort

1

mt.returntype wird entweder do, entry oder 10 sein.

+0

Ich tat das auch, aber mt.Stereotype gab leere Zeichenfolge zurück. :( –

+0

Ups. Das war in meinen Gedanken. Ich überprüfe es und korrigierte die Antwort. –

+0

Großartig, es ist OK jetzt. Vielen Dank, Ich habe alle Attribute von EA.Method aber nicht ReturnType versucht. Ich möchte um dir eine Stimme zu geben, aber es erfordert, dass ich 15 Reputationen habe, um das zu tun. " –

Verwandte Themen