+ private static Exclude updateExclude(Exclude hard, Exclude soft) {
+ ExcludeBuilder excludeBldr = soft == null ? new ExcludeBuilder() : new ExcludeBuilder(soft);
+
+ if (hard.getFiberBundle() != null && !hard.getFiberBundle().isEmpty()) {
+ if (excludeBldr.getFiberBundle() == null) {
+ excludeBldr.setFiberBundle(hard.getFiberBundle());
+ } else {
+ Set<String> fiberList = new HashSet<>(excludeBldr.getFiberBundle());
+ fiberList.addAll(hard.getFiberBundle());
+ excludeBldr.setFiberBundle(new HashSet<>(fiberList));
+ }
+ }
+ if (hard.getNodeId() != null && !hard.getNodeId().isEmpty()) {
+ if (excludeBldr.getNodeId() == null) {
+ excludeBldr.setNodeId(hard.getNodeId());
+ } else {
+ Set<NodeIdType> nodeIdList = new HashSet<>(excludeBldr.getNodeId());
+ nodeIdList.addAll(hard.getNodeId());
+ excludeBldr.setNodeId(new HashSet<>(nodeIdList));
+ }
+ }
+ if (hard.getSite() != null && !hard.getSite().isEmpty()) {
+ if (excludeBldr.getSite() == null) {
+ excludeBldr.setSite(hard.getSite());
+ } else {
+ Set<String> siteList = new HashSet<>(excludeBldr.getSite());
+ siteList.addAll(hard.getSite());
+ excludeBldr.setSite(new HashSet<>(siteList));
+ }
+ }
+ if (hard.getSrlgId() != null && !hard.getSrlgId().isEmpty()) {
+ if (excludeBldr.getSrlgId() == null) {
+ excludeBldr.setSrlgId(hard.getSrlgId());
+ } else {
+ Set<Uint32> srlgList = new HashSet<>(excludeBldr.getSrlgId());
+ srlgList.addAll(hard.getSrlgId());
+ excludeBldr.setSrlgId(new HashSet<>(srlgList));
+ }
+ }
+ if (hard.getSupportingServiceName() != null && !hard.getSupportingServiceName().isEmpty()) {
+ if (excludeBldr.getSupportingServiceName() == null) {
+ excludeBldr.setSupportingServiceName(hard.getSupportingServiceName());
+ } else {
+ Set<String> serviceList = new HashSet<>(excludeBldr.getSupportingServiceName());
+ serviceList.addAll(hard.getSupportingServiceName());
+ excludeBldr.setSupportingServiceName(new HashSet<>(serviceList));
+ }
+ }
+ if (hard.getLinkIdentifier() != null && !hard.getLinkIdentifier().isEmpty()) {
+ if (excludeBldr.getLinkIdentifier() == null) {
+ excludeBldr.setLinkIdentifier(hard.getLinkIdentifier());
+ } else {
+ Map<LinkIdentifierKey, LinkIdentifier> linkList = new HashMap<>(excludeBldr.getLinkIdentifier());
+ linkList.putAll(hard.getLinkIdentifier());
+ excludeBldr.setLinkIdentifier(linkList);
+ }
+ }
+ return excludeBldr.build();
+ }
+
+ private static Diversity updateDiveristy(Diversity hard, Diversity soft) {
+ DiversityBuilder diversityBldr = soft == null ? new DiversityBuilder() : new DiversityBuilder(soft);
+
+ Map<
+ org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity.existing.service
+ .constraints.ServiceIdentifierListKey,
+ org.opendaylight.yang.gen.v1.http.org.openroadm.routing.constraints.rev211210.diversity.existing.service
+ .constraints.ServiceIdentifierList> sil =
+ diversityBldr.getServiceIdentifierList() == null
+ ? new HashMap<>()
+ : new HashMap<>(diversityBldr.getServiceIdentifierList());
+ if (!hard.getServiceIdentifierList().isEmpty()) {
+ sil.putAll(hard.getServiceIdentifierList());
+ diversityBldr.setServiceIdentifierList(sil);
+ }
+ if (hard.getDiversityType() != null) {
+ diversityBldr.setDiversityType(hard.getDiversityType());
+ }
+ return diversityBldr.build();
+ }
+
+ private static Latency updateLatency(Latency hard, Latency soft) {
+ return soft == null || hard.getMaxLatency().longValue() <= soft.getMaxLatency().longValue()
+ ? new LatencyBuilder(hard).build()
+ : new LatencyBuilder(soft).build();
+ }
+
+ private static Distance updateDistance(Distance hard, Distance soft) {
+ return soft == null || hard.getMaxDistance().longValue() <= soft.getMaxDistance().longValue()
+ ? new DistanceBuilder(hard).build()
+ : new DistanceBuilder(soft).build();