diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscription.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscription.java index b6c27bd33b..026348a321 100644 --- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscription.java +++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscription.java @@ -15,7 +15,7 @@ package com.google.gerrit.reviewdb; import com.google.gwtorm.client.Column; -import com.google.gwtorm.client.CompoundKey; +import com.google.gwtorm.client.StringKey; /** * Defining a project/branch subscription to a project/branch project. @@ -27,7 +27,7 @@ import com.google.gwtorm.client.CompoundKey; */ public final class SubmoduleSubscription { /** Subscription key */ - public static class Key extends CompoundKey { + public static class Key extends StringKey { private static final long serialVersionUID = 1L; /** @@ -37,22 +37,16 @@ public final class SubmoduleSubscription { @Column(id = 1) protected Branch.NameKey superProject; - /** - * Indicates the submodule, aka subscription: the project the subscriber's - * gitlink is pointed to. - */ @Column(id = 2) - protected Branch.NameKey submodule; + protected String submodulePath; protected Key() { superProject = new Branch.NameKey(); - submodule = new Branch.NameKey(); } - protected Key(final Branch.NameKey superProject, - final Branch.NameKey submodule) { + protected Key(Branch.NameKey superProject, String path) { this.superProject = superProject; - this.submodule = submodule; + this.submodulePath = path; } @Override @@ -61,51 +55,53 @@ public final class SubmoduleSubscription { } @Override - public com.google.gwtorm.client.Key[] members() { - return new com.google.gwtorm.client.Key[] {submodule}; + public String get() { + return submodulePath; } + @Override + protected void set(String newValue) { + this.submodulePath = newValue; + } } @Column(id = 1, name = Column.NONE) protected Key key; @Column(id = 2) - protected String path; + protected Branch.NameKey submodule; protected SubmoduleSubscription() { } - public SubmoduleSubscription(final Branch.NameKey superProject, - final Branch.NameKey submodule, final String path) { - key = new Key(superProject, submodule); - this.path = path; + public SubmoduleSubscription(Branch.NameKey superProject, + Branch.NameKey submodule, + String path) { + this.key = new Key(superProject, path); + this.submodule = submodule; } - @Override - public String toString() { - return key.superProject.getParentKey().get() + " " + key.superProject.get() - + ", " + key.submodule.getParentKey().get() + " " - + key.submodule.get() + ", " + path; + public Key getKey() { + return key; } public Branch.NameKey getSuperProject() { return key.superProject; } - public Branch.NameKey getSubmodule() { - return key.submodule; + public String getPath() { + return key.get(); } - public String getPath() { - return path; + public Branch.NameKey getSubmodule() { + return submodule; } @Override public boolean equals(Object o) { if (o instanceof SubmoduleSubscription) { return key.equals(((SubmoduleSubscription) o).key) - && path.equals(((SubmoduleSubscription) o).path); + && submodule.equals(((SubmoduleSubscription) o).submodule); } return false; } @@ -114,4 +110,13 @@ public final class SubmoduleSubscription { public int hashCode() { return key.hashCode(); } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getSuperProject()).append(':').append(getPath()); + sb.append(" follows "); + sb.append(getSubmodule()); + return sb.toString(); + } } diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscriptionAccess.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscriptionAccess.java index 126da78d71..909bd579ec 100644 --- a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscriptionAccess.java +++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/SubmoduleSubscriptionAccess.java @@ -25,14 +25,11 @@ public interface SubmoduleSubscriptionAccess extends @PrimaryKey("key") SubmoduleSubscription get(SubmoduleSubscription.Key key) throws OrmException; - @Query("ORDER BY key.superProject.projectName") - ResultSet all() throws OrmException; - @Query("WHERE key.superProject = ?") ResultSet bySuperProject(Branch.NameKey superProject) throws OrmException; - @Query("WHERE key.submodule = ?") + @Query("WHERE submodule = ?") ResultSet bySubmodule(Branch.NameKey submodule) throws OrmException; }