1/*
2 * Copyright (c) 2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16#ifndef UDMF_SYSTEM_DEFINED_FORM_H
17#define UDMF_SYSTEM_DEFINED_FORM_H
18
19#include "system_defined_record.h"
20#include "visibility.h"
21namespace OHOS {
22namespace UDMF {
23class API_EXPORT SystemDefinedForm : public SystemDefinedRecord {
24public:
25    SystemDefinedForm();
26    SystemDefinedForm(UDType type, ValueType value);
27
28    int64_t GetSize() override;
29
30    int32_t GetFormId() const;
31    void SetFormId(const int32_t &formId);
32    std::string GetFormName() const;
33    void SetFormName(const std::string &formName);
34    std::string GetBundleName() const;
35    void SetBundleName(const std::string &bundleName);
36    std::string GetAbilityName() const;
37    void SetAbilityName(const std::string &abilityName);
38    std::string GetModule() const;
39    void SetModule(const std::string &module);
40
41    void SetItems(UDDetails &details);
42    UDDetails GetItems();
43
44    void InitObject() override;
45
46private:
47    int32_t formId_{-1};
48    std::string formName_;
49    std::string bundleName_;
50    std::string abilityName_;
51    std::string module_;
52
53};
54} // namespace UDMF
55} // namespace OHOS
56#endif // UDMF_SYSTEM_DEFINED_FORM_H
57