コード例 #1
0
ファイル: StateMachineReader.java プロジェクト: UMLCE/UMLCE
  public static ArrayList<TransitionDetails> readVertices(Vertex vertex, SM smDetails) {
    State state = (State) vertex;
    ArrayList<TransitionDetails> transition = new ArrayList<>();
    EList<Transition> outgoingTransitions = state.getOutgoings();
    for (Transition trans : outgoingTransitions) {

      if (state.eClass() != UMLPackage.Literals.PSEUDOSTATE) {
        // System.out.println("Source : "+trans.getSource().getLabel());
        // System.out.println("Dest : "+trans.getTarget().getLabel());
        TransitionDetails temp = transitionDetails(trans);
        temp.setName(trans.getLabel());
        temp.setDest(trans.getTarget().getLabel());
        transition.add(temp);
      }
    }
    return transition;
  }
コード例 #2
0
ファイル: StateMachineReader.java プロジェクト: UMLCE/UMLCE
  public static void printStateMachine(ArrayList<SM> stateMachineDetails) {
    for (SM details : stateMachineDetails) {
      System.out.println("State Name : " + details.getName());
      ArrayList<TransitionDetails> trDetails = details.getTransitions();
      for (TransitionDetails trDetail : trDetails) {

        System.out.println("Transition Name : " + trDetail.getName());
        System.out.println("Dest : " + trDetail.getDest());
        System.out.println("Effect name : " + trDetail.getEffect().getName());
        System.out.println("Effect body : " + trDetail.getEffect().getBody());
        System.out.println("Guard name : " + trDetail.getGuard().getName());
        System.out.println("Guard body : " + trDetail.getGuard().getBody());

        System.out.println("Trigger Name : " + trDetail.getTrigger().getOpName());
      }
    }
  }
コード例 #3
0
ファイル: StateMachineReader.java プロジェクト: UMLCE/UMLCE
  public static TransitionDetails transitionDetails(Transition trans) {
    String condition = "";
    TransitionDetails transition = new TransitionDetails();

    /// ****** guard condition ***********************
    EList<Constraint> ownedRules = trans.getOwnedRules();
    com.mbe.umlce.dataobjects.stateMachine.Guard guard =
        new com.mbe.umlce.dataobjects.stateMachine.Guard();
    for (Constraint Rule : ownedRules) {

      ValueSpecification Specifications = Rule.getSpecification();
      guard.setName(Rule.getLabel());
      OpaqueExpression expr = (OpaqueExpression) Specifications;

      condition += expr.getBodies().toString();
      guard.setBody(removeSquareBrackets(condition));
      // condition = expr.getLanguages();
      //	System.out.println("Condition : "+condition);
    }
    transition.setGuard(guard);

    Effect effect = new Effect();
    String methodBody = null;
    if ((OpaqueBehavior) trans.getEffect() != null) {
      methodBody = "";
      effect.setName(trans.getEffect().getLabel());
      // methodBody += ("\nif ( "+removeSquareBrackets(condition)+" ){\n");
      methodBody +=
          removeSquareBrackets(((OpaqueBehavior) trans.getEffect()).getBodies().toString());
      // System.out.println("Effect : "+methodBody);
      effect.setBody(methodBody);
    }

    // Trigger yet to read//

    //
    transition.setEffect(effect);
    /*		TimeEvent timeEvent=null;
    		ChangeEvent changeEvent = null;
    */
    // Triggers reading
    CallEvent callEvent = null;
    Operation operation = null;
    EList<Trigger> trigger = trans.getTriggers();
    com.mbe.umlce.dataobjects.stateMachine.Trigger trig =
        new com.mbe.umlce.dataobjects.stateMachine.Trigger();
    for (Trigger triger : trigger) {
      // System.out.println("Triger : "+triger.getQualifiedName());
      // if(triger.getEvent().getName().contains("CallEvent")){
      callEvent = (CallEvent) (triger.getEvent());
      operation = callEvent.getOperation();

      if (operation != null) {

        // System.out.println("Operation : "+operation.getLabel());
        EList<Parameter> parameters = operation.getOwnedParameters();
        ArrayList<String> param = new ArrayList<>();
        ArrayList<String> paramClass = new ArrayList<>();

        for (Parameter pm : parameters) {
          param.add(pm.getLabel());
          paramClass.add(pm.getClass().getName());
          // System.out.println("Parameters : "+pm.getLabel());
        }
        trig.setOpName(operation.getLabel());
        trig.setOpParameters(param);
        trig.setParametersClass(paramClass);
      }
    }
    transition.setTrigger(trig);
    // }
    return transition;
  }