// Copyright (C) 2008 The Android Open Source Project // Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). // // 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; import com.google.gwtorm.client.Access; import com.google.gwtorm.client.OrmException; import com.google.gwtorm.client.PrimaryKey; import com.google.gwtorm.client.Query; import com.google.gwtorm.client.ResultSet; public interface ChangeAccess extends Access { @PrimaryKey("changeId") Change get(Change.Id id) throws OrmException; @Query("WHERE changeKey = ?") ResultSet byKey(Change.Key key) throws OrmException; @Query("WHERE changeKey >= ? AND changeKey <= ?") ResultSet byKeyRange(Change.Key reva, Change.Key revb) throws OrmException; @Query("WHERE dest = ? AND changeKey = ?") ResultSet byBranchKey(Branch.NameKey p, Change.Key key) throws OrmException; @Query("WHERE dest.projectName = ?") ResultSet byProject(Project.NameKey p) throws OrmException; @Query("WHERE topicId = ?") ResultSet byTopic(Topic.Id id) throws OrmException; @Query("WHERE owner = ? AND open = true ORDER BY createdOn, changeId") ResultSet byOwnerOpen(Account.Id id) throws OrmException; @Query("WHERE owner = ? AND open = false ORDER BY lastUpdatedOn DESC LIMIT 5") ResultSet byOwnerClosed(Account.Id id) throws OrmException; @Query("WHERE owner = ? AND open = false ORDER BY lastUpdatedOn") ResultSet byOwnerClosedAll(Account.Id id) throws OrmException; @Query("WHERE dest = ? AND status = '" + Change.STATUS_SUBMITTED + "' ORDER BY lastUpdatedOn") ResultSet submitted(Branch.NameKey dest) throws OrmException; @Query("WHERE status = '" + Change.STATUS_SUBMITTED + "'") ResultSet allSubmitted() throws OrmException; @Query("WHERE open = true AND sortKey > ? ORDER BY sortKey LIMIT ?") ResultSet allOpenPrev(String sortKey, int limit) throws OrmException; @Query("WHERE open = true AND sortKey < ? ORDER BY sortKey DESC LIMIT ?") ResultSet allOpenNext(String sortKey, int limit) throws OrmException; @Query("WHERE open = true AND dest.projectName = ?") ResultSet byProjectOpenAll(Project.NameKey p) throws OrmException; @Query("WHERE open = true AND dest = ?") ResultSet byBranchOpenAll(Branch.NameKey p) throws OrmException; @Query("WHERE open = true AND topicId = ?") ResultSet byTopicOpenAll(Topic.Id id) throws OrmException; @Query("WHERE open = true AND dest.projectName = ? AND sortKey > ?" + " ORDER BY sortKey LIMIT ?") ResultSet byProjectOpenPrev(Project.NameKey p, String sortKey, int limit) throws OrmException; @Query("WHERE open = true AND dest.projectName = ? AND sortKey < ?" + " ORDER BY sortKey DESC LIMIT ?") ResultSet byProjectOpenNext(Project.NameKey p, String sortKey, int limit) throws OrmException; @Query("WHERE open = false AND status = ? AND dest.projectName = ? AND sortKey > ?" + " ORDER BY sortKey LIMIT ?") ResultSet byProjectClosedPrev(char status, Project.NameKey p, String sortKey, int limit) throws OrmException; @Query("WHERE open = false AND status = ? AND dest.projectName = ? AND sortKey < ?" + " ORDER BY sortKey DESC LIMIT ?") ResultSet byProjectClosedNext(char status, Project.NameKey p, String sortKey, int limit) throws OrmException; @Query("WHERE open = false AND status = ? AND sortKey > ? ORDER BY sortKey LIMIT ?") ResultSet allClosedPrev(char status, String sortKey, int limit) throws OrmException; @Query("WHERE open = false AND status = ? AND sortKey < ? ORDER BY sortKey DESC LIMIT ?") ResultSet allClosedNext(char status, String sortKey, int limit) throws OrmException; @Query ResultSet all() throws OrmException; @Query("WHERE dest = ? AND status = '" + Change.STATUS_STAGING + "' ORDER BY lastUpdatedOn") ResultSet staging(Branch.NameKey dest) throws OrmException; @Query("WHERE dest = ? AND status = '" + Change.STATUS_STAGED + "' ORDER BY lastUpdatedOn") ResultSet staged(Branch.NameKey dest) throws OrmException; @Query("WHERE status = '" + Change.STATUS_STAGING + "'") ResultSet allStaging() throws OrmException; }