• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-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 package ohos;
17 
18 import java.util.HashMap;
19 import java.util.List;
20 import java.util.ArrayList;
21 import java.util.Map;
22 
23 /**
24  * collection of method for ModuleAdaption.
25  *
26  */
27 class ModuleAdaption {
28 
29     private static final Log LOG = new Log(ModuleAdaption.class.toString());
30     /**
31      * convert moduleResult to uncompressResult function.
32      *
33      * @param moduleResult for module.json result
34      * @return  UncomperssResult
35      */
convertToUncompressResult(ModuleResult moduleResult)36     UncompressResult convertToUncompressResult(ModuleResult moduleResult) {
37         UncompressResult uncomperssResult = new UncompressResult();
38         uncomperssResult.setResult(moduleResult.getResult());
39         uncomperssResult.setMessage(moduleResult.getMessage());
40         for (String moduelProfile : moduleResult.moduleProfileStr) {
41             uncomperssResult.addProfileInfoStr(moduelProfile);
42         }
43         // adapt pack.info
44         uncomperssResult.setPackInfos(moduleResult.packInfos);
45         // adapt profileInfos
46         for (int i = 0; i < moduleResult.moduleProfileInfos.size(); ++i) {
47             ModuleProfileInfo moduleProfileInfo = moduleResult.moduleProfileInfos.get(i);
48             ProfileInfo profileInfo = new ProfileInfo();
49             profileInfo.hapName = moduleProfileInfo.hapName;
50             // adapt appInfo
51             profileInfo.appInfo = convertToAppInfo(moduleProfileInfo.moduleAppInfo);
52             //adapt deviceconfig
53             profileInfo.deviceConfig = convertToDeviceConfig(moduleProfileInfo.moduleAppInfo);
54             // adapt hapInfo
55             profileInfo.hapInfo = convertToHapInfo(moduleProfileInfo.moduleInfo);
56             uncomperssResult.addProfileInfo(profileInfo);
57         }
58         for (ModuleProfileInfo profileInfo : moduleResult.moduleProfileInfos) {
59             if (profileInfo.moduleAppInfo != null) {
60                 uncomperssResult.setLabel(profileInfo.moduleAppInfo.label);
61                 uncomperssResult.setIcon(profileInfo.moduleAppInfo.icon);
62             }
63         }
64         return uncomperssResult;
65     }
66 
67     /**
68      * convert ModuleAppInfo to AppInfo function.
69      *
70      * @param moduleAppInfo for module.json app result
71      * @return  AppInfo
72      */
convertToAppInfo(ModuleAppInfo moduleAppInfo)73     AppInfo convertToAppInfo(ModuleAppInfo moduleAppInfo) {
74         AppInfo appInfo = new AppInfo();
75         if (moduleAppInfo == null) {
76             LOG.error("convertToAppInfo failed: moduleAppInfo is null");
77             return appInfo;
78         }
79         appInfo.bundleName = moduleAppInfo.bundleName;
80         appInfo.debug = moduleAppInfo.debug;
81         appInfo.icon = moduleAppInfo.icon;
82         appInfo.label = moduleAppInfo.label;
83         appInfo.setLabels(moduleAppInfo.getLabels());
84         appInfo.description = moduleAppInfo.description;
85         appInfo.setDescriptions(moduleAppInfo.getDescriptions());
86         appInfo.vendor = moduleAppInfo.vendor;
87         appInfo.versionCode = String.valueOf(moduleAppInfo.versionCode);
88         appInfo.versionName = moduleAppInfo.versionName;
89         appInfo.minCompatibleVersionCode = moduleAppInfo.minCompatibleVersionCode;
90         appInfo.compatibleApiVersion = moduleAppInfo.minAPIVersion;
91         appInfo.targetApiVersion = moduleAppInfo.targetAPIVersion;
92         appInfo.releaseType = moduleAppInfo.apiReleaseType;
93         appInfo.distributedNotificationEnabled = moduleAppInfo.distributedNotificationEnabled;
94         appInfo.appName = moduleAppInfo.appName;
95         appInfo.appNameEN = moduleAppInfo.appNameEN;
96         appInfo.setBundleType(moduleAppInfo.getBundleType());
97         appInfo.setCompileSdkType(moduleAppInfo.getCompileSdkType());
98         appInfo.setCompileSdkVersion(moduleAppInfo.getCompileSdkVersion());
99         return appInfo;
100     }
101 
102     /**
103      * convert moduleAppInfo deviceTypes to DeviceConfig function.
104      *
105      * @param moduleAppInfo for module.json app result
106      * @return Map<String, DeviceConfig>
107      */
convertToDeviceConfig(ModuleAppInfo moduleAppInfo)108     Map<String, DeviceConfig> convertToDeviceConfig(ModuleAppInfo moduleAppInfo) {
109         Map<String, DeviceConfig> deviceConfigMap = new HashMap<>();
110         if (moduleAppInfo == null) {
111             return deviceConfigMap;
112         }
113         for(Map.Entry<String, ModuleDeviceType> entrty : moduleAppInfo.deviceTypes.entrySet()) {
114             DeviceConfig deviceConfig = new DeviceConfig();
115             deviceConfig.distributedNotificationEnabled = entrty.getValue().distributedNotificationEnabled;
116             deviceConfigMap.put(entrty.getKey(), deviceConfig);
117         }
118         return deviceConfigMap;
119     }
120 
121     /**
122      * convert moduleInfo to HapInfo function.
123      *
124      * @param moduleInfo for module.json module result
125      * @return HapInfo
126      */
convertToHapInfo(ModuleInfo moduleInfo)127     HapInfo convertToHapInfo(ModuleInfo moduleInfo) {
128         HapInfo hapInfo = new HapInfo();
129         if (moduleInfo == null) {
130             LOG.error("convertToHapInfo failed: moduleInfo is null");
131             return hapInfo;
132         }
133         hapInfo.name = moduleInfo.name;
134         hapInfo.distro = new Distro();
135         hapInfo.distro.moduleName = moduleInfo.name;
136         hapInfo.distro.moduleType = moduleInfo.type;
137         hapInfo.distro.installationFree = moduleInfo.installationFree;
138         hapInfo.distro.virtualMachine = moduleInfo.virtualMachine;
139         hapInfo.distro.deliveryWithInstall = moduleInfo.deliveryWithInstall;
140         hapInfo.srcEntrance = moduleInfo.srcEntrance;
141         hapInfo.description = moduleInfo.description;
142         hapInfo.setDescriptions(moduleInfo.getDescriptions());
143         hapInfo.process = moduleInfo.process;
144         hapInfo.mainElement = moduleInfo.mainElement;
145         hapInfo.deviceType = moduleInfo.deviceTypes;
146         hapInfo.uiSyntax = moduleInfo.uiSyntax;
147         // convert pages
148         hapInfo.pages = moduleInfo.pages;
149         // convert moduleshortcut to short
150         hapInfo.shortcuts = convertToShortcut(moduleInfo.moduleShortcuts);
151         // convert metadata
152         hapInfo.metaData = convertToMetadata(moduleInfo.moduleMetadataInfos);
153         // convert abilities
154         hapInfo.abilities = convertToAbilityInfo(moduleInfo.abilities);
155         // convert extension abilities to abilities
156         hapInfo.extensionAbilityInfos = moduleInfo.extensionAbilityInfos;
157         // convert request permissions
158         hapInfo.reqPermissions = moduleInfo.requestPermissions;
159         // convert distrofilter
160         hapInfo.distroFilter = moduleInfo.distroFilter;
161         hapInfo.formInfos = moduleInfo.abilityFormInfos;
162         hapInfo.commonEvents = moduleInfo.commonEvents;
163         hapInfo.definePermissions = moduleInfo.definePermissions;
164         hapInfo.moduleAtomicService = moduleInfo.moduleAtomicService;
165         hapInfo.appModel = moduleInfo.appModel;
166         hapInfo.dependencies = moduleInfo.dependenies;
167         return hapInfo;
168     }
169 
170     /**
171      * convert moduleShortcuts to HapInfo Shortcut.
172      *
173      * @param moduleShortcuts for module.json shortcut  result
174      * @return List<Shortcut>
175      */
convertToShortcut(List<ModuleShortcut> moduleShortcuts)176     List<Shortcut> convertToShortcut(List<ModuleShortcut> moduleShortcuts) {
177         List<Shortcut> shortcuts = new ArrayList<>();
178         for (ModuleShortcut value : moduleShortcuts) {
179             Shortcut shortcut = new Shortcut();
180             shortcut.shortcutId = value.getShortcutId();
181             shortcut.label = value.getLabel();
182             shortcut.icon = value.getIcon();
183             shortcut.intents = new ArrayList<>();
184             for (int j = 0; j < value.getWants().size(); ++j) {
185                 Want want = value.getWants().get(j);
186                 IntentInfo intentInfo = new IntentInfo();
187                 intentInfo.targetBundle = want.bundleName;
188                 intentInfo.targetClass = want.abilityName;
189                 shortcut.intents.add(intentInfo);
190             }
191             shortcuts.add(shortcut);
192         }
193         return shortcuts;
194     }
195 
196     /**
197      * convert metadataInfos to MetaData function.
198      *
199      * @param metadataInfos for module.json metadata  result
200      * @return MetaData
201      */
convertToMetadata(List<ModuleMetadataInfo> metadataInfos)202     MetaData convertToMetadata(List<ModuleMetadataInfo> metadataInfos) {
203         MetaData metaData = new MetaData();
204         List<CustomizeData> customizeDatas = new ArrayList<>();
205         for (ModuleMetadataInfo metadataInfo : metadataInfos) {
206             CustomizeData customizeData = new CustomizeData();
207             customizeData.name = metadataInfo.name;
208             customizeData.value = metadataInfo.value;
209             customizeData.extra = metadataInfo.resource;
210             customizeDatas.add(customizeData);
211         }
212         metaData.customizeDatas = customizeDatas;
213         return metaData;
214     }
215 
216     /**
217      * convert ModuleAbilityInfo to AbilityInfo function.
218      *
219      * @param moduleAbilityInfos for module.json ability  result
220      * @return List<AbilityInfo>
221      */
convertToAbilityInfo(List<ModuleAbilityInfo> moduleAbilityInfos)222     List<AbilityInfo> convertToAbilityInfo(List<ModuleAbilityInfo> moduleAbilityInfos) {
223         List<AbilityInfo> abilityInfos = new ArrayList<>();
224         for (ModuleAbilityInfo info : moduleAbilityInfos) {
225             AbilityInfo abilityInfo = new AbilityInfo();
226             abilityInfo.type = "page";
227             abilityInfo.name = info.name;
228             abilityInfo.srcEntrance = info.srcEntrance;
229             abilityInfo.description = info.description;
230             abilityInfo.setDescriptions(info.getDescriptions());
231             abilityInfo.launchType = info.launchType;
232             abilityInfo.icon = info.icon;
233             abilityInfo.iconPath = info.icon;
234             abilityInfo.label = info.label;
235             abilityInfo.setLabels(info.getLabels());
236             abilityInfo.labelRes = info.label;
237             abilityInfo.permissions = info.permissions;
238             abilityInfo.visible = info.visible;
239             abilityInfo.continuable = info.continuable;
240             // convert metadata
241             abilityInfo.metaData = convertToMetadata(info.metadata);
242             // convert skillInfo
243             abilityInfo.skills = info.skills;
244             // convert configchanges
245             abilityInfo.backgroundModes = info.backgroundModes;
246             abilityInfos.add(abilityInfo);
247         }
248         return abilityInfos;
249     }
250 }
251