2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.renderer.util;
11 import java.util.Optional;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointKey;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.absolute.location.LocationType;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.absolute.location.location.type.ExternalLocationCase;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocationKey;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.renderer.endpoints.RendererEndpointKey;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.renderer.endpoints.renderer.endpoint.PeerEndpointKey;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.renderer.endpoints.renderer.endpoint.PeerExternalEndpointKey;
22 public class AddressEndpointUtils {
24 public static RendererEndpointKey toRendererEpKey(AddressEndpointKey rendererAdrEpKey) {
25 return new RendererEndpointKey(rendererAdrEpKey.getAddress(), rendererAdrEpKey.getAddressType(),
26 rendererAdrEpKey.getContextId(), rendererAdrEpKey.getContextType());
29 public static PeerEndpointKey toPeerEpKey(AddressEndpointKey peerAdrEpKey) {
30 return new PeerEndpointKey(peerAdrEpKey.getAddress(), peerAdrEpKey.getAddressType(),
31 peerAdrEpKey.getContextId(), peerAdrEpKey.getContextType());
34 public static PeerExternalEndpointKey toPeerExtEpKey(AddressEndpointKey peerAdrEpKey) {
35 return new PeerExternalEndpointKey(peerAdrEpKey.getAddress(), peerAdrEpKey.getAddressType(),
36 peerAdrEpKey.getContextId(), peerAdrEpKey.getContextType());
39 public static AddressEndpointKey fromRendererEpKey(RendererEndpointKey rendererEpKey) {
40 return new AddressEndpointKey(rendererEpKey.getAddress(), rendererEpKey.getAddressType(),
41 rendererEpKey.getContextId(), rendererEpKey.getContextType());
44 public static AddressEndpointKey fromPeerEpKey(PeerEndpointKey peerEpKey) {
45 return new AddressEndpointKey(peerEpKey.getAddress(), peerEpKey.getAddressType(), peerEpKey.getContextId(),
46 peerEpKey.getContextType());
49 public static AddressEndpointKey fromAddressEndpointWithLocationKey(AddressEndpointWithLocationKey key) {
50 return new AddressEndpointKey(key.getAddress(), key.getAddressType(), key.getContextId(), key.getContextType());
53 public static AddressEndpointKey fromPeerExtEpKey(PeerExternalEndpointKey peerExtEpKey) {
54 return new AddressEndpointKey(peerExtEpKey.getAddress(), peerExtEpKey.getAddressType(),
55 peerExtEpKey.getContextId(), peerExtEpKey.getContextType());
59 * Compares absolute external locations of address end-points in the arguments.
61 public static boolean sameExternalLocationCase(AddressEndpointWithLocation ae0, AddressEndpointWithLocation ae1) {
62 if (ae0.getAbsoluteLocation() == null || ae1.getAbsoluteLocation() == null) {
65 Optional<LocationType> loc0Type = Optional.ofNullable(ae0.getAbsoluteLocation().getLocationType());
66 Optional<LocationType> loc1Type = Optional.ofNullable(ae1.getAbsoluteLocation().getLocationType());
67 if (!(loc0Type.isPresent() && loc0Type.get() instanceof ExternalLocationCase)
68 || !(loc1Type.isPresent() && loc1Type.get() instanceof ExternalLocationCase)) {
71 ExternalLocationCase loc0 = (ExternalLocationCase) loc0Type.get();
72 ExternalLocationCase loc1 = (ExternalLocationCase) loc1Type.get();
73 return (loc0.getExternalNodeMountPoint() == null || loc1.getExternalNodeMountPoint() == null
74 || loc0.getExternalNodeConnector() == null || loc1.getExternalNodeConnector() == null) ? false : loc0
75 .getExternalNodeMountPoint().toString().equals(loc1.getExternalNodeMountPoint().toString())
76 && loc0.getExternalNodeConnector().equals(loc1.getExternalNodeConnector());