fa8037ea6fbba7c42f013c04f8622544525c1f24
[osm/riftware.git] /
1 /*
2  *    Copyright 2016 RIFT.IO Inc
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16
17 /*
18  * STANDARD_RIFT_IO_COPYRIGHT
19  */
20 /**
21  * Created by onvelocity on 11/23/15.
22  */
23
24 'use strict';
25
26 import DescriptorModel from '../DescriptorModel'
27 import DescriptorModelFactory from '../DescriptorModelFactory'
28
29 export default class InternalVirtualLink extends DescriptorModel {
30
31         static get type() {
32                 return 'internal-vld';
33         }
34
35         static get className() {
36                 return 'InternalVirtualLink';
37         }
38
39         static get qualifiedType() {
40                 return 'vnfd.' + InternalVirtualLink.type;
41         }
42
43         constructor(model, parent) {
44                 super(model, parent);
45                 this.type = InternalVirtualLink.type;
46                 this.uiState['qualified-type'] = InternalVirtualLink.qualifiedType;
47                 this.className = InternalVirtualLink.className;
48         }
49
50         get title() {
51                 return super.title || (this.type + '/' + this.id);
52         }
53
54         get connection() {
55                 const list = this.model['internal-connection-point-ref'] || (this.model['internal-connection-point-ref'] = []);
56                 return list.map(d => DescriptorModelFactory.newInternalConnectionPointRef(d, this));
57         }
58
59         set connection(connections) {
60                 return this.updateModelList('internal-connection-point-ref', connections, DescriptorModelFactory.InternalConnectionPointRef);
61         }
62
63         addConnectionPoint(icp) {
64                 icp.model['internal-vld-ref'] = this.id;
65                 this.parent.removeAnyConnectionsForConnector(icp);
66                 this.connection = icp.toInternalConnectionPointRef();
67         }
68
69         removeInternalConnectionPointRefForId(id) {
70                 return this.connection = this.connection.filter(d => d.id !== id).map(d => d.id);
71         }
72
73         remove() {
74                 return this.parent.removeInternalVirtualLink(this);
75         }
76
77 }