1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package foo.bar;
18 import androidx.room.*;
19 import java.util.List;
20 import io.reactivex.Completable;
21 import io.reactivex.Maybe;
22 import io.reactivex.Single;
23 
24 @Dao
25 abstract interface DeletionDao {
26 
27     @Delete
deleteUser(User user)28     void deleteUser(User user);
29     @Delete
deleteUsers(User user1, List<User> others)30     void deleteUsers(User user1, List<User> others);
31     @Delete
deleteArrayOfUsers(User[] users)32     void deleteArrayOfUsers(User[] users);
33 
34     @Delete
deleteUserAndReturnCountObject(User user)35     Integer deleteUserAndReturnCountObject(User user);
36 
37     @Delete
deleteUserAndReturnCount(User user)38     int deleteUserAndReturnCount(User user);
39     @Delete
deleteUserAndReturnCount(User user1, List<User> others)40     int deleteUserAndReturnCount(User user1, List<User> others);
41     @Delete
deleteUserAndReturnCount(User[] users)42     int deleteUserAndReturnCount(User[] users);
43 
44     @Delete
deleteUserCompletable(User user)45     Completable deleteUserCompletable(User user);
46     @Delete
deleteUserSingle(User user)47     Single<Integer> deleteUserSingle(User user);
48     @Delete
deleteUserMaybe(User user)49     Maybe<Integer> deleteUserMaybe(User user);
50 
51     @Delete
multiPKey(MultiPKeyEntity entity)52     int multiPKey(MultiPKeyEntity entity);
53 
54     @Query("DELETE FROM user where uid = :uid")
deleteByUid(int uid)55     int deleteByUid(int uid);
56 
57     @Query("DELETE FROM user where uid = :uid")
deleteByUidCompletable(int uid)58     Completable deleteByUidCompletable(int uid);
59 
60     @Query("DELETE FROM user where uid = :uid")
deleteByUidSingle(int uid)61     Single<Integer> deleteByUidSingle(int uid);
62 
63     @Query("DELETE FROM user where uid = :uid")
deleteByUidMaybe(int uid)64     Maybe<Integer> deleteByUidMaybe(int uid);
65 
66     @Query("DELETE FROM user where uid IN(:uid)")
deleteByUidList(int... uid)67     int deleteByUidList(int... uid);
68 
69     @Delete
deleteUserAndBook(User user, Book book)70     void deleteUserAndBook(User user, Book book);
71 
72     @Query("DELETE FROM user")
deleteEverything()73     int deleteEverything();
74 }
75