|  | // 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.Branch; | 
|  | import com.google.gerrit.reviewdb.client.Change; | 
|  | import com.google.gerrit.reviewdb.client.Project; | 
|  | import com.google.gwtorm.server.Access; | 
|  | import com.google.gwtorm.server.OrmException; | 
|  | import com.google.gwtorm.server.PrimaryKey; | 
|  | import com.google.gwtorm.server.Query; | 
|  | import com.google.gwtorm.server.ResultSet; | 
|  |  | 
|  | public interface ChangeAccess extends Access<Change, Change.Id> { | 
|  | @PrimaryKey("changeId") | 
|  | Change get(Change.Id id) throws OrmException; | 
|  |  | 
|  | @Query("WHERE changeKey = ?") | 
|  | ResultSet<Change> byKey(Change.Key key) throws OrmException; | 
|  |  | 
|  | @Query("WHERE changeKey >= ? AND changeKey <= ?") | 
|  | ResultSet<Change> byKeyRange(Change.Key reva, Change.Key revb) | 
|  | throws OrmException; | 
|  |  | 
|  | @Query("WHERE dest = ? AND changeKey = ?") | 
|  | ResultSet<Change> byBranchKey(Branch.NameKey p, Change.Key key) | 
|  | throws OrmException; | 
|  |  | 
|  | @Query("WHERE dest.projectName = ?") | 
|  | ResultSet<Change> byProject(Project.NameKey p) throws OrmException; | 
|  |  | 
|  | @Query("WHERE dest = ? AND status = '" + Change.STATUS_SUBMITTED | 
|  | + "' ORDER BY lastUpdatedOn") | 
|  | ResultSet<Change> submitted(Branch.NameKey dest) throws OrmException; | 
|  |  | 
|  | @Query("WHERE status = '" + Change.STATUS_SUBMITTED + "'") | 
|  | ResultSet<Change> allSubmitted() throws OrmException; | 
|  |  | 
|  | @Query("WHERE open = true AND dest.projectName = ?") | 
|  | ResultSet<Change> byProjectOpenAll(Project.NameKey p) throws OrmException; | 
|  |  | 
|  | @Query("WHERE open = true AND dest = ?") | 
|  | ResultSet<Change> byBranchOpenAll(Branch.NameKey p) throws OrmException; | 
|  |  | 
|  | @Query("WHERE open = true AND dest.projectName = ? AND sortKey < ?" | 
|  | + " ORDER BY sortKey DESC LIMIT ?") | 
|  | ResultSet<Change> byProjectOpenNext(Project.NameKey p, String sortKey, | 
|  | int limit) throws OrmException; | 
|  |  | 
|  | @Query | 
|  | ResultSet<Change> all() throws OrmException; | 
|  | } |