From ed64b5edff15e702493df21aa3230b81593e6133 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Fri, 9 Jun 2017 03:19:04 +0300 Subject: [SDC-29] catalog 1707 rebase commit. Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1 Signed-off-by: Michael Lando --- catalog-ui/src/app/models/requirement.ts | 71 ++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 catalog-ui/src/app/models/requirement.ts (limited to 'catalog-ui/src/app/models/requirement.ts') diff --git a/catalog-ui/src/app/models/requirement.ts b/catalog-ui/src/app/models/requirement.ts new file mode 100644 index 0000000000..e62c809ec9 --- /dev/null +++ b/catalog-ui/src/app/models/requirement.ts @@ -0,0 +1,71 @@ +/** + * Created by obarda on 4/20/2016. + */ +'use strict'; +//this is an object contains keys, when each key has matching array. +// for example: key = tosca.capabilities.network. and the match array is array of requirements objects +export class RequirementsGroup { + [key: string]: Array; + constructor(requirementGroupObj?:RequirementsGroup) { + _.forEach(requirementGroupObj, (requirementsArrayObj:Array, instance) => { + this[instance] = []; + _.forEach(requirementsArrayObj, (requirement:Requirement):void => { + this[instance].push(new Requirement(requirement)); + }); + }); + } +} + +export class Requirement { + + //server data + capability:string; + name:string; + ownerId:string; + ownerName:string; + node:string; + uniqueId:string; + relationship:string; + minOccurrences:string; + maxOccurrences:string; + //custom + filterTerm:string; + + constructor(requirement?:Requirement) { + + if (requirement) { + this.capability = requirement.capability; + this.name = requirement.name; + this.ownerId = requirement.ownerId; + this.ownerName = requirement.ownerName; + this.node = requirement.node; + this.uniqueId = requirement.uniqueId; + this.relationship = requirement.relationship; + this.minOccurrences = requirement.minOccurrences; + this.maxOccurrences = requirement.maxOccurrences; + this.initFilterTerm(); + + } + } + + public getFullTitle():string { + return this.ownerName + ': ' + this.name + + ': [' + this.minOccurrences + ', ' + this.maxOccurrences + ']'; + } + + public toJSON = ():any => { + this.filterTerm = undefined; + return this; + }; + + private initFilterTerm = ():void => { + this.filterTerm = (this.name + " ") + + (this.ownerName + " " ) + + (this.capability ? (this.capability.substring("tosca.capabilities.".length) + " " ) : "") + + (this.node ? (this.node.substring("tosca.nodes.".length) + " ") : "") + + (this.relationship ? (this.relationship.substring("tosca.relationships.".length) + " ") : "") + + this.minOccurrences + "," + this.maxOccurrences; + } +} + + -- cgit 1.2.3-korg