Example #1
0
 protected @Override void startupReader() throws java.io.IOException {
   if (schemaIn == null) {
     schemaIn = new FileInputStream(filename);
   }
   EntityParser entityParser = new EntityParser(new InputStreamReader(schemaIn));
   entityParser.parse();
   reader = entityParser.getReader();
 }
Example #2
0
  @Override
  public Object execute(ExecutionEvent event) throws ExecutionException {
    /*
     * Lê os arquivos selecionados no Package Explorer
     * Fontes:
     * http://www.vogella.de/articles/EclipsePlugIn/article.html#contribute
     */
    IStructuredSelection selection =
        (IStructuredSelection) HandlerUtil.getActiveMenuSelection(event);

    try {
      /*
       * Os arquivos selecionados podem ser de mais de um projeto, desta
       * forma, armazena os projetos num mapa para que possam ser
       * atualizados (Refresh) após a criação dos arquivos de metadados
       */
      Set<IProject> projects = new HashSet<IProject>();

      for (Object element : selection.toList()) {
        if (element instanceof ICompilationUnit) {
          ICompilationUnit iCompilationUnit = (ICompilationUnit) element;
          String metadataFileName = getMetadataFileName(iCompilationUnit);
          if (metadataFileName != null) {
            /*
             * Obtém um CompilationUnit para percorrer as propriedades
             * com um Visitor
             * Fontes:
             * http://www.guj.com.br/java/245139-duvida-com-classloader-ao-desenvolver-um-plugin-para-o-eclipse
             * http://stackoverflow.com/questions/3938528/getting-field-type-in-a-method-in-eclipse
             */
            CompilationUnit compilationUnit = getAst(iCompilationUnit);

            EntityParser parser = new EntityParser(iCompilationUnit, compilationUnit);
            parser.run();

            EntityType entityType = parser.getEntityType();

            // Grava os dados da entidade em um arquivo xml
            write(metadataFileName, entityType);

            // adicina o projeto no conjunto, para ser atualizado após a criação dos arquivos
            projects.add(iCompilationUnit.getCorrespondingResource().getProject());

          } else {
            MessageDialog.openInformation(
                HandlerUtil.getActiveShell(event),
                "Erro",
                "Não foi possível gravar o arquivo "
                    + METADATA_EXTENSION
                    + ". Verifique se você possui permissão de escrita no projeto.");
          }

        } else {
          MessageDialog.openInformation(
              HandlerUtil.getActiveShell(event), "Atenção", "Selecione apenas arquivos Java");
          return null;
        }
      }

      /*
       *  Atualiza os projetos vinculados aos arquivos
       *  Fontes:
       *  http://www.openarchitectureware.org/forum/viewtopic.php?showtopic=4958
       */
      for (IProject project : projects) {
        project.refreshLocal(IResource.DEPTH_INFINITE, null);
      }

      MessageDialog.openInformation(
          HandlerUtil.getActiveShell(event),
          "Sucesso",
          "Arquivos de metadados criados com sucesso.");

    } catch (Exception e) {
      /*
       * Logs, Fonte:
       * http://www.ibm.com/developerworks/library/os-eclog/
       */
      IStatus status =
          new Status(
              IStatus.ERROR, Activator.PLUGIN_ID, "Error executing plugin orion-metadata.", e);
      Activator.getDefault().getLog().log(status);

      throw new ExecutionException("Error executing plugin orion-metadata.", e);
    }

    return null;
  }
Example #3
0
 private void parseInterfac(String interfac2) {
   EntityParser ep = new EntityParser(interfac2);
   interfac = interfac2;
   sirinaIzlaza = ep.getOutputWidth();
   sirinaUlaza = ep.getInputWidth();
 }