Package de.uni_mannheim.swt.codeconjurer.domain.search

Examples of de.uni_mannheim.swt.codeconjurer.domain.search.Search


            StringBuilder message = new StringBuilder();
            if (msg.equals("")) {
              if (noServer || noUsername || noPassword) {
                message.append("Please set up preferences first. Go to Eclipse -> Preferences -> Code Conjurer.");
              } else {
                Search search = CodeConjurer.getInstance()
                    .getActiveEditorSearch();
                ActionContributionItem showAdapterAction = (ActionContributionItem) getViewSite()
                    .getActionBars()
                    .getToolBarManager()
                    .find("de.uni_mannheim.swt.codeconjurer.showAdapterAction");

                if (search != null) {
                  Result result = null;
                  int results = 0;
                  switch (search.getKind()) {
                  case Search.STANDARD_SEARCH:
                    showAdapterAction.getAction()
                        .setEnabled(false);
                    result = search.getSearchResult();
                    results = result.getResultItems().length;
                    if (results > 0) {
                      message.append(results
                          + " results found. "
                          + result.getNumberOfSuccessfullyFetchedSources()
                          + " items successfully downloaded. :: Result created "
                          + result.getCreationDate());
                    }
                    break;

                  case Search.TEST_DRIVEN_SEARCH:
                    showAdapterAction.getAction()
                        .setEnabled(true);
                    result = search.getSearchResult();
                    int passes = result
                        .getNumberOfSuccessfulTests();
                    int retrieved = result
                        .getNumberOfSuccessfullyFetchedSources();
                    long time = search.getDuration();
                    String duration;
                    if (time / Math.pow(10, 9) < 120) {
                      duration = String.valueOf(time
                          / Math.pow(10, 9));
                      duration = duration.substring(0,
                          duration.indexOf("."));
                      duration += " s";
                    } else {
                      duration = String
                          .valueOf((time / Math.pow(
                              10, 9)) / 60);
                      duration = duration.substring(0,
                          duration.indexOf(".") + 2);
                      duration += " min";
                    }
                    results = result.getResultItems().length;
                    if (search.getState() == Job.RUNNING) {
                      message.append("Testing in progress");
                      message.append(" :: Time elapsed "
                          + duration);
                    }
                    if (retrieved > 0) {
                      message.append(" :: "
                          + passes
                          + " of "
                          + results
                          + " candidates passed test. "
                          + retrieved
                          + " items successfully downloaded.");
                      if (search.isFinished()) {
                        message.append(" :: Result created "
                            + result.getCreationDate());
                        message.append(" :: Result created in "
                            + duration);
                      }
View Full Code Here


  @Override
  protected IStatus run(IProgressMonitor monitor) {
    try {
      final IPackageFragment pkg = (IPackageFragment) target;
      String uri = new String(source);
      Search search = CodeConjurer.getInstance().getActiveEditorSearch();
      final BodyDeclaration selectedElement = search.getSearchResult()
          .find(uri);

      // Insert class
      if (selectedElement.getNodeType() == BodyDeclaration.TYPE_DECLARATION) {
        monitor.beginTask("Insert class into package", 2);
View Full Code Here

  @Override
  protected IStatus run(IProgressMonitor monitor) {
    try {
      IPackageFragment pkg = (IPackageFragment) target.getParent();
      String uri = new String(source);
      Search search = CodeConjurer.getInstance().getActiveEditorSearch();
      BodyDeclaration selectedElement = search.getSearchResult()
          .find(uri);

      // Insert method
      if (selectedElement.getNodeType() == BodyDeclaration.METHOD_DECLARATION) {
        boolean overwrite = Activator.getDefault().getPreferenceStore()
View Full Code Here

   * org.eclipse.jface.viewers.ITreeContentProvider#getElements(java.lang.
   * Object)
   */
  @Override
  public Object[] getElements(Object inputElement) {
    Search search = (Search) inputElement;
    ResultItem[] results = search.getSearchResult().getResultItems();
    boolean noShowNegatives = false;
    ArrayList<BodyDeclaration> elements = new ArrayList<BodyDeclaration>();
    if (search.getKind() == Search.TEST_DRIVEN_SEARCH) {
      // Remove failed candidates from result view if not requested.
      if (!Activator.getDefault().getPreferenceStore()
          .getBoolean(PreferenceConstants.P_SHOW_NEGATIVES)) {
        noShowNegatives = true;
      }
View Full Code Here

    ITypeRoot typeRoot = JavaUI.getEditorInputTypeRoot(editor
        .getEditorInput());
    Query query = new Query(typeRoot);
    logger.debug("Sourcecode\r\n" + query.getSource() + "\r\n");
    logger.debug("Query: " + query.getQuery());
    final Search search;
    String querytype = query.getType();
    if (querytype.equals("tds")) {
      if (!byAgent) {
        // search = new TestDrivenSearch(editor,
        // "Test-Driven Search for "
        // + editor.getTitle(), query);
        search = new StandardSearch(editor, "Test-Driven Search for "
            + editor.getTitle(), query, Search.TEST_DRIVEN_SEARCH);
        logger.debug("Test-Driven Search created");
      } else {
        // TODO: Implement a background-agent that reacts to JUnit
        // assertions instead interface changes
        logger.debug("We do not support test-driven searches triggered by the agent, yet. "
            + "We need a better algorithm for this.");
        return;
      }
    } else {
      search = new StandardSearch(editor,
          "Search for reusable assets for " + editor.getTitle(),
          query, Search.STANDARD_SEARCH);
      logger.debug("Standard Search created");
    }
    // Delegate the search event listeners to the search
    for (SearchEventListener listener : listeners) {
      search.addSearchEventListener(listener);
    }
    if (searches.get(editor) != null) {
      logger.debug("Search in progress... Cancel old search.");
      for (Search s : searches.get(editor)) {
        s.cancel();
        try {
          s.join();
        } catch (InterruptedException e) {
          CrashReporter.reportException(e);
          logger.debug("Could not cancel Job: " + e.getMessage());
        }
      }
    } else {
      searches.put(editor, new ArrayList<Search>());
    }
    searches.get(editor).add(search);
    // This listener ensures that only one search can be
    // performed at the same time for an editor
    search.addJobChangeListener(new JobChangeAdapter() {
      @Override
      public void done(IJobChangeEvent event) {
        if (event.getResult().isOK()) {
          logger.debug("Search completed successfully.");
          search.getSearchResult().notifyObservers(
              search.getSearchResult());
        } else {
          logger.debug("Search aborted.");
        }
        CodeConjurer.getInstance().setSearchFinished(search);
      }
    });
    // The rule for one search per editor
    ParallelSearchPrevention concurrencyRule = null;
    if (searchJobs.containsKey(editor)) {
      concurrencyRule = searchJobs.get(editor);
    } else {
      concurrencyRule = new ParallelSearchPrevention();
      searchJobs.put(editor, concurrencyRule);
    }
    search.setRule(concurrencyRule);
    search.setPriority(Job.LONG);
    search.schedule(1000);
  }
View Full Code Here

TOP

Related Classes of de.uni_mannheim.swt.codeconjurer.domain.search.Search

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.