2 * Copyright © 2018 Orange, 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
8 package org.opendaylight.transportpce.servicehandler.utils;
10 import java.util.ArrayList;
11 import java.util.Collections;
12 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.node.types.rev181130.NodeIdType;
13 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.CoRoutingBuilder;
14 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.GeneralBuilder;
15 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.DiversityBuilder;
16 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.ExcludeBuilder;
17 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.IncludeBuilder;
18 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.constraints.co.routing.or.general.general.LatencyBuilder;
19 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.diversity.existing.service.constraints.ExistingServiceApplicabilityBuilder;
20 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.HardConstraints;
21 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.HardConstraintsBuilder;
22 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.SoftConstraints;
23 import org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constrains.rev190329.routing.constraints.SoftConstraintsBuilder;
26 * Utility Class to Build Hard Constraints and Soft Constraints.
28 * @author Ahmed Helmy ( ahmad.helmy@orange.com )
31 public final class ConstraintsUtils {
33 private ConstraintsUtils() {
37 public static SoftConstraints buildSoftConstraintWithCoRouting() {
38 return new SoftConstraintsBuilder()
39 .setCoRoutingOrGeneral(new CoRoutingBuilder()
40 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.openroadm.routing
41 .constrains.rev190329.constraints.co.routing.or.general.co.routing
42 .CoRoutingBuilder().setExistingService(
43 new ArrayList<>(Collections.singletonList("existing-service 1"))).build())
45 .setCustomerCode(new ArrayList<>(Collections.singletonList("customer-code 1")))
49 public static HardConstraints buildHardConstraintWithCoRouting() {
50 return new HardConstraintsBuilder()
51 .setCoRoutingOrGeneral(new CoRoutingBuilder()
52 .setCoRouting(new org.opendaylight.yang.gen.v1.http.org.openroadm.routing
53 .constrains.rev190329.constraints.co.routing.or.general.co.routing
54 .CoRoutingBuilder().setExistingService(
55 new ArrayList<>(Collections.singletonList("existing-service 1"))).build())
57 .setCustomerCode(new ArrayList<>(Collections.singletonList("customer-code 1")))
61 public static HardConstraints buildHardConstraintWithGeneral() {
62 return new HardConstraintsBuilder()
63 .setCoRoutingOrGeneral(new GeneralBuilder()
64 .setExclude(new ExcludeBuilder()
66 new ArrayList<>(Collections.singletonList(new NodeIdType("Ex-Node-Id-1"))))
68 new ArrayList<>(Collections.singletonList("Ex-Fiber-Bundle 1")))
70 new ArrayList<>(Collections.singletonList("Ex-site 1")))
71 .setSupportingServiceName(
72 new ArrayList<>(Collections.singletonList("Ex-supporting-Service 1")))
74 .setInclude(new IncludeBuilder()
76 new ArrayList<>(Collections.singletonList(new NodeIdType("Inc-Node-Id-1"))))
78 new ArrayList<>(Collections.singletonList("Inc-Fiber-Bundle 1")))
79 .setSite(new ArrayList<>(Collections.singletonList("Inc-site 1")))
80 .setSupportingServiceName(
81 new ArrayList<>(Collections.singletonList("Inc-supporting-Service-name 1")))
83 .setDiversity(new DiversityBuilder()
85 new ArrayList<>(Collections.singletonList("div-existing-service 1")))
86 .setExistingServiceApplicability(new ExistingServiceApplicabilityBuilder()
87 .setNode(Boolean.TRUE)
88 .setSite(Boolean.TRUE)
89 .setSrlg(Boolean.TRUE)
92 .setLatency(new LatencyBuilder().setMaxLatency(1L).build())
94 .setCustomerCode(new ArrayList<>(Collections.singletonList("customer-code 1")))
98 public static HardConstraints buildHardConstraintWithNullGeneral() {
99 return new HardConstraintsBuilder()
100 .setCoRoutingOrGeneral(null)
101 .setCustomerCode(new ArrayList<>(Collections.singletonList("customer-code 1")))
105 public static SoftConstraints buildSoftConstraintWithGeneral() {
106 return new SoftConstraintsBuilder()
107 .setCoRoutingOrGeneral(new GeneralBuilder()
108 .setExclude(new ExcludeBuilder()
109 .setNodeId(new ArrayList<>())
110 .setFiberBundle(new ArrayList<>())
111 .setSite(new ArrayList<>())
112 .setSupportingServiceName(new ArrayList<>())
114 .setInclude(new IncludeBuilder()
115 .setNodeId(new ArrayList<>())
116 .setFiberBundle(new ArrayList<>())
117 .setSite(new ArrayList<>())
118 .setSupportingServiceName(new ArrayList<>())
120 .setDiversity(new DiversityBuilder()
121 .setExistingService(new ArrayList<>())
122 .setExistingServiceApplicability(new ExistingServiceApplicabilityBuilder()
126 .setCustomerCode(new ArrayList<>(Collections.singletonList("customer-code 1")))