summaryrefslogtreecommitdiffstats
path: root/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/server/ReviewDb.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/server/ReviewDb.java')
-rw-r--r--gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/server/ReviewDb.java143
1 files changed, 143 insertions, 0 deletions
diff --git a/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/server/ReviewDb.java b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/server/ReviewDb.java
new file mode 100644
index 0000000000..616a65614c
--- /dev/null
+++ b/gerrit-reviewdb/src/main/java/com/google/gerrit/reviewdb/server/ReviewDb.java
@@ -0,0 +1,143 @@
+// Copyright (C) 2008 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.gerrit.reviewdb.server;
+
+import com.google.gerrit.reviewdb.client.Account;
+import com.google.gerrit.reviewdb.client.AccountGroup;
+import com.google.gerrit.reviewdb.client.Change;
+import com.google.gerrit.reviewdb.client.ChangeMessage;
+import com.google.gerrit.reviewdb.client.SystemConfig;
+import com.google.gwtorm.server.OrmException;
+import com.google.gwtorm.server.Relation;
+import com.google.gwtorm.server.Schema;
+import com.google.gwtorm.server.Sequence;
+
+/**
+ * The review service database schema.
+ * <p>
+ * Root entities that are at the top level of some important data graph:
+ * <ul>
+ * <li>{@link Account}: Per-user account registration, preferences, identity.</li>
+ * <li>{@link Change}: All review information about a single proposed change.</li>
+ * <li>{@link SystemConfig}: Server-wide settings, managed by administrator.</li>
+ * </ul>
+ */
+public interface ReviewDb extends Schema {
+ /* If you change anything, update SchemaVersion.C to use a new version. */
+
+ @Relation(id = 1)
+ SchemaVersionAccess schemaVersion();
+
+ @Relation(id = 2)
+ SystemConfigAccess systemConfig();
+
+ @Relation(id = 3)
+ ApprovalCategoryAccess approvalCategories();
+
+ @Relation(id = 4)
+ ApprovalCategoryValueAccess approvalCategoryValues();
+
+ @Relation(id = 5)
+ ContributorAgreementAccess contributorAgreements();
+
+ @Relation(id = 6)
+ AccountAccess accounts();
+
+ @Relation(id = 7)
+ AccountExternalIdAccess accountExternalIds();
+
+ @Relation(id = 8)
+ AccountSshKeyAccess accountSshKeys();
+
+ @Relation(id = 9)
+ AccountAgreementAccess accountAgreements();
+
+ @Relation(id = 10)
+ AccountGroupAccess accountGroups();
+
+ @Relation(id = 11)
+ AccountGroupNameAccess accountGroupNames();
+
+ @Relation(id = 12)
+ AccountGroupMemberAccess accountGroupMembers();
+
+ @Relation(id = 13)
+ AccountGroupMemberAuditAccess accountGroupMembersAudit();
+
+ @Relation(id = 14)
+ AccountGroupIncludeAccess accountGroupIncludes();
+
+ @Relation(id = 15)
+ AccountGroupIncludeAuditAccess accountGroupIncludesAudit();
+
+ @Relation(id = 16)
+ AccountGroupAgreementAccess accountGroupAgreements();
+
+ @Relation(id = 17)
+ AccountDiffPreferenceAccess accountDiffPreferences();
+
+ @Relation(id = 18)
+ StarredChangeAccess starredChanges();
+
+ @Relation(id = 19)
+ AccountProjectWatchAccess accountProjectWatches();
+
+ @Relation(id = 20)
+ AccountPatchReviewAccess accountPatchReviews();
+
+ @Relation(id = 21)
+ ChangeAccess changes();
+
+ @Relation(id = 22)
+ PatchSetApprovalAccess patchSetApprovals();
+
+ @Relation(id = 23)
+ ChangeMessageAccess changeMessages();
+
+ @Relation(id = 24)
+ PatchSetAccess patchSets();
+
+ @Relation(id = 25)
+ PatchSetAncestorAccess patchSetAncestors();
+
+ @Relation(id = 26)
+ PatchLineCommentAccess patchComments();
+
+ @Relation(id = 27)
+ TrackingIdAccess trackingIds();
+
+ @Relation(id = 28)
+ SubmoduleSubscriptionAccess submoduleSubscriptions();
+
+ /** Create the next unique id for an {@link Account}. */
+ @Sequence(startWith = 1000000)
+ int nextAccountId() throws OrmException;
+
+ /** Next unique id for a {@link AccountGroup}. */
+ @Sequence
+ int nextAccountGroupId() throws OrmException;
+
+ /** Next unique id for a {@link Change}. */
+ @Sequence
+ int nextChangeId() throws OrmException;
+
+ /**
+ * Next id for a block of {@link ChangeMessage} records.
+ *
+ * @see com.google.gerrit.server.ChangeUtil#messageUUID(ReviewDb)
+ */
+ @Sequence
+ int nextChangeMessageId() throws OrmException;
+}