public void generateAsslScriptOnlyMain(List<List<Vertice>> listaCaminhos) {
   UseAsslFileHelper.deleteFiles();
   UseAsslFileHelper.getInstance().resetPahtCount();
   for (List<Vertice> caminho : listaCaminhos) {
     UseAsslFileHelper.getInstance().writeLine(generateOnlyMainPerPath(caminho));
     UseAsslFileHelper.getInstance().closeFile();
     UseAsslFileHelper.getInstance().incremetPathCount();
   }
 }
 public void generateAsslScriptsManiAndMethod(List<List<Vertice>> listaCaminhos) {
   UseAsslFileHelper.deleteFiles();
   UseAsslFileHelper.getInstance().resetPahtCount();
   for (List<Vertice> caminho : listaCaminhos) {
     task2AsslFunction(caminho);
     generateMain(caminho);
     UseAsslFileHelper.getInstance().closeFile();
     UseAsslFileHelper.getInstance().incremetPathCount();
   }
 }
 private void task2AsslFunction(List<Vertice> caminho) {
   for (Vertice vertice : caminho) {
     if (vertice.getVeriticeElement() instanceof AbstractTaskElement) {
       UseAsslFileHelper.getInstance().writeLine(vertice.getVeriticeElement().toString());
     }
   }
 }
  private void generateMain(List<Vertice> caminho) {
    String auxStr = "";
    String args = "";
    int qtdTab = 0;
    List<DataObject> listDataObjets = new ArrayList<DataObject>();

    for (int i = 0; i < caminho.size(); i++) {
      Vertice vertice = caminho.get(i);

      if (vertice.getVeriticeElement() instanceof AbstractTaskElement) {
        AbstractTaskElement currentTask = ((AbstractTaskElement) vertice.getVeriticeElement());
        createdataObjectList(currentTask.getDataInputList(), listDataObjets);
        createdataObjectList(currentTask.getDataOutputList(), listDataObjets);
        auxStr += getStrTab(qtdTab) + currentTask.getAsslCall();
      } else if (vertice.getVeriticeElement() instanceof ExclusiveGateway
          && ((AbstractGatewayElement) vertice.getVeriticeElement()).getKindGateway()
              == MyConstants.GATEWAY_FORK) {
        List<Edge> arestas =
            GraphHelper.getInstance()
                .getAllEdgeLinkedToVertice(vertice, MyConstants.SOURCE_VERTICE);
        for (Edge edge : arestas) {
          if (edge.getTargetVertice().equals(caminho.get(i + 1))) {
            auxStr += getStrTab(qtdTab) + edge.getAsslConditionComand();
            auxStr += getStrTab(qtdTab) + "begin";
            qtdTab++;
          }
        }
      } else if (vertice.getVeriticeElement() instanceof ExclusiveGateway
          && ((AbstractGatewayElement) vertice.getVeriticeElement()).getKindGateway()
              == MyConstants.GATEWAY_JOIN) {
        qtdTab--;
        auxStr += getStrTab(qtdTab) + "end;";
      } else if (vertice.getVeriticeElement() instanceof EndEvent) {
        auxStr += getStrTab(qtdTab) + "end;";
      }
    }
    if (!listDataObjets.isEmpty()) {
      args = "var ";
      for (DataObject dataObject : listDataObjets) {
        args += dataObject.toString() + ", ";
      }

      args = args.substring(0, args.length() - 2) + ";";
    }
    UseAsslFileHelper.getInstance().writeLine("procedure Main()" + args + "\nbegin\n" + auxStr);
  }