161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"), 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file 1861847f8eSopenharmony_ci * @kit ArkData 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport { AsyncCallback } from './@ohos.base'; 2261847f8eSopenharmony_ciimport ExtensionContext from './application/ExtensionContext'; 2361847f8eSopenharmony_ciimport Want from './@ohos.app.ability.Want'; 2461847f8eSopenharmony_ciimport dataSharePredicates from './@ohos.data.dataSharePredicates'; 2561847f8eSopenharmony_ciimport { ValuesBucket } from './@ohos.data.ValuesBucket'; 2661847f8eSopenharmony_ciimport dataShare from './@ohos.data.dataShare'; 2761847f8eSopenharmony_ci 2861847f8eSopenharmony_ci/** 2961847f8eSopenharmony_ci * Struct for a batch update operation. 3061847f8eSopenharmony_ci * 3161847f8eSopenharmony_ci * @typedef { dataShare.UpdateOperation } 3261847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 3361847f8eSopenharmony_ci * @systemapi 3461847f8eSopenharmony_ci * @stagemodelonly 3561847f8eSopenharmony_ci * @since 12 3661847f8eSopenharmony_ci */ 3761847f8eSopenharmony_citype UpdateOperation = dataShare.UpdateOperation; 3861847f8eSopenharmony_ci 3961847f8eSopenharmony_ci/** 4061847f8eSopenharmony_ci * This module provides data sharing and expansion capabilities. 4161847f8eSopenharmony_ci * 4261847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 4361847f8eSopenharmony_ci * @systemapi 4461847f8eSopenharmony_ci * @StageModelOnly 4561847f8eSopenharmony_ci * @since 9 4661847f8eSopenharmony_ci */ 4761847f8eSopenharmony_ciexport default class DataShareExtensionAbility { 4861847f8eSopenharmony_ci /** 4961847f8eSopenharmony_ci * Indicates datashare extension ability context. 5061847f8eSopenharmony_ci * 5161847f8eSopenharmony_ci * @type { ExtensionContext } 5261847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 5361847f8eSopenharmony_ci * @systemapi 5461847f8eSopenharmony_ci * @StageModelOnly 5561847f8eSopenharmony_ci * @since 10 5661847f8eSopenharmony_ci */ 5761847f8eSopenharmony_ci context: ExtensionContext; 5861847f8eSopenharmony_ci 5961847f8eSopenharmony_ci /** 6061847f8eSopenharmony_ci * Called back when a datashare extension ability is started for initialization. 6161847f8eSopenharmony_ci * 6261847f8eSopenharmony_ci * @param { Want } want - Indicates connection information about the datashare extension ability. 6361847f8eSopenharmony_ci * @param { AsyncCallback<void> } callback - callback function, no return value. 6461847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 6561847f8eSopenharmony_ci * @systemapi 6661847f8eSopenharmony_ci * @StageModelOnly 6761847f8eSopenharmony_ci * @since 9 6861847f8eSopenharmony_ci */ 6961847f8eSopenharmony_ci onCreate?(want: Want, callback: AsyncCallback<void>): void; 7061847f8eSopenharmony_ci 7161847f8eSopenharmony_ci /** 7261847f8eSopenharmony_ci * Inserts a data record into the database. This method should be implemented by a data share. 7361847f8eSopenharmony_ci * 7461847f8eSopenharmony_ci * @param { string } uri - Indicates the position where the data is to insert. 7561847f8eSopenharmony_ci * @param { ValuesBucket } valueBucket - Indicates the data to insert. 7661847f8eSopenharmony_ci * @param { AsyncCallback<number> } callback - Returns the index of the newly inserted data record. 7761847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 7861847f8eSopenharmony_ci * @systemapi 7961847f8eSopenharmony_ci * @StageModelOnly 8061847f8eSopenharmony_ci * @since 9 8161847f8eSopenharmony_ci */ 8261847f8eSopenharmony_ci insert?(uri: string, valueBucket: ValuesBucket, callback: AsyncCallback<number>): void; 8361847f8eSopenharmony_ci 8461847f8eSopenharmony_ci /** 8561847f8eSopenharmony_ci * Updates one or more data records in the database. This method should be implemented by a data share. 8661847f8eSopenharmony_ci * 8761847f8eSopenharmony_ci * @param { string } uri - Indicates the database table storing the data to update. 8861847f8eSopenharmony_ci * @param { dataSharePredicates.DataSharePredicates } predicates - Indicates filter criteria. If this parameter is 8961847f8eSopenharmony_ci * null, all data records will be updated by default. 9061847f8eSopenharmony_ci * @param { ValuesBucket } valueBucket - Indicates the data to update. This parameter can be null. 9161847f8eSopenharmony_ci * @param { AsyncCallback<number> } callback - Returns the number of data records updated. 9261847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 9361847f8eSopenharmony_ci * @systemapi 9461847f8eSopenharmony_ci * @StageModelOnly 9561847f8eSopenharmony_ci * @since 9 9661847f8eSopenharmony_ci */ 9761847f8eSopenharmony_ci update?( 9861847f8eSopenharmony_ci uri: string, 9961847f8eSopenharmony_ci predicates: dataSharePredicates.DataSharePredicates, 10061847f8eSopenharmony_ci valueBucket: ValuesBucket, 10161847f8eSopenharmony_ci callback: AsyncCallback<number> 10261847f8eSopenharmony_ci ): void; 10361847f8eSopenharmony_ci 10461847f8eSopenharmony_ci /** 10561847f8eSopenharmony_ci * Updates data records in the database. 10661847f8eSopenharmony_ci * 10761847f8eSopenharmony_ci * @param { Record<string, Array<UpdateOperation>> } operations - Indicates the data to update. 10861847f8eSopenharmony_ci * @param { AsyncCallback<Record<string, Array<number>>> } callback - Callback used to return the result. 10961847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 11061847f8eSopenharmony_ci * @systemapi 11161847f8eSopenharmony_ci * @StageModelOnly 11261847f8eSopenharmony_ci * @since 12 11361847f8eSopenharmony_ci */ 11461847f8eSopenharmony_ci batchUpdate?( 11561847f8eSopenharmony_ci operations: Record<string, Array<UpdateOperation>>, 11661847f8eSopenharmony_ci callback: AsyncCallback<Record<string, Array<number>>> 11761847f8eSopenharmony_ci ): void; 11861847f8eSopenharmony_ci 11961847f8eSopenharmony_ci /** 12061847f8eSopenharmony_ci * Deletes one or more data records. This method should be implemented by a data share. 12161847f8eSopenharmony_ci * 12261847f8eSopenharmony_ci * @param { string } uri - Indicates the database table storing the data to delete. 12361847f8eSopenharmony_ci * @param { dataSharePredicates.DataSharePredicates } predicates - Indicates filter criteria. If this parameter is 12461847f8eSopenharmony_ci * null, all data records will be deleted by default. 12561847f8eSopenharmony_ci * @param { AsyncCallback<number> } callback - Returns the number of data records deleted. 12661847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 12761847f8eSopenharmony_ci * @systemapi 12861847f8eSopenharmony_ci * @StageModelOnly 12961847f8eSopenharmony_ci * @since 9 13061847f8eSopenharmony_ci */ 13161847f8eSopenharmony_ci delete?(uri: string, predicates: dataSharePredicates.DataSharePredicates, callback: AsyncCallback<number>): void; 13261847f8eSopenharmony_ci 13361847f8eSopenharmony_ci /** 13461847f8eSopenharmony_ci * Queries one or more data records in the database. This method should be implemented by a data share. 13561847f8eSopenharmony_ci * Only RDB and distributed KVDB resultsets are supported. The current version does not support custom resultsets. 13661847f8eSopenharmony_ci * 13761847f8eSopenharmony_ci * @param { string } uri - Indicates the database table storing the data to query. 13861847f8eSopenharmony_ci * @param { dataSharePredicates.DataSharePredicates } predicates - Indicates filter criteria. If this parameter is 13961847f8eSopenharmony_ci * null, all data records will be queried by default. 14061847f8eSopenharmony_ci * @param { Array<string> } columns - Indicates the columns to be queried, in array, for example, {"name","age"}. 14161847f8eSopenharmony_ci * You should define the processing logic when this parameter is null. 14261847f8eSopenharmony_ci * @param { AsyncCallback<Object> } callback - Returns the queried data, only support result set of rdb or kvstore. 14361847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 14461847f8eSopenharmony_ci * @systemapi 14561847f8eSopenharmony_ci * @StageModelOnly 14661847f8eSopenharmony_ci * @since 9 14761847f8eSopenharmony_ci */ 14861847f8eSopenharmony_ci query?( 14961847f8eSopenharmony_ci uri: string, 15061847f8eSopenharmony_ci predicates: dataSharePredicates.DataSharePredicates, 15161847f8eSopenharmony_ci columns: Array<string>, 15261847f8eSopenharmony_ci callback: AsyncCallback<Object> 15361847f8eSopenharmony_ci ): void; 15461847f8eSopenharmony_ci 15561847f8eSopenharmony_ci /** 15661847f8eSopenharmony_ci * Inserts multiple data records into the database. This method should be implemented by a data share. 15761847f8eSopenharmony_ci * 15861847f8eSopenharmony_ci * @param { string } uri - Indicates the position where the data is to insert. 15961847f8eSopenharmony_ci * @param { Array<ValuesBucket> } valueBuckets - Indicates the data to insert. 16061847f8eSopenharmony_ci * @param { AsyncCallback<number> } callback - Returns the number of data records inserted. 16161847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 16261847f8eSopenharmony_ci * @systemapi 16361847f8eSopenharmony_ci * @StageModelOnly 16461847f8eSopenharmony_ci * @since 9 16561847f8eSopenharmony_ci */ 16661847f8eSopenharmony_ci batchInsert?(uri: string, valueBuckets: Array<ValuesBucket>, callback: AsyncCallback<number>): void; 16761847f8eSopenharmony_ci 16861847f8eSopenharmony_ci /** 16961847f8eSopenharmony_ci * Converts the given {@code uri} that refer to the data share into a normalized URI. A normalized URI can be 17061847f8eSopenharmony_ci * used across devices, persisted, backed up, and restored. It can refer to the same item in the data share 17161847f8eSopenharmony_ci * even if the context has changed. 17261847f8eSopenharmony_ci * 17361847f8eSopenharmony_ci * @param { string } uri - Indicates the uri to normalize. 17461847f8eSopenharmony_ci * @param { AsyncCallback<string> } callback - Returns the normalized uri if the data share supports URI normalization; 17561847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 17661847f8eSopenharmony_ci * @systemapi 17761847f8eSopenharmony_ci * @StageModelOnly 17861847f8eSopenharmony_ci * @since 9 17961847f8eSopenharmony_ci */ 18061847f8eSopenharmony_ci normalizeUri?(uri: string, callback: AsyncCallback<string>): void; 18161847f8eSopenharmony_ci 18261847f8eSopenharmony_ci /** 18361847f8eSopenharmony_ci * Converts the given normalized {@code uri} generated by {@link #normalizeUri(uri)} into a denormalized one. 18461847f8eSopenharmony_ci * The default implementation of this method returns the original uri passed to it. 18561847f8eSopenharmony_ci * 18661847f8eSopenharmony_ci * @param { string } uri - Indicates the uri to denormalize. 18761847f8eSopenharmony_ci * @param { AsyncCallback<string> } callback - Returns the denormalized {@code uri} object if the denormalization is 18861847f8eSopenharmony_ci * successful; returns the original {@code uri} passed to this method if 18961847f8eSopenharmony_ci * there is nothing to do; returns {@code null} if the data identified by 19061847f8eSopenharmony_ci * the original {@code uri} cannot be found in the current environment. 19161847f8eSopenharmony_ci * @syscap SystemCapability.DistributedDataManager.DataShare.Provider 19261847f8eSopenharmony_ci * @systemapi 19361847f8eSopenharmony_ci * @StageModelOnly 19461847f8eSopenharmony_ci * @since 9 19561847f8eSopenharmony_ci */ 19661847f8eSopenharmony_ci denormalizeUri?(uri: string, callback: AsyncCallback<string>): void; 19761847f8eSopenharmony_ci} 198