フォーラム一覧 - トピック一覧 astah*の使い方 Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | 投稿するにはまず登録を |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | トピック |
---|---|
eiten | 投稿日時: 2016-1-4 15:16 |
新米 登録日: 2016-1-4 居住地: 投稿: 4 |
Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について 初めて質問をさせていただきます。
Astah-APIを利用してシーケンス図内に存在するメッセージとそれに割り当てられた操作の名称・引数・返り値を取得したいと思い、以下のようなコードを作成したのですが、メッセージを取得することはできるものの、割り当てられた操作を取得することがうまくできていません。 具体的には変数iOperationの値がnullとなっていて、その操作内の引数を取得することができません。 シーケンス図内のメッセージに割り当てられた操作を取得することは不可能なのでしょうか。 可能な場合は、どのようにすれば良いのでしょうか。 以下のソースコードはメッセージ内の操作を取得しようとしたメソッドです(一部抜粋) private ArrayList<String> searchExistingSequenceDiagramNameList(String className, String operationFullName, AstahProject project){ ArrayList<String> existingSequenceDiagramList = new ArrayList<String>(); try{ for(AstahSequenceDiagram sequenceDiagram : project.getSequenceDiagramList()){ try{ int lifelineNum = 0; for (lifelineNum = 0; lifelineNum < sequenceDiagram.getISequenceDiagram().getInteraction().getLifelines().length; lifelineNum++){ if(sequenceDiagram.getISequenceDiagram().getInteraction().getLifelines()[lifelineNum].getBase().getName().equals(className) ){ try{ int messageNum = 0; for (messageNum = 0; messageNum < sequenceDiagram.getISequenceDiagram().getInteraction().getLifelines()[lifelineNum].getFragments().length; messageNum++){ try{ if (sequenceDiagram.getISequenceDiagram().getInteraction().getLifelines()[lifelineNum].getFragments()[messageNum] instanceof IMessage){ IMessage iMessage = (IMessage)sequenceDiagram.getISequenceDiagram().getInteraction().getLifelines()[lifelineNum].getFragments()[messageNum]; IOperation iOperation = iMessage.getOperation(); //この値がnullとなっていて、うまく割り当てられた操作を取得できません if (iOperation != null){ if (getOperationFullName(iOperation).equals(operationFullName)){ existingSequenceDiagramList.add(sequenceDiagram.getISequenceDiagram().getName()); } } } }catch(NullPointerException e){ e.printStackTrace(); } } }catch(NullPointerException e){ e.printStackTrace(); } } } }catch(NullPointerException e){ e.printStackTrace(); } } }catch(NullPointerException e){ e.printStackTrace(); } return existingSequenceDiagramList; } //こちらのメソッドはiOperationが正しく取得できていれば正しく動くことを確認済みです private String getOperationFullName(IOperation iOperation){ String operationFullName = iOperation.getName() + "("; for (int i = 0; i < iOperation.getParameters().length; i++){ if (i != 0){ operationFullName += ", "; } operationFullName += iOperation.getParameters()[i].getName() + " : " + iOperation.getParameters()[i].getType().getName(); } operationFullName += ") : " + iOperation.getReturnType().getName(); return operationFullName; } |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
» Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | eiten | 2016-1-4 15:16 |
Re: Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | midori | 2016-1-5 13:55 |
Re: Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | eiten | 2016-1-6 0:07 |
Re: Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | midori | 2016-1-6 11:38 |
Re: Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | eiten | 2016-1-7 16:20 |
Re: Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | midori | 2016-1-8 12:03 |
Re: Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | eiten | 2016-1-9 13:56 |
Re: Astah-APIにおけるシーケンス図内のメッセージに割り当てられた操作の取得について | midori | 2016-1-12 9:56 |
投稿するにはまず登録を | |