X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Flibraries%2Fmodel%2Fdescriptors%2FNetworkServiceConnectionPoint.js;fp=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Flibraries%2Fmodel%2Fdescriptors%2FNetworkServiceConnectionPoint.js;h=7d8ebd3e91bc7133abf533e3598eaaf9fde252ec;hp=0000000000000000000000000000000000000000;hb=e29efc315df33d546237e270470916e26df391d6;hpb=9c5e457509ba5a1822c316635c6308874e61b4b9 diff --git a/skyquake/plugins/composer/src/src/libraries/model/descriptors/NetworkServiceConnectionPoint.js b/skyquake/plugins/composer/src/src/libraries/model/descriptors/NetworkServiceConnectionPoint.js new file mode 100644 index 000000000..7d8ebd3e9 --- /dev/null +++ b/skyquake/plugins/composer/src/src/libraries/model/descriptors/NetworkServiceConnectionPoint.js @@ -0,0 +1,119 @@ +/* + * + * Copyright 2016 RIFT.IO Inc + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +/** + * Created by onvelocity on 11/23/15. + */ + +'use strict'; + +import Position from '../../graph/Position' +import DescriptorModel from '../DescriptorModel' +import RspConnectionPointRef from './RspConnectionPointRef' +import VnfdConnectionPointRef from './VnfdConnectionPointRef' +import DescriptorModelFactory from '../DescriptorModelFactory' + +/** + * A VirtualNetworkFunctionConnectionPoint is always a child of a VNFD. We use it to build VnfdConnectionPointRef instances. So convenience + * methods are add to access the fields needed to do that. + */ +export default class ConnectionPoint extends DescriptorModel { + + static get type() { + return 'connection-point'; + } + + static get className() { + return 'VirtualNetworkFunctionConnectionPoint'; + } + + static get qualifiedType() { + return 'vnfd.' + ConnectionPoint.type; + } + + constructor(model, parent) { + super(model, parent); + this.type = ConnectionPoint.type; + this.uiState['qualified-type'] = ConnectionPoint.qualifiedType; + this.className = 'VirtualNetworkFunctionConnectionPoint'; + this.location = 'bottom-left'; + this.position = new Position(parent.position.value()); + this.position.top = parent.position.bottom; + this.position.width = 14; + this.position.height = 14; + } + + get id() { + return this.model.name; + } + + get key() { + return this.parent.key + '/' + this.model.name; + } + + get name() { + return this.model.name; + } + + get vnfdIndex() { + return this.parent.vnfdIndex; + } + + get vnfdId() { + return this.parent.vnfdId; + } + + get cpNumber() { + return this.uiState.cpNumber; + } + + set cpNumber(n) { + this.uiState.cpNumber = n; + } + + /** + * Convenience method to generate a VnfdConnectionPointRef instance from any given VirtualNetworkFunctionConnectionPoint. + * + * @returns {RspConnectionPointRef} + */ + toRspConnectionPointRef() { + const ref = new RspConnectionPointRef({}); + ref.vnfdId = this.vnfdId; + ref.vnfdIndex = this.vnfdIndex; + ref.vnfdConnectionPointName = this.name; + ref.cpNumber = this.cpNumber; + return ref; + } + + toVnfdConnectionPointRef() { + const ref = new VnfdConnectionPointRef({}); + ref.vnfdId = this.vnfdId; + ref.vnfdIndex = this.vnfdIndex; + ref.vnfdConnectionPointName = this.name; + ref.cpNumber = this.cpNumber; + return ref; + } + + canConnectTo(obj) { + return (DescriptorModelFactory.isVirtualLink(obj) || DescriptorModelFactory.isConnectionPoint(obj)) && obj.parent !== this.parent; + } + + remove() { + return this.parent.removeConnectionPoint(this); + } + +}