| // 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 = 6) |
| AccountAccess accounts(); |
| |
| @Relation(id = 7) |
| AccountExternalIdAccess accountExternalIds(); |
| |
| @Relation(id = 8) |
| AccountSshKeyAccess accountSshKeys(); |
| |
| @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 = 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; |
| } |