From f7a326eb312d507f0ae11e5b7edc73aba367267d Mon Sep 17 00:00:00 2001 From: shaaban Altanany Date: Mon, 3 Feb 2020 16:46:57 +0200 Subject: Package creation refactoring and save the package to CBA store. Issue-ID: CCSDK-2070 Signed-off-by: shaaban Altanany Change-Id: Iac67b71dbd48fe18319b381ee8a284ef9928ec46 --- .../creationModes/DesignerCreationMode.ts | 74 ++++++++++++++++++++++ .../creationModes/GenericCreationMode.ts | 12 ++++ .../creationModes/PackageCreation.ts | 13 ---- .../creationModes/PackageCreationBuilder.ts | 24 +++++++ .../creationModes/PackageCreationModes.ts | 54 ++++++++++++++++ .../creationModes/ScriptingCreationMode.ts | 11 ++++ 6 files changed, 175 insertions(+), 13 deletions(-) create mode 100644 cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts create mode 100644 cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/GenericCreationMode.ts delete mode 100644 cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreation.ts create mode 100644 cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationBuilder.ts create mode 100644 cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationModes.ts create mode 100644 cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/ScriptingCreationMode.ts (limited to 'cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes') diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts new file mode 100644 index 000000000..1df011948 --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts @@ -0,0 +1,74 @@ +import {PackageCreationModes} from './PackageCreationModes'; +import {CBAPackage, Definition, Scripts} from '../mapping-models/CBAPacakge.model'; +import {FilesContent} from '../mapping-models/metadata/MetaDataTab.model'; +import {Import, Metadata, VlbDefinition} from '../mapping-models/definitions/VlbDefinition'; +import {PackageCreationUtils} from '../package-creation.utils'; + + +export class DesignerCreationMode extends PackageCreationModes { + + constructor() { + super(); + } + + execute(cbaPackage: CBAPackage, packageCreationUtils: PackageCreationUtils) { + this.addToscaMetaDataFile(cbaPackage.metaData); + this.createDefinitionsFolder(cbaPackage.definitions, packageCreationUtils); + this.addScriptsFolder(cbaPackage.scripts); + } + + + /* private createDefinitionsFolder(definition: Definition) { + definition.imports.forEach((key, value) => { + console.log(key); + FilesContent.putData(key, value); + }); + + }*/ + + private addScriptsFolder(scripts: Scripts) { + scripts.files.forEach((key, value) => { + FilesContent.putData(key, value); + }); + } + + private createDefinitionsFolder(definition: Definition, packageCreationUtils: PackageCreationUtils) { + definition.imports.forEach((key, valueOfFile) => { + FilesContent.putData(key, valueOfFile); + }); + + const filenameEntry = 'Definitions/vLB_CDS.json'; + const vlbDefinition: VlbDefinition = new VlbDefinition(); + const metadata: Metadata = new Metadata(); + + metadata.template_author = 'Shaaban Ebrahim'; + metadata.template_name = definition.metaDataTab.name; + metadata.template_tags = definition.metaDataTab.tags; + metadata.template_version = definition.metaDataTab.version; + metadata['author-email'] = 'shaaban.eltanany.ext@orange.com'; + metadata['user-groups'] = 'test'; + definition.metaDataTab.mapOfCustomKey.forEach((key, customKeyValue) => { + metadata[key] = customKeyValue; + }); + vlbDefinition.metadata = metadata; + // const files = Import[definition.imports.size]; + const files: Import[] = []; + definition.imports.forEach((key, valueOfFile) => { + files.push({file: valueOfFile}); + }); + console.log(vlbDefinition); + vlbDefinition.imports = files; + /* vlbDefinition.imports = this.definition.imports; /!*[{ + this.this.definition.imports.forEach(key,value =>{ + + }); + file: 'Definitions/data_types.json' + }]; */ + + const value = packageCreationUtils.transformToJson(vlbDefinition); + FilesContent.putData(filenameEntry, value); + console.log('hello there'); + console.log(FilesContent.getMapOfFilesNamesAndContent()); + + } +} diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/GenericCreationMode.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/GenericCreationMode.ts new file mode 100644 index 000000000..58409eea8 --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/GenericCreationMode.ts @@ -0,0 +1,12 @@ +/*import {CBAPackage} from '../mapping-models/CBAPacakge.model'; +import {PackageCreationModes} from './PackageCreationModes'; + +export class GenericCreationMode extends PackageCreationModes { + + execute(cbaPackage: CBAPackage) { + this.addToscaMetaDataFile(cbaPackage.metaData); + } + + +} +*/ diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreation.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreation.ts deleted file mode 100644 index e1d28105f..000000000 --- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreation.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {CBAPackage} from '../mapping-models/CBAPacakge.model'; - -export abstract class PackageCreation { - - abstract setModeType(cbaPackage: CBAPackage); - - abstract setEntryPoint(cbaPackage: CBAPackage); - - createToscaMetaData(cbaPackage: CBAPackage) { - - } - -} diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationBuilder.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationBuilder.ts new file mode 100644 index 000000000..08443cca1 --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationBuilder.ts @@ -0,0 +1,24 @@ +import {CBAPackage} from '../mapping-models/CBAPacakge.model'; +import {ModeType} from '../mapping-models/ModeType'; +import {DesignerCreationMode} from './DesignerCreationMode'; +import {PackageCreationModes} from './PackageCreationModes'; + + +export class PackageCreationBuilder { + + constructor() { + } + + public static getCreationMode(cbaPackage: CBAPackage): PackageCreationModes { + let creationMode: PackageCreationModes; + /*if (cbaPackage.metaData.mode.includes(ModeType.Generic)) { + creationMode = new GenericCreationMode(); + } else */ + if (cbaPackage.metaData.mode.includes(ModeType.Designer)) { + creationMode = new DesignerCreationMode(); + } /*else if (cbaPackage.metaData.mode.includes(ModeType.Scripting)) { + creationMode = new ScriptingCreationMode(); + }*/ + return creationMode; + } +} diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationModes.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationModes.ts new file mode 100644 index 000000000..400304aab --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/PackageCreationModes.ts @@ -0,0 +1,54 @@ +import {CBAPackage} from '../mapping-models/CBAPacakge.model'; +import {ModeType} from '../mapping-models/ModeType'; +import {FilesContent, MetaDataTabModel} from '../mapping-models/metadata/MetaDataTab.model'; +import {PackageCreationUtils} from '../package-creation.utils'; + + +export abstract class PackageCreationModes { + + protected constructor() { + } + + public static setEntryPoint(metaDataTab: MetaDataTabModel) { + if (metaDataTab.mode.startsWith(ModeType.Designer)) { + metaDataTab.entryFileName = 'Definitions/vLB_CDS.json'; + } else { + // TODO Not implemented + metaDataTab.entryFileName = ''; + } + return metaDataTab; + } + + public static mapModeType(cbaPackage: CBAPackage) { + if (cbaPackage.metaData.mode.startsWith('Scripting')) { + cbaPackage.metaData.mode = ModeType.Scripting; + } else if (cbaPackage.metaData.mode.startsWith('Designer')) { + cbaPackage.metaData.mode = ModeType.Designer; + } else { + cbaPackage.metaData.mode = ModeType.Generic; + } + return cbaPackage; + } + + getValueOfMetaData(metaDataTab: MetaDataTabModel): string { + return 'TOSCA-Meta-File-Version: 1.0.0\n' + + 'CSAR-Version: 1.0\n' + + 'Created-By: Shaaban Ebrahim \n' + + 'Entry-Definitions:' + metaDataTab.entryFileName + '\n' + + 'Template-Name:' + metaDataTab.name + '\n' + + 'Template-Version:' + metaDataTab.version + '\n' + + 'Template-Type: ' + metaDataTab.mode + '\n' + + 'Template-Tags:' + metaDataTab.tags; + + } + + protected addToscaMetaDataFile(metaDataTab: MetaDataTabModel) { + const filename = 'TOSCA-Metadata/TOSCA.meta'; + FilesContent.putData(this.getValueOfMetaData(metaDataTab), filename); + } + + + abstract execute(cbaPackage: CBAPackage, packageCreationUtils: PackageCreationUtils) ; + + +} diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/ScriptingCreationMode.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/ScriptingCreationMode.ts new file mode 100644 index 000000000..21dce171d --- /dev/null +++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/ScriptingCreationMode.ts @@ -0,0 +1,11 @@ +/*import {CBAPackage, Definition, Scripts} from '../mapping-models/CBAPacakge.model'; +import {PackageCreationModes} from './PackageCreationModes'; +import {FilesContent} from '../mapping-models/metadata/MetaDataTab.model'; + +export class ScriptingCreationMode extends PackageCreationModes { + execute(cbaPackage: CBAPackage) { + } + + +} +*/ -- cgit 1.2.3-korg