1/**
2 * @file Describe the file
3 * Copyright (c) 2023 Huawei Device Co., Ltd.
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
17import data_rdb from '@ohos.data.relationalStore';
18import dataSharePredicates from '@ohos.data.dataSharePredicates';
19
20/**
21 * the interface of Database Processor
22 *
23 * @since 2022-05-28
24 */
25export interface DatabaseProcessor {
26  /**
27   * 高权限插入接口
28   *
29   * @param rdbStore rdb数据库
30   * @param uri DataShare的uri
31   * @param values 插入的数据
32   * @param callback 回调方法
33   */
34  insertByHighAuthority(rdbStore: data_rdb.RdbStore, uri: string, values: data_rdb.ValuesBucket, callback: Function);
35
36  /**
37   * 高权限批量插入接口
38   *
39   * @param rdbStore rdb数据库
40   * @param uri DataShare的uri
41   * @param values 插入的数据
42   * @param callback 回调方法
43   */
44  batchInsertByHighAuthority(rdbStore: data_rdb.RdbStore, uri: string,
45                             values: data_rdb.ValuesBucket[], callback: Function): void;
46
47  /**
48   * 低权限插入接口
49   *
50   * @param rdbStore rdb数据库
51   * @param uri DataShare的uri
52   * @param values 插入的数据
53   * @param callback 回调方法
54   */
55  insertByLowAuthority(rdbStore: data_rdb.RdbStore, uri: string, values: data_rdb.ValuesBucket, callback: Function);
56
57  /**
58   * 低权限批量插入接口
59   *
60   * @param rdbStore rdb数据库
61   * @param uri DataShare的uri
62   * @param values 插入的数据
63   * @param callback 回调方法
64   */
65  batchInsertByLowAuthority(rdbStore: data_rdb.RdbStore, uri: string,
66                            values: data_rdb.ValuesBucket[], callback: Function): void;
67
68  /**
69   * 高权限删除接口
70   *
71   * @param rdbStore rdb数据库
72   * @param uri DataShare的uri
73   * @param predicates 删除条件
74   * @param callback 回调方法
75   */
76  deleteByHighAuthority(rdbStore: data_rdb.RdbStore, uri: string,
77                        predicates: dataSharePredicates.DataSharePredicates, callback: Function);
78
79  /**
80   * 低权限删除接口
81   *
82   * @param rdbStore rdb数据库
83   * @param uri DataShare的uri
84   * @param predicates 删除条件
85   * @param callback 回调方法
86   */
87  deleteByLowAuthority(rdbStore: data_rdb.RdbStore, uri: string,
88                       predicates: dataSharePredicates.DataSharePredicates, callback: Function);
89
90  /**
91   * 高权限更新接口
92   *
93   * @param rdbStore rdb数据库
94   * @param uri DataShare的uri
95   * @param values 更新的数据
96   * @param predicates 更新条件
97   * @param callback 回调方法
98   */
99  updateByHighAuthority(rdbStore: data_rdb.RdbStore, uri: string, values: data_rdb.ValuesBucket,
100                        predicates: dataSharePredicates.DataSharePredicates, callback: Function);
101
102  /**
103   * 低权限更新接口
104   *
105   * @param rdbStore rdb数据库
106   * @param uri DataShare的uri
107   * @param values 更新的数据
108   * @param predicates 更新条件
109   * @param callback 回调方法
110   */
111  updateByLowAuthority(rdbStore: data_rdb.RdbStore, uri: string, values: data_rdb.ValuesBucket,
112                       predicates: dataSharePredicates.DataSharePredicates, callback: Function);
113
114  /**
115   * 高权限查询接口
116   *
117   * @param rdbStore rdb数据库
118   * @param uri DataShare的uri
119   * @param columns 查询的列名
120   * @param predicates 查询条件
121   * @param callback 回调方法
122   */
123  queryByHighAuthority(rdbStore: data_rdb.RdbStore, uri: string, columns: Array<string>,
124                       predicates: dataSharePredicates.DataSharePredicates, callback: Function);
125
126  /**
127   * 低权限查询接口
128   *
129   * @param rdbStore rdb数据库
130   * @param uri DataShare的uri
131   * @param columns 查询的列名
132   * @param predicates 查询条件
133   * @param callback 回调方法
134   */
135  queryByLowAuthority(rdbStore: data_rdb.RdbStore, uri: string, columns: Array<string>,
136                      predicates: dataSharePredicates.DataSharePredicates, callback: Function);
137}