1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Executar arquivos a medida que forem solicitados

Olá a todos do GUJ, boa tarde.

Pessoal, minha dúvida é a seguinte. Imaginem que tenho N elementos onde a hierarquia entre estes é do tipo pai pra filho. Ou seja, pra cada elemento pai tenho apenas um único elemento filho.

O que eu gostaria era de executar o elemento pai (pai de todos os filhos e netos e etc) logo de entrada e os demais a medida que fossem sendo solicitados. Além disso, gostaria de ir exibindo o resultado de cada elemento que fosse sendo executado.

No código abaixo tento fazer o que descrevi acima. No entanto, ele funciona meio que ao contrário, ou seja, pedi primeiro a confirmação se quero executar os elementos filhos e mostra apenas o último resultado.

public String executeQueryVCD() throws Exception {
    String resultQuery = "";
    Scanner sc = new Scanner(System.in).useDelimiter("\r\n");

    for (ExtractsContentVCD e : sortList()) {
        if (e.getNameVCD().equalsIgnoreCase(e.getVCDMain())) {
           // Executo o elemento pai
            queryJena = new ExecuteQueryJena(e.getServiceURI(), e.getQueryVCD());
            resultQuery = queryJena.printQueryConsole() + "\n";
        } else {
           // Executo os demais elementos na medida que forem sendo solicitados
            System.out.print("Deseja processar o próximo arquivo? y/n: ");
            String resposta = sc.nextLine();
            if (resposta.trim().equalsIgnoreCase("y")) {
                queryJena = new ExecuteQueryJena(e.getServiceURI(), e.getQueryVCD());
                for (String vcde : getDestinationVCD(e)) {
                    System.out.print("Digite o nome para " + vcde + ": ");
                    String val = sc.nextLine();
                    queryJena.setParameterList(vcde + "," + val);
                }
                resultQuery = queryJena.printQueryConsole() + "\n";
            } else {
                break;
            }
        }
    }
    return resultQuery;
}

Para executar o código acima faço da seguinte maneira abaixo.

ExecuteQueryVCDS eQuery = new ExecuteQueryVCDS(elementsVCDS, fhv);
System.out.println(eQuery.executeQueryVCD());

Alguém sabe me dizer o que devo alterar para alcançar o objetivo que estou pretendendo alcançar? Desde já obrigado pela ajuda de todos.

  • Nesta Linha: if (resposta.trim().equalsIgnoreCase("y")) Troque-a por esta: if (resposta == "y" || resposta == "Y" ) { //Só troque está linha }

    OU usar a negação ( ! )pois acho eu que ele está ignorando caso seja Y faça assim if (!resposta.trim().equalsIgnoreCase("y"))

    José Lucas Moraes   29 de out de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java string ou faça a sua própria pergunta.