コード例 #1
0
ファイル: StateFileUtil.java プロジェクト: danmueller/gradle
  StateFileUtil(
      File projectRootDirectory,
      File directoryToProcess,
      File dotGradleStatesDirectory,
      DigesterFactory shaDigesterFactory,
      IoFactory ioFactory) {
    this.projectRootDirectory = projectRootDirectory;
    this.absoluteProjectRootPath = projectRootDirectory.getAbsolutePath();
    this.ioFactory = ioFactory;

    this.directoryToProcess = directoryToProcess;
    this.absoluteDirectoryToProcessPath = directoryToProcess.getAbsolutePath();
    this.shaDigesterFactory = shaDigesterFactory;

    final String relativePathToProjectRoot = getRelativePathToProjectRoot(directoryToProcess);
    final String directoryStateId = getStringDigest(relativePathToProjectRoot);

    directoryStateDir = new File(dotGradleStatesDirectory, directoryStateId);
    oldDirectoryStateDir = new File(directoryStateDir, "old");
    newDirectoryStateDir = new File(directoryStateDir, "new");

    if (newDirectoryStateDir.exists()) {
      try {
        FileUtils.deleteDirectory(newDirectoryStateDir);
      } catch (IOException e) {
        throw new GradleException(
            "failed to clear new state directory " + newDirectoryStateDir.getAbsolutePath(), e);
      }
    }

    if (!GFileUtils.createDirectoriesWhenNotExistent(oldDirectoryStateDir, newDirectoryStateDir)) {
      throw new GradleException(
          "failed to create one or more of the state directories ["
              + oldDirectoryStateDir.getAbsolutePath()
              + ", "
              + newDirectoryStateDir.getAbsolutePath()
              + "]");
    }
  }