Package com.google.devtools.moe.client.codebase

Examples of com.google.devtools.moe.client.codebase.Codebase


      AppContext.RUN.ui.info("Skipping bookkeeping of this SubmittedMigration "
          + "because it was already in the Db: " + migration);
      return;
    }

    Codebase to, from;
    try {
      Expression toEx =
          new RepositoryExpression(toRev.repositoryName).atRevision(toRev.revId);
      Expression fromEx =
          new RepositoryExpression(fromRev.repositoryName).atRevision(fromRev.revId);

      // Use the forward-translator to check an inverse-translated migration.
      if (inverse) {
        String fromProjectSpace =
            context.config.getRepositoryConfigs().get(fromRev.repositoryName).getProjectSpace();
        toEx = toEx.translateTo(fromProjectSpace);
      } else {
        String toProjectSpace =
            context.config.getRepositoryConfigs().get(toRev.repositoryName).getProjectSpace();
        fromEx = fromEx.translateTo(toProjectSpace);
      }

      to = toEx.createCodebase(context);
      from = fromEx.createCodebase(context);

    } catch (CodebaseCreationError e) {
      AppContext.RUN.ui.error(e, "Could not generate codebase");
      return;
    } catch (InvalidProject e) {
      AppContext.RUN.ui.error("Project configuration error: " + e);
      return;
    }

    Ui.Task t = AppContext.RUN.ui.pushTask(
        "diff_codebases",
        String.format("Diff codebases '%s' and '%s'", from.toString(), to.toString()));
    if (!CodebaseDifference.diffCodebases(from, to).areDifferent()) {
      Equivalence newEquiv = new Equivalence(fromRev, toRev);
      db.noteEquivalence(newEquiv);
      AppContext.RUN.ui.info("Codebases are identical, noted new equivalence: " + newEquiv);
    }
View Full Code Here


  @Override
  public Codebase inverseEdit(Codebase input, Codebase referenceFrom, Codebase referenceTo,
      ProjectContext context, Map<String, String> options) {
    File tempDir = AppContext.RUN.fileSystem.getTemporaryDirectory("inverse_rename_run_");
    inverseRenameAndCopy(input, tempDir, referenceTo);
    return new Codebase(tempDir, referenceTo.getProjectSpace(), referenceTo.getExpression());
  }
View Full Code Here

        options.get("referenceToCodebase"),
        "Inverse translation requires key 'referenceToCodebase'.");

    Deque<Codebase> forwardTranslationStack = makeForwardTranslationStack(options, context);

    Codebase refFrom;
    // For the first reference from-codebase, use the 'referenceFromCodebase' option if given,
    // otherwise use the top of the forward-translation stack.
    if (options.get("referenceFromCodebase") != null) {
      try {
        refFrom =
            Parser.parseExpression(options.get("referenceFromCodebase")).createCodebase(context);
      } catch (ParseError e) {
        throw new CodebaseCreationError("Couldn't parse referenceFromCodebase '"
            + options.get("referenceFromCodebase") + "': " + e);
      }
      // Discard the "default" reference from-codebase, i.e. the top of the forward-trans stack.
      forwardTranslationStack.pop();
    } else {
      refFrom = forwardTranslationStack.pop();
    }

    Codebase refTo = forwardTranslationStack.peek();
    Codebase inverseTranslated = toTranslate;

    for (InverseTranslatorStep inverseStep : inverseSteps) {
      Task task = AppContext.RUN.ui.pushTask("inverseEdit", String.format(
          "Inverse-translating step %s by merging codebase %s onto %s",
          inverseStep.getName(), refTo, refFrom));

      inverseTranslated = inverseStep.getInverseEditor().inverseEdit(
          inverseTranslated, refFrom, refTo, context, options);

      AppContext.RUN.ui.popTaskAndPersist(task, inverseTranslated.getPath());
      refFrom = forwardTranslationStack.pop();
      refTo = forwardTranslationStack.peek();
    }

    return inverseTranslated;
View Full Code Here

  private Deque<Codebase> makeForwardTranslationStack(
      Map<String, String> options, ProjectContext context) throws CodebaseCreationError {
    Deque<Codebase> forwardTransStack = new ArrayDeque<Codebase>(forwardSteps.size() + 1);

    Codebase refTo;
    try {
      Task task = AppContext.RUN.ui.pushTask(
          "refTo", "Pushing to forward-translation stack: " + options.get("referenceToCodebase"));
      refTo = Parser.parseExpression(options.get("referenceToCodebase")).createCodebase(context);
      forwardTransStack.push(refTo);
      AppContext.RUN.ui.popTaskAndPersist(task, refTo.getPath());
    } catch (ParseError e) {
      throw new CodebaseCreationError("Couldn't parse in translation: " + e);
    }

    // This Expression is used only for informative output.
    Expression forwardEditExp = refTo.getExpression();
    for (TranslatorStep forwardStep : forwardSteps) {
      forwardEditExp = forwardEditExp.editWith(forwardStep.name, ImmutableMap.<String, String>of());
      Task task = AppContext.RUN.ui.pushTask(
          "edit", "Pushing to forward-translation stack: " + forwardEditExp);
      refTo = forwardStep.editor.edit(refTo, context, options).copyWithExpression(forwardEditExp);
      forwardTransStack.push(refTo);
      AppContext.RUN.ui.popTaskAndPersist(task, refTo.getPath());
    }

    return forwardTransStack;
  }
View Full Code Here

    // Filter codebase by ignore_file_res.
    final Predicate<CharSequence> nonIgnoredFilePred =
        Utils.nonMatchingPredicateFromRes(config.getIgnoreFileRes());
    Utils.filterFiles(exportPath, nonIgnoredFilePred);

    return new Codebase(
        exportPath, config.getProjectSpace(), new RepositoryExpression(new Term(name, options)));
  }
View Full Code Here

                                      Writer destination,
                                      Expression referenceToCodebase) {

    Revision mostRecentFromRev = migration.fromRevisions.get(migration.fromRevisions.size() - 1);

    Codebase fromCodebase;
    try {
      String toProjectSpace = context.config.getRepositoryConfigs()
          .get(migration.config.getToRepository()).getProjectSpace();

      fromCodebase = new RepositoryExpression(migration.config.getFromRepository())
View Full Code Here

    this.editOp = editOp;
  }

  @Override
  public Codebase createCodebase(ProjectContext context) throws CodebaseCreationError {
    Codebase codebaseToEdit = exToEdit.createCodebase(context);
    String editorName = editOp.term.identifier;
    Editor editor = context.editors.get(editorName);
    if (editor == null) {
      throw new CodebaseCreationError("no editor " + editorName);
    }

    Ui.Task editTask = AppContext.RUN.ui.pushTask(
        "edit",
        "Editing " + codebaseToEdit.getPath() + " with editor " + editor.getDescription());

    Codebase editedCodebase = editor.edit(codebaseToEdit, context, editOp.term.options);

    AppContext.RUN.ui.popTaskAndPersist(editTask, editedCodebase.getPath());
    return editedCodebase.copyWithExpression(this);
  }
View Full Code Here

                "--input=" + patchFilePath),
            tempDir.getAbsolutePath());
      } catch (CommandRunner.CommandException e) {
        throw new MoeProblem(e.getMessage());
      }
      return new Codebase(tempDir, input.getProjectSpace(), input.getExpression());
    }
  }
View Full Code Here

                             input.getPath().getAbsoluteFile(),
                             tempDir.getAbsoluteFile());
    } catch (IOException e) {
      throw new MoeProblem(e.getMessage());
    }
    return new Codebase(tempDir, input.getProjectSpace(), input.getExpression());
  }
View Full Code Here

      cc = repo.codebaseCreator;
    }

    Ui.Task createTask = AppContext.RUN.ui.pushTask(
        "create_codebase", "Creating from '" + toString() + "'");
    Codebase c = cc.create(term.options);
    AppContext.RUN.ui.popTaskAndPersist(createTask, c.getPath());
    return c;
  }
View Full Code Here

TOP

Related Classes of com.google.devtools.moe.client.codebase.Codebase

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.