b04c06595888b01509836d7e19b15aea42fe10a0
[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 Position from '../../graph/Position'
27 import DescriptorModel from '../DescriptorModel'
28 import DescriptorModelFactory from '../DescriptorModelFactory'
29
30 export default class InternalConnectionPoint extends DescriptorModel {
31
32         static get type() {
33                 return 'internal-connection-point';
34         }
35
36         static get className() {
37                 return 'InternalConnectionPoint';
38         }
39
40         static get qualifiedType() {
41                 return 'vnfd.vdu.' + InternalConnectionPoint.type;
42         }
43
44         constructor(model, parent) {
45                 super(model, parent);
46                 // evil type collides with the YANG property 'type' for this object
47                 this.type = 'internal-connection-point';
48                 this.uiState['qualified-type'] = InternalConnectionPoint.qualifiedType;
49                 this.className = 'InternalConnectionPoint';
50                 this.location = 'bottom-left';
51                 this.position = new Position(parent.position.value());
52                 this.position.top = parent.position.bottom;
53                 this.position.width = 14;
54                 this.position.height = 14;
55         }
56
57         get key() {
58                 return this.id;
59         }
60
61         toInternalConnectionPointRef() {
62                 return DescriptorModelFactory.newInternalConnectionPointRef(this.id);
63         }
64
65         canConnectTo(obj) {
66                 return DescriptorModelFactory.isInternalVirtualLink(obj) || (DescriptorModelFactory.isInternalConnectionPoint(obj) && obj.parent !== this.parent);
67         }
68
69         remove() {
70                 return this.parent.removeInternalConnectionPoint(this);
71         }
72
73 }