Use string constants for refs/*, refs/heads/, refs/tags/

These are fairly well-known strings, used often enough in the code,
so use constants that correspond to them.

Change-Id: I00bc6a2034ab3041816b6cc1492b7f2117d1952f
Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce
2010-04-20 18:24:28 -07:00
parent f7fed45d45
commit 93951e0e13
6 changed files with 21 additions and 16 deletions

View File

@@ -114,25 +114,25 @@ class AddRefRight extends Handler<ProjectDetail> {
if (categoryId.equals(ApprovalCategory.SUBMIT)
|| categoryId.equals(ApprovalCategory.PUSH_HEAD)) {
// Explicitly related to a branch head.
refPattern = "refs/heads/*";
refPattern = Constants.R_HEADS + "*";
} else if (!at.getCategory().isAction()) {
// Non actions are approval votes on a change, assume these apply
// to branch heads only.
refPattern = "refs/heads/*";
refPattern = Constants.R_HEADS + "*";
} else if (categoryId.equals(ApprovalCategory.PUSH_TAG)) {
// Explicitly related to the tag namespace.
refPattern = "refs/tags/*";
refPattern = Constants.R_TAGS + "*";
} else if (categoryId.equals(ApprovalCategory.READ)
|| categoryId.equals(ApprovalCategory.OWN)) {
// Currently these are project-wide rights, so apply that way.
refPattern = "refs/*";
refPattern = RefRight.ALL;
} else {
// Assume project wide for the default.
refPattern = "refs/*";
refPattern = RefRight.ALL;
}
}
while (refPattern.startsWith("/")) {

View File

@@ -22,6 +22,9 @@ import java.util.Comparator;
/** Grant to use an {@link ApprovalCategory} in the scope of a git ref. */
public final class RefRight {
/** Pattern that matches all references in a project. */
public static final String ALL = "refs/*";
public static class RefPattern extends
StringKey<com.google.gwtorm.client.Key<?>> {
private static final long serialVersionUID = 1L;

View File

@@ -234,7 +234,7 @@ public class SchemaCreator {
c.approvalCategories().insert(Collections.singleton(cat));
c.approvalCategoryValues().insert(vals);
final RefRight.RefPattern pattern = new RefRight.RefPattern("refs/*");
final RefRight.RefPattern pattern = new RefRight.RefPattern(RefRight.ALL);
{
final RefRight read =
new RefRight(new RefRight.Key(DEFAULT_WILD_NAME, pattern,
@@ -327,8 +327,8 @@ public class SchemaCreator {
RefRight right =
new RefRight(new RefRight.Key(sConfig.wildProjectName,
new RefRight.RefPattern("refs/*"), ApprovalCategory.FORGE_IDENTITY,
sConfig.registeredGroupId));
new RefRight.RefPattern(RefRight.ALL),
ApprovalCategory.FORGE_IDENTITY, sConfig.registeredGroupId));
right.setMinValue(ApprovalCategory.FORGE_AUTHOR);
right.setMaxValue(ApprovalCategory.FORGE_AUTHOR);
c.refRights().insert(Collections.singleton(right));

View File

@@ -24,6 +24,8 @@ import com.google.gwtorm.jdbc.JdbcSchema;
import com.google.inject.Inject;
import com.google.inject.Provider;
import org.eclipse.jgit.lib.Constants;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
@@ -85,20 +87,20 @@ class Schema_25 extends SchemaVersion {
|| category.equals(ApprovalCategory.PUSH_HEAD)
|| nonActions.contains(category)) {
// Explicitly related to a branch head.
ref = new RefRight.RefPattern("refs/heads/*");
ref = new RefRight.RefPattern(Constants.R_HEADS + "*");
} else if (category.equals(ApprovalCategory.PUSH_TAG)) {
// Explicitly related to the tag namespace.
ref = new RefRight.RefPattern("refs/tags/*");
ref = new RefRight.RefPattern(Constants.R_TAGS + "/*");
} else if (category.equals(ApprovalCategory.READ)
|| category.equals(ApprovalCategory.OWN)) {
// Currently these are project-wide rights, so apply that way.
ref = new RefRight.RefPattern("refs/*");
ref = new RefRight.RefPattern(RefRight.ALL);
} else {
// Assume project wide for the default.
ref = new RefRight.RefPattern("refs/*");
ref = new RefRight.RefPattern(RefRight.ALL);
}
RefRight.Key key = new RefRight.Key(project, ref, category, group);

View File

@@ -86,8 +86,8 @@ class Schema_28 extends SchemaVersion {
RefRight right =
new RefRight(new RefRight.Key(sConfig.wildProjectName,
new RefRight.RefPattern("refs/*"), ApprovalCategory.FORGE_IDENTITY,
sConfig.registeredGroupId));
new RefRight.RefPattern(RefRight.ALL),
ApprovalCategory.FORGE_IDENTITY, sConfig.registeredGroupId));
right.setMinValue(ApprovalCategory.FORGE_AUTHOR);
right.setMaxValue(ApprovalCategory.FORGE_AUTHOR);
c.refRights().insert(Collections.singleton(right));

View File

@@ -115,8 +115,8 @@ final class AdminCreateProject extends BaseCommand {
final Project.NameKey newProjectNameKey = new Project.NameKey(projectName);
final RefRight.Key prk =
new RefRight.Key(newProjectNameKey, new RefRight.RefPattern("refs/*"),
ApprovalCategory.OWN, ownerId);
new RefRight.Key(newProjectNameKey, new RefRight.RefPattern(
RefRight.ALL), ApprovalCategory.OWN, ownerId);
final RefRight pr = new RefRight(prk);
pr.setMaxValue((short) 1);
pr.setMinValue((short) 1);