adding import package basic functionalities
[ccsdk/cds.git] / cds-ui / designer-client / src / app / modules / feature-modules / packages / package-creation / creationModes / PackageCreationModes.ts
1 import {CBAPackage} from '../mapping-models/CBAPacakge.model';
2 import {ModeType} from '../mapping-models/ModeType';
3 import {FilesContent, MetaDataTabModel} from '../mapping-models/metadata/MetaDataTab.model';
4 import {PackageCreationUtils} from '../package-creation.utils';
5
6
7 export abstract class PackageCreationModes {
8
9     protected constructor() {
10     }
11
12     public static setEntryPoint(metaDataTab: MetaDataTabModel) {
13         if (metaDataTab.mode.startsWith(ModeType.Designer)) {
14             metaDataTab.entryFileName = 'Definitions/' + metaDataTab.name + '.json';
15         } else {
16             // TODO Not implemented
17             metaDataTab.entryFileName = '';
18         }
19         return metaDataTab;
20     }
21
22     public static mapModeType(cbaPackage: CBAPackage) {
23         console.log(cbaPackage.metaData.mode);
24         /* if (cbaPackage.metaData.mode.includes('Scripting')) {
25              cbaPackage.metaData.mode = ModeType.Scripting;
26          } else if (cbaPackage.metaData.mode.includes('Designer') || cbaPackage.metaData.mode.includes('DEFAULT') ) {
27              cbaPackage.metaData.mode = ModeType.Designer;
28          } else {
29              cbaPackage.metaData.mode = ModeType.Generic;
30          }*/
31         cbaPackage.metaData.mode = ModeType.Designer;
32         return cbaPackage;
33     }
34
35     getValueOfMetaData(metaDataTab: MetaDataTabModel): string {
36         let tags = '';
37         let count = 0;
38         if (metaDataTab.templateTags && metaDataTab.templateTags.size > 0) {
39             for (const tag of metaDataTab.templateTags) {
40                 count++;
41                 if (count === metaDataTab.templateTags.size) {
42                     tags += tag;
43                 } else {
44                     tags += tag + ', ';
45                 }
46             }
47         }
48         return 'TOSCA-Meta-File-Version: 1.0.0\n' +
49             'CSAR-Version: 1.0\n' +
50             'Created-By: Shaaban Ebrahim <shaaban.eltanany.ext@orange.con>\n' +
51             'Entry-Definitions:' + metaDataTab.entryFileName + '\n' +
52             'Template-Name:' + metaDataTab.name + '\n' +
53             'Template-Version:' + metaDataTab.version + '\n' +
54             'Template-Type: ' + metaDataTab.mode + '\n' +
55             'Template-Tags:' + tags;
56
57     }
58
59     protected addToscaMetaDataFile(metaDataTab: MetaDataTabModel) {
60         const filename = 'TOSCA-Metadata/TOSCA.meta';
61         FilesContent.putData(filename, this.getValueOfMetaData(metaDataTab));
62     }
63
64
65     abstract execute(cbaPackage: CBAPackage, packageCreationUtils: PackageCreationUtils);
66
67
68 }