public void recuperarDados(String enderecoBase, String repositorio, String projetoNome) { modelo = recuperaModeloSemantico(repositorio, enderecoBase); projeto = new Projeto(); projeto.setNome(projetoNome); projeto.setDescricao("Projeto importado da PGDS"); projetoDao.salvar(projeto); pacoteDefault = new Pacote(); pacoteDefault.setNome("Default"); pacoteDefault.setProjeto(projeto); pacoteDao.salvar(pacoteDefault); StringBuilder sparl = new StringBuilder(); /* Importa Classes */ sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> "); sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "); sparl.append("select distinct ?individuo"); sparl.append(" WHERE { "); sparl.append(" ?individuo rdf:type onto:Classe"); sparl.append(" . "); sparl.append("} order by ?individuo"); List<String> classes = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo)); for (String string : classes) { classeDao.salvar(stringToClasse(string)); } /* Importa Módulos */ sparl = new StringBuilder(); sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> "); sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "); sparl.append("select distinct ?individuo ?descricao ?pacote"); sparl.append(" WHERE { "); sparl.append(" ?individuo rdf:type onto:Modulo"); sparl.append(" . "); sparl.append("?individuo onto:descricao ?descricao"); sparl.append(" . "); sparl.append("} order by ?individuo"); List<String> pacotes = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo)); for (String string : pacotes) { pacoteDao.salvar(stringToPacote(string)); } /* Importa Casos de Uso */ sparl = new StringBuilder(); sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> "); sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "); sparl.append("select distinct ?individuo ?descricao ?pacote"); sparl.append(" WHERE { "); sparl.append(" ?individuo rdf:type onto:CasoUso"); sparl.append(" . "); sparl.append("?individuo onto:descricao ?descricao"); sparl.append(" . "); sparl.append("?individuo onto:prioridade ?pacote"); sparl.append(" . "); sparl.append("} order by ?individuo"); List<String> casosUso = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo)); for (String string : casosUso) { casoUsoDao.salvar(stringToCasoUso(string)); } /* Importa Requisitos */ sparl = new StringBuilder(); sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> "); sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "); sparl.append("select distinct ?individuo ?descricao ?prioridade"); sparl.append(" WHERE { "); sparl.append(" ?individuo rdf:type onto:Requisito"); sparl.append(" . "); sparl.append("?individuo onto:descricao ?descricao"); sparl.append(" . "); sparl.append("?individuo onto:prioridade ?prioridade"); sparl.append(" . "); sparl.append("} order by ?individuo"); List<String> requisitos = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo)); for (String string : requisitos) { requisitoDao.salvar(stringToRequisito(string)); } // adicionaDependenciasEntreRequisitos(); }
public Requisito stringToRequisito(String string) { Requisito requisito = new Requisito(); int indexInicio, indexFim; /* Adiciona Identificador */ indexInicio = string.indexOf("#") + 1; indexFim = string.indexOf(">"); String identificador = string.substring(indexInicio, indexFim); requisito.setIdentificador(identificador); /* Adiciona Descrição */ indexInicio = string.indexOf("\"", string.indexOf("?descricao")); indexFim = string.indexOf("^^", indexInicio); String descricao = string.substring(indexInicio + 1, indexFim - 1); requisito.setDescricao(descricao); /* Adiciona Prioridade */ indexInicio = string.indexOf("\"", string.indexOf("?prioridade")); indexFim = string.indexOf("^^", indexInicio); String prioridade = string.substring(indexInicio + 1, indexFim - 1); if (prioridade.equals("Alta")) { requisito.setPrioridade(Prioridade.ALTA); } else { if (prioridade.equals("Baixa")) { requisito.setPrioridade(Prioridade.BAIXA); } else { requisito.setPrioridade(Prioridade.MEDIA); } } /* Adiciona Responsável */ Set<RecursoHumano> responsaveis = new HashSet<RecursoHumano>(); responsaveis.add(NucleoContexto.recuperarUsuarioLogado().getRecursoHumano()); requisito.setResponsaveis(responsaveis); /* Adiciona Projeto */ requisito.setProjeto(projeto); /* Adiciona Tipo de Requisito */ if (requisito.getIdentificador().contains("RF")) { requisito.setTipoRequisito(TipoRequisito.FUNCIONAL); } else { if (requisito.getIdentificador().contains("RNF")) { requisito.setTipoRequisito(TipoRequisito.NAOFUNCIONAL); } else { requisito.setTipoRequisito(TipoRequisito.REGRADENEGOCIO); } } StringBuilder sparl; /* Adiciona Casos de Uso */ sparl = new StringBuilder(); sparl.append(" PREFIX onto: <http://localhost/ontologies/SE/onto.owl#> "); sparl.append(" PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "); sparl.append("select distinct ?casouso"); sparl.append(" WHERE { "); sparl.append(" ?individuo rdf:type onto:Requisito"); sparl.append(" . "); sparl.append(" ?individuo onto:atendidoPorCasoUso ?casouso"); sparl.append(" . "); sparl.append(" ?individuo ?p onto:" + requisito.getIdentificador()); sparl.append("} order by ?casouso"); List<String> casosUsoString = converteRetornoSparql(ExecuteQueryByModel(sparl.toString(), modelo)); Set<CasoUso> casosUso = new HashSet<CasoUso>(); for (String string2 : casosUsoString) { casosUso.add(casoUsoDao.obterPorNomeEProjeto(string2, projeto)); } requisito.setCasosUso(casosUso); /* Adiciona Pacote */ Set<Pacote> pacotes = new HashSet<Pacote>(); pacotes.add(pacoteDefault); requisito.setPacotes(pacotes); /*Adiciona Data de Criação*/ requisito.setDataCriacao(new Date()); return requisito; }