Convert Project.NameKey to an immutable type

Follows the pattern of other key type refactorings, adding a static
factory method. However, unlike the other key types, this one can't be
an @AutoValue, because it has other subclasses and specific requirements
around the implementation of equals. So we're stuck with boilerplate; at
least it's only one field.

See I6982fb24 for context.

Change-Id: Ic46c4a357f4ee77f18e54e87ca97af6e834834b6
This commit is contained in:
Dave Borowitz
2019-04-19 09:14:35 -07:00
parent 766a93d2a0
commit 5c9a6500a8
111 changed files with 307 additions and 320 deletions

View File

@@ -86,7 +86,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
// for more extensive coverage of the LabelTypeInfo.
assertThat(p.labels).hasSize(1);
ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName));
ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
assertThat(projectState).isNotNull();
assertProjectInfo(projectState.getProject(), p);
assertHead(newProjectName, "refs/heads/master");
@@ -162,7 +162,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
String newProjectName = name("newProject");
ProjectInfo p = gApi.projects().create(newProjectName).get();
assertThat(p.name).isEqualTo(newProjectName);
ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName));
ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
assertThat(projectState).isNotNull();
assertProjectInfo(projectState.getProject(), p);
assertHead(newProjectName, "refs/heads/master");
@@ -175,7 +175,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
String newProjectName = name("newProject");
ProjectInfo p = gApi.projects().create(newProjectName + ".git").get();
assertThat(p.name).isEqualTo(newProjectName);
ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName));
ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
assertThat(projectState).isNotNull();
assertProjectInfo(projectState.getProject(), p);
assertHead(newProjectName, "refs/heads/master");
@@ -186,7 +186,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
String newProjectName = name("newProject");
ProjectInfo p = gApi.projects().create(newProjectName + "/").get();
assertThat(p.name).isEqualTo(newProjectName);
ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName));
ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
assertThat(projectState).isNotNull();
assertProjectInfo(projectState.getProject(), p);
assertHead(newProjectName, "refs/heads/master");
@@ -197,7 +197,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
String newProjectName = name("newProject/newProject");
ProjectInfo p = gApi.projects().create(newProjectName).get();
assertThat(p.name).isEqualTo(newProjectName);
ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName));
ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
assertThat(projectState).isNotNull();
assertProjectInfo(projectState.getProject(), p);
assertHead(newProjectName, "refs/heads/master");
@@ -216,7 +216,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
in.requireChangeId = InheritableBoolean.TRUE;
ProjectInfo p = gApi.projects().create(in).get();
assertThat(p.name).isEqualTo(newProjectName);
Project project = projectCache.get(new Project.NameKey(newProjectName)).getProject();
Project project = projectCache.get(Project.nameKey(newProjectName)).getProject();
assertProjectInfo(project, p);
assertThat(project.getDescription()).isEqualTo(in.description);
assertThat(project.getConfiguredSubmitType()).isEqualTo(in.submitType);
@@ -242,7 +242,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
in.name = childName;
in.parent = parentName;
gApi.projects().create(in);
Project project = projectCache.get(new Project.NameKey(childName)).getProject();
Project project = projectCache.get(Project.nameKey(childName)).getProject();
assertThat(project.getParentName()).isEqualTo(in.parent);
}
@@ -270,7 +270,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
.getId()
.get())); // by ID
gApi.projects().create(in);
ProjectState projectState = projectCache.get(new Project.NameKey(newProjectName));
ProjectState projectState = projectCache.get(Project.nameKey(newProjectName));
Set<AccountGroup.UUID> expectedOwnerIds = Sets.newHashSetWithExpectedSize(3);
expectedOwnerIds.add(SystemGroupBackend.ANONYMOUS_USERS);
expectedOwnerIds.add(SystemGroupBackend.REGISTERED_USERS);
@@ -447,13 +447,13 @@ public class CreateProjectIT extends AbstractDaemonTest {
}
private void assertHead(String projectName, String expectedRef) throws Exception {
try (Repository repo = repoManager.openRepository(new Project.NameKey(projectName))) {
try (Repository repo = repoManager.openRepository(Project.nameKey(projectName))) {
assertThat(repo.exactRef(Constants.HEAD).getTarget().getName()).isEqualTo(expectedRef);
}
}
private void assertEmptyCommit(String projectName, String... refs) throws Exception {
Project.NameKey projectKey = new Project.NameKey(projectName);
Project.NameKey projectKey = Project.nameKey(projectName);
try (Repository repo = repoManager.openRepository(projectKey);
RevWalk rw = new RevWalk(repo);
TreeWalk tw = new TreeWalk(rw.getObjectReader())) {
@@ -474,7 +474,7 @@ public class CreateProjectIT extends AbstractDaemonTest {
}
private Optional<String> readProjectConfig(String projectName) throws Exception {
try (Repository repo = repoManager.openRepository(new Project.NameKey(projectName))) {
try (Repository repo = repoManager.openRepository(Project.nameKey(projectName))) {
TestRepository<?> tr = new TestRepository<>(repo);
RevWalk rw = tr.getRevWalk();
Ref ref = repo.exactRef(RefNames.REFS_CONFIG);

View File

@@ -240,7 +240,7 @@ public class ListProjectsIT extends AbstractDaemonTest {
int n = 5;
assertThat(all).hasSize(n);
assertThatNameList(gApi.projects().list().withPrefix(pre).withStart(n - 1).get())
.containsExactly(new Project.NameKey(Iterables.getLast(all).name));
.containsExactly(Project.nameKey(Iterables.getLast(all).name));
}
@Test

View File

@@ -38,7 +38,7 @@ public class ProjectAssert {
.that(Url.decode(info.id))
.isEqualTo(info.name);
}
return assertThat(Iterables.transform(actual, p -> new Project.NameKey(p.name)));
return assertThat(Iterables.transform(actual, p -> Project.nameKey(p.name)));
}
public static void assertProjectInfo(Project project, ProjectInfo info) {
@@ -47,7 +47,7 @@ public class ProjectAssert {
assertThat(info.name).isEqualTo(project.getName());
}
assertThat(Url.decode(info.id)).isEqualTo(project.getName());
Project.NameKey parentName = project.getParent(new Project.NameKey("All-Projects"));
Project.NameKey parentName = project.getParent(Project.nameKey("All-Projects"));
if (parentName != null) {
assertThat(info.parent).isEqualTo(parentName.get());
} else {