Remove redundant calculation of import status file location

Up to now we had two locations in the coding where the location of the
import status file in the file system was defined.
With this change there is only one definition of that location.

Change-Id: I76cd3198a9f0376e00791d63defb3c85e5a8d401
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
index 74b8eb0..6d1f3bb 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
@@ -19,7 +19,6 @@
 
 import com.google.common.base.Strings;
 import com.google.gerrit.common.errors.NoSuchAccountException;
-import com.google.gerrit.extensions.annotations.PluginData;
 import com.google.gerrit.extensions.annotations.RequiresCapability;
 import com.google.gerrit.extensions.restapi.BadRequestException;
 import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -92,7 +91,7 @@
   private final Provider<CurrentUser> currentUser;
   private final ImportJson importJson;
   private final ImportLog importLog;
-  private final File lockRoot;
+  private final ProjectsCollection projects;
 
   private final Project.NameKey targetProject;
   private Project.NameKey srcProject;
@@ -112,7 +111,7 @@
       Provider<CurrentUser> currentUser,
       ImportJson importJson,
       ImportLog importLog,
-      @PluginData File data,
+      ProjectsCollection projects,
       @Assisted Project.NameKey targetProject) {
     this.projectCache = projectCache;
     this.openRepoStep = openRepoStep;
@@ -123,7 +122,8 @@
     this.currentUser = currentUser;
     this.importJson = importJson;
     this.importLog = importLog;
-    this.lockRoot = data;
+    this.projects = projects;
+
     this.targetProject = targetProject;
   }
 
@@ -246,7 +246,7 @@
   }
 
   private LockFile lockForImport() throws ResourceConflictException {
-    File importStatus = new File(lockRoot, targetProject.get());
+    File importStatus = projects.FS_LAYOUT.getImportStatusFile(targetProject.get());
     LockFile lockFile = new LockFile(importStatus, FS.DETECTED);
     try {
       if (lockFile.lock()) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java
index 80594ab..81dfc31 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectsCollection.java
@@ -37,6 +37,14 @@
     ChildCollection<ConfigResource, ImportProjectResource>,
     AcceptsCreate<ConfigResource> {
 
+  class FileSystemLayout {
+    File getImportStatusFile(String id) {
+      return new File(lockRoot, id);
+    }
+  }
+
+  public final FileSystemLayout FS_LAYOUT = new FileSystemLayout();
+
   private final DynamicMap<RestView<ImportProjectResource>> views;
   private final ImportProject.Factory importProjectFactory;
   private final Provider<ListImportedProjects> list;
@@ -67,7 +75,7 @@
 
   public ImportProjectResource parse(String id)
       throws ResourceNotFoundException {
-    File f = new File(lockRoot, id);
+    File f = FS_LAYOUT.getImportStatusFile(id);
     if (!f.exists()) {
       throw new ResourceNotFoundException(id);
     }