X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=networkmodel%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Fnetworkmodel%2Fservice%2FFrequenciesServiceImpl.java;h=667320760ccb9d779e764d9fa67e9e6a2f66a89e;hb=refs%2Fchanges%2F46%2F100646%2F27;hp=930642a981856a218649ce9b4cfad28f7321549f;hpb=1aaf89ab2589e85670ef8905e7228c8ec3290a89;p=transportpce.git diff --git a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java index 930642a98..667320760 100644 --- a/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java +++ b/networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/FrequenciesServiceImpl.java @@ -7,7 +7,6 @@ */ package org.opendaylight.transportpce.networkmodel.service; -import java.math.BigDecimal; import java.util.Arrays; import java.util.BitSet; import java.util.Collection; @@ -31,38 +30,39 @@ import org.opendaylight.transportpce.common.fixedflex.GridConstant; import org.opendaylight.transportpce.common.fixedflex.GridUtils; import org.opendaylight.transportpce.networkmodel.util.OpenRoadmTopology; import org.opendaylight.yang.gen.v1.http.org.openroadm.common.types.rev181019.ModulationFormat; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.Node1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.TerminationPoint1Builder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.DegreeAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.SrgAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.CtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.PpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.RxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.TxTtpAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributes; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev200529.networks.network.node.termination.point.XpdrPortAttributesBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMaps; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsBuilder; -import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev200529.available.freq.map.AvailFreqMapsKey; -import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev200529.xpdr.port.connection.attributes.WavelengthBuilder; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.AToZDirection; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ZToADirection; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.atoz.direction.AToZ; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.path.description.ztoa.direction.ZToA; -import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev201210.pce.resource.resource.resource.TerminationPoint; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.Node1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.TerminationPoint1; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.TerminationPoint1Builder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.DegreeAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.DegreeAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.SrgAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.SrgAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.CpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.CpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.CtpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.CtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.PpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.PpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.RxTtpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.RxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.TxTtpAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.TxTtpAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.XpdrNetworkAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.XpdrNetworkAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.XpdrPortAttributes; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.topology.rev211210.networks.network.node.termination.point.XpdrPortAttributesBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.available.freq.map.AvailFreqMaps; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.available.freq.map.AvailFreqMapsBuilder; +import org.opendaylight.yang.gen.v1.http.org.openroadm.network.types.rev211210.available.freq.map.AvailFreqMapsKey; +import org.opendaylight.yang.gen.v1.http.org.openroadm.xponder.rev211210.xpdr.port.connection.attributes.WavelengthBuilder; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.AToZDirection; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ZToADirection; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.atoz.direction.AToZ; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.path.description.ztoa.direction.ZToA; +import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.pathdescription.rev210705.pce.resource.resource.resource.TerminationPoint; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.Decimal64; import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -98,8 +98,8 @@ public class FrequenciesServiceImpl implements FrequenciesService { if (atoZDirection != null && atoZDirection.getAToZMinFrequency() != null) { LOG.info("Update frequencies for a to z direction {}, used {}", atoZDirection, used); List atozTpIds = getAToZTpList(atoZDirection); - BigDecimal atozMinFrequency = atoZDirection.getAToZMinFrequency().getValue(); - BigDecimal atozMaxFrequency = atoZDirection.getAToZMaxFrequency().getValue(); + Decimal64 atozMinFrequency = atoZDirection.getAToZMinFrequency().getValue(); + Decimal64 atozMaxFrequency = atoZDirection.getAToZMaxFrequency().getValue(); Optional optionalModulationFormat = ModulationFormat .forName(atoZDirection.getModulationFormat()); if (!optionalModulationFormat.isPresent()) { @@ -117,8 +117,8 @@ public class FrequenciesServiceImpl implements FrequenciesService { if (ztoADirection != null && ztoADirection.getZToAMinFrequency() != null) { LOG.info("Update frequencies for z to a direction {}, used {}", ztoADirection, used); List ztoaTpIds = getZToATpList(ztoADirection); - BigDecimal ztoaMinFrequency = ztoADirection.getZToAMinFrequency().getValue(); - BigDecimal ztoaMaxFrequency = ztoADirection.getZToAMaxFrequency().getValue(); + Decimal64 ztoaMinFrequency = ztoADirection.getZToAMinFrequency().getValue(); + Decimal64 ztoaMaxFrequency = ztoADirection.getZToAMaxFrequency().getValue(); Optional optionalModulationFormat = ModulationFormat .forName(ztoADirection.getModulationFormat()); if (!optionalModulationFormat.isPresent()) { @@ -169,12 +169,12 @@ public class FrequenciesServiceImpl implements FrequenciesService { * @param nodeId String * @return Node1, null otherwise. */ - private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 + private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1 getCommonNetworkNodeFromDatastore(String nodeId) { - InstanceIdentifier nodeIID = + InstanceIdentifier nodeIID = OpenRoadmTopology.createCommonNetworkNodeIID(nodeId); try (ReadTransaction nodeReadTx = this.dataBroker.newReadOnlyTransaction()) { - Optional optionalNode = + Optional optionalNode = nodeReadTx .read(LogicalDatastoreType.CONFIGURATION, nodeIID) .get(Timeouts.DATASTORE_READ, TimeUnit.MILLISECONDS); @@ -199,14 +199,14 @@ public class FrequenciesServiceImpl implements FrequenciesService { /** * Set frequency map for nodes in nodeIds. - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param nodeIds List of node id * @param used boolean true if min and max frequencies are used, false otherwise. */ - private void setFrequencies4Nodes(BigDecimal minFrequency, BigDecimal maxFrequency, + private void setFrequencies4Nodes(Decimal64 atozMinFrequency, Decimal64 atozMaxFrequency, List nodeIds, boolean used) { - updateFreqMaps4Nodes(nodeIds, minFrequency, maxFrequency, used); + updateFreqMaps4Nodes(nodeIds, atozMinFrequency, atozMaxFrequency, used); } @@ -246,12 +246,12 @@ public class FrequenciesServiceImpl implements FrequenciesService { * @param tpId String * @return common network termination point, null otherwise */ - private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 + private org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1 getCommonNetworkTerminationPointFromDatastore(String nodeId, String tpId) { - InstanceIdentifier + InstanceIdentifier tpIID = OpenRoadmTopology.createCommonNetworkTerminationPointIIDBuilder(nodeId, tpId).build(); try (ReadTransaction readTx = this.dataBroker.newReadOnlyTransaction()) { - Optional + Optional optionalTerminationPoint = readTx .read(LogicalDatastoreType.CONFIGURATION, tpIID) .get(Timeouts.DATASTORE_READ, TimeUnit.MILLISECONDS); @@ -277,22 +277,22 @@ public class FrequenciesServiceImpl implements FrequenciesService { /** * Update availFreqMapsMap for min and max frequencies for termination point in tpIds. - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param rate Uint32 * @param modulationFormat ModulationFormat * @param tpIds List of NodeIdPair * @param sed boolean true if min and max frequencies are used, false otherwise. */ - private void setFrequencies4Tps(BigDecimal minFrequency, BigDecimal maxFrequency, Uint32 rate, + private void setFrequencies4Tps(Decimal64 atozMinFrequency, Decimal64 atozMaxFrequency, Uint32 rate, ModulationFormat modulationFormat, List tpIds, boolean used) { String strTpIdsList = String.join(", ", tpIds.stream().map(NodeIdPair::toString).collect(Collectors.toList())); LOG.debug("Update frequencies for termination points {}, rate {}, modulation format {}," + "min frequency {}, max frequency {}, used {}", strTpIdsList, rate, modulationFormat, - minFrequency, maxFrequency, used); + atozMinFrequency, atozMaxFrequency, used); WriteTransaction updateFrequenciesTransaction = this.dataBroker.newWriteOnlyTransaction(); for (NodeIdPair idPair : tpIds) { - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.TerminationPoint1 + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.TerminationPoint1 commonNetworkTerminationPoint = getCommonNetworkTerminationPointFromDatastore(idPair.getNodeID(), idPair.getTpID()); if (commonNetworkTerminationPoint == null) { @@ -312,41 +312,41 @@ public class FrequenciesServiceImpl implements FrequenciesService { case DEGREETXTTP: case DEGREETXRXTTP: networkTerminationPointBuilder.setTxTtpAttributes(updateTxTtpAttributes(networkTerminationPoint, - minFrequency,maxFrequency,used)); + atozMinFrequency,atozMaxFrequency,used)); break; case DEGREERXTTP: networkTerminationPointBuilder.setRxTtpAttributes(updateRxTtpAttributes(networkTerminationPoint, - minFrequency,maxFrequency,used)); + atozMinFrequency,atozMaxFrequency,used)); break; case DEGREETXCTP: case DEGREERXCTP: case DEGREETXRXCTP: networkTerminationPointBuilder.setCtpAttributes(updateCtpAttributes(networkTerminationPoint, - minFrequency,maxFrequency,used)); + atozMinFrequency,atozMaxFrequency,used)); break; case SRGTXCP: case SRGRXCP: case SRGTXRXCP: networkTerminationPointBuilder.setCpAttributes(updateCpAttributes(networkTerminationPoint, - minFrequency,maxFrequency,used)); + atozMinFrequency,atozMaxFrequency,used)); break; case SRGTXRXPP: case SRGRXPP: case SRGTXPP: networkTerminationPointBuilder.setPpAttributes(updatePpAttributes(networkTerminationPoint, - minFrequency,maxFrequency,used)); + atozMinFrequency,atozMaxFrequency,used)); break; case XPONDERNETWORK: networkTerminationPointBuilder.setXpdrNetworkAttributes( updateXpdrNetworkAttributes(networkTerminationPoint, - minFrequency, maxFrequency, rate, modulationFormat, used)).build(); + atozMinFrequency, atozMaxFrequency, rate, modulationFormat, used)).build(); break; case XPONDERCLIENT: break; case XPONDERPORT: networkTerminationPointBuilder.setXpdrPortAttributes( updateXpdrPortAttributes(networkTerminationPoint, - minFrequency, maxFrequency, rate, modulationFormat, used)).build(); + atozMinFrequency, atozMaxFrequency, rate, modulationFormat, used)).build(); break; default: LOG.warn("Termination point type {} not managed", commonNetworkTerminationPoint.getTpType()); @@ -361,10 +361,10 @@ public class FrequenciesServiceImpl implements FrequenciesService { } catch (ExecutionException | TimeoutException e) { LOG.error( "Something went wrong for frequencies update (min frequency {}, max frequency {}, used {} for TPs {}", - minFrequency, maxFrequency, used, strTpIdsList, e); + atozMinFrequency, atozMaxFrequency, used, strTpIdsList, e); } catch (InterruptedException e) { LOG.error("Frequencies update (min frequency {}, max frequency {}, used {} for TPs {} was interrupted", - minFrequency, maxFrequency, used, + atozMinFrequency, atozMaxFrequency, used, strTpIdsList, e); Thread.currentThread().interrupt(); } @@ -373,19 +373,19 @@ public class FrequenciesServiceImpl implements FrequenciesService { /** * Update availFreqMapsMap for min and max frequencies for nodes in nodeIds. * @param nodeIds List of node id - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. */ - private void updateFreqMaps4Nodes(List nodeIds, BigDecimal minFrequency, BigDecimal maxFrequency, + private void updateFreqMaps4Nodes(List nodeIds, Decimal64 atozMinFrequency, Decimal64 atozMaxFrequency, boolean used) { String strNodesList = String.join(", ", nodeIds); LOG.debug("Update frequencies for nodes {}, min frequency {}, max frequency {}, used {}", - strNodesList, minFrequency, maxFrequency, used); + strNodesList, atozMinFrequency, atozMaxFrequency, used); WriteTransaction updateFrequenciesTransaction = this.dataBroker.newWriteOnlyTransaction(); for (String nodeId : nodeIds) { Node1 networkNode = getNetworkNodeFromDatastore(nodeId); - org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev200529.Node1 commonNetworkNode = + org.opendaylight.yang.gen.v1.http.org.openroadm.common.network.rev211210.Node1 commonNetworkNode = getCommonNetworkNodeFromDatastore(nodeId); if (networkNode == null || commonNetworkNode == null) { LOG.warn( @@ -398,12 +398,12 @@ public class FrequenciesServiceImpl implements FrequenciesService { switch (commonNetworkNode.getNodeType()) { case DEGREE: networkNodeBuilder.setDegreeAttributes( - updateDegreeAttributes(networkNode.getDegreeAttributes(), minFrequency, - maxFrequency, used)); + updateDegreeAttributes(networkNode.getDegreeAttributes(), atozMinFrequency, + atozMaxFrequency, used)); break; case SRG: - networkNodeBuilder.setSrgAttributes( - updateSrgAttributes(networkNode.getSrgAttributes(), minFrequency, maxFrequency, used)); + networkNodeBuilder.setSrgAttributes(updateSrgAttributes( + networkNode.getSrgAttributes(), atozMinFrequency, atozMaxFrequency, used)); break; default: LOG.warn("Node type not managed {}", commonNetworkNode.getNodeType()); @@ -415,10 +415,10 @@ public class FrequenciesServiceImpl implements FrequenciesService { try { updateFrequenciesTransaction.commit().get(Timeouts.DATASTORE_WRITE, TimeUnit.MILLISECONDS); } catch (ExecutionException | TimeoutException e) { - LOG.error("Cannot update frequencies {} {} for nodes {}", minFrequency, maxFrequency, + LOG.error("Cannot update frequencies {} {} for nodes {}", atozMinFrequency, atozMaxFrequency, strNodesList, e); } catch (InterruptedException e) { - LOG.error("Update of frequencies {} {} for nodes {} was interrupted", minFrequency, maxFrequency, + LOG.error("Update of frequencies {} {} for nodes {} was interrupted", atozMinFrequency, atozMaxFrequency, strNodesList, e); Thread.currentThread().interrupt(); } @@ -479,18 +479,18 @@ public class FrequenciesServiceImpl implements FrequenciesService { /** * Update Wavelength for xpdr port attributes. * @param networkTerminationPoint TerminationPoint1 - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param rate Uint32 * @param modulationFormat ModulationFormat * @param used boolean true if min and max frequencies are used, false otherwise. * @return XpdrPortAttributes with Wavelength updated */ private XpdrPortAttributes updateXpdrPortAttributes(TerminationPoint1 networkTerminationPoint, - BigDecimal minFrequency, BigDecimal maxFrequency, Uint32 rate, ModulationFormat modulationFormat, + Decimal64 atozMinFrequency, Decimal64 atozMaxFrequency, Uint32 rate, ModulationFormat modulationFormat, boolean used) { LOG.debug("Update xpdr node attributes for termination point {}, min frequency {}, max frequency {}, used {}", - networkTerminationPoint, minFrequency, maxFrequency, used); + networkTerminationPoint, atozMinFrequency, atozMaxFrequency, used); XpdrPortAttributesBuilder xpdrPortAttributesBuilder; if (networkTerminationPoint != null) { xpdrPortAttributesBuilder = new XpdrPortAttributesBuilder(networkTerminationPoint.getXpdrPortAttributes()); @@ -500,7 +500,8 @@ public class FrequenciesServiceImpl implements FrequenciesService { WavelengthBuilder waveLengthBuilder = new WavelengthBuilder(); if (used) { waveLengthBuilder.setWidth(GridUtils.getWidthFromRateAndModulationFormat(rate, modulationFormat)) - .setFrequency(GridUtils.getCentralFrequency(minFrequency, maxFrequency)); + .setFrequency(GridUtils + .getCentralFrequency(atozMinFrequency.decimalValue(), atozMaxFrequency.decimalValue())); } return xpdrPortAttributesBuilder.setWavelength(waveLengthBuilder.build()).build(); } @@ -508,18 +509,18 @@ public class FrequenciesServiceImpl implements FrequenciesService { /** * Update Wavelength for xpdr network attributes. * @param networkTerminationPoint TerminationPoint1 - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param rate Uint32 * @param modulationFormat ModulationFormat * @param used boolean true if min and max frequencies are used, false otherwise. * @return XpdrNetworkAttributes with Wavelength updated */ private XpdrNetworkAttributes updateXpdrNetworkAttributes(TerminationPoint1 networkTerminationPoint, - BigDecimal minFrequency, BigDecimal maxFrequency, Uint32 rate, ModulationFormat modulationFormat, + Decimal64 atozMinFrequency, Decimal64 atozMaxFrequency, Uint32 rate, ModulationFormat modulationFormat, boolean used) { LOG.debug("Update xpdr node attributes for termination point {}, min frequency {}, max frequency {}, used {}", - networkTerminationPoint, minFrequency, maxFrequency, used); + networkTerminationPoint, atozMinFrequency, atozMaxFrequency, used); XpdrNetworkAttributesBuilder xpdrNetworkAttributesBuilder; if (networkTerminationPoint != null) { xpdrNetworkAttributesBuilder = new XpdrNetworkAttributesBuilder( @@ -530,7 +531,8 @@ public class FrequenciesServiceImpl implements FrequenciesService { WavelengthBuilder waveLengthBuilder = new WavelengthBuilder(); if (used) { waveLengthBuilder.setWidth(GridUtils.getWidthFromRateAndModulationFormat(rate, modulationFormat)) - .setFrequency(GridUtils.getCentralFrequency(minFrequency, maxFrequency)); + .setFrequency(GridUtils + .getCentralFrequency(atozMinFrequency.decimalValue(), atozMaxFrequency.decimalValue())); xpdrNetworkAttributesBuilder.setWavelength(waveLengthBuilder.build()); } else { xpdrNetworkAttributesBuilder.setWavelength(null); @@ -541,15 +543,15 @@ public class FrequenciesServiceImpl implements FrequenciesService { /** * Update freqMaps for pp attributes. * @param networkTerminationPoint TerminationPoint1 - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. * @return PpAttributes with frequency map updated */ - private PpAttributes updatePpAttributes(TerminationPoint1 networkTerminationPoint, BigDecimal minFrequency, - BigDecimal maxFrequency, boolean used) { + private PpAttributes updatePpAttributes(TerminationPoint1 networkTerminationPoint, Decimal64 atozMinFrequency, + Decimal64 atozMaxFrequency, boolean used) { LOG.debug("Update pp attributes for termination point {}, min frequency {}, max frequency {}, used {}", - networkTerminationPoint, minFrequency, maxFrequency, used); + networkTerminationPoint, atozMinFrequency, atozMaxFrequency, used); PpAttributesBuilder ppAttributesBuilder; if (networkTerminationPoint != null) { ppAttributesBuilder = new PpAttributesBuilder(networkTerminationPoint.getPpAttributes()); @@ -557,22 +559,23 @@ public class FrequenciesServiceImpl implements FrequenciesService { ppAttributesBuilder = new PpAttributesBuilder(); } Map availFreqMapsMap = ppAttributesBuilder.getAvailFreqMaps(); - return ppAttributesBuilder.setAvailFreqMaps(updateFreqMaps(minFrequency, maxFrequency, availFreqMapsMap, used)) - .build(); + return ppAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(atozMinFrequency, atozMaxFrequency, availFreqMapsMap, used)) + .build(); } /** * Update freqMaps for cp attributes. * @param networkTerminationPoint TerminationPoint1 - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. * @return CpAttributes with frequency map updated */ - private CpAttributes updateCpAttributes(TerminationPoint1 networkTerminationPoint, BigDecimal minFrequency, - BigDecimal maxFrequency, boolean used) { + private CpAttributes updateCpAttributes(TerminationPoint1 networkTerminationPoint, Decimal64 atozMinFrequency, + Decimal64 atozMaxFrequency, boolean used) { LOG.debug("Update cp attributes for termination point {}, min frequency {}, max frequency {}, used {}", - networkTerminationPoint, minFrequency, maxFrequency, used); + networkTerminationPoint, atozMinFrequency, atozMaxFrequency, used); CpAttributesBuilder cpAttributesBuilder; if (networkTerminationPoint != null) { cpAttributesBuilder = new CpAttributesBuilder(networkTerminationPoint.getCpAttributes()); @@ -580,22 +583,23 @@ public class FrequenciesServiceImpl implements FrequenciesService { cpAttributesBuilder = new CpAttributesBuilder(); } Map availFreqMapsMap = cpAttributesBuilder.getAvailFreqMaps(); - return cpAttributesBuilder.setAvailFreqMaps(updateFreqMaps(minFrequency, maxFrequency, availFreqMapsMap, used)) - .build(); + return cpAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(atozMinFrequency, atozMaxFrequency, availFreqMapsMap, used)) + .build(); } /** * Update freqMaps for ctp attributes. * @param networkTerminationPoint TerminationPoint1 - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. * @return CtpAttributes with frequency map updated */ - private CtpAttributes updateCtpAttributes(TerminationPoint1 networkTerminationPoint, BigDecimal minFrequency, - BigDecimal maxFrequency, boolean used) { + private CtpAttributes updateCtpAttributes(TerminationPoint1 networkTerminationPoint, Decimal64 atozMinFrequency, + Decimal64 atozMaxFrequency, boolean used) { LOG.debug("Update ctp attributes for termination point {}, min frequency {}, max frequency {}, used {}", - networkTerminationPoint, minFrequency, maxFrequency, used); + networkTerminationPoint, atozMinFrequency, atozMaxFrequency, used); CtpAttributesBuilder ctpAttributesBuilder; if (networkTerminationPoint != null) { ctpAttributesBuilder = new CtpAttributesBuilder(networkTerminationPoint.getCtpAttributes()); @@ -603,22 +607,23 @@ public class FrequenciesServiceImpl implements FrequenciesService { ctpAttributesBuilder = new CtpAttributesBuilder(); } Map availFreqMapsMap = ctpAttributesBuilder.getAvailFreqMaps(); - return ctpAttributesBuilder.setAvailFreqMaps(updateFreqMaps(minFrequency, maxFrequency, availFreqMapsMap, used)) - .build(); + return ctpAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(atozMinFrequency, atozMaxFrequency, availFreqMapsMap, used)) + .build(); } /** * Update freqMaps for rxtp attributes. * @param networkTerminationPoint TerminationPoint1 - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. * @return RxTtpAttributes with frequency map updated */ - private RxTtpAttributes updateRxTtpAttributes(TerminationPoint1 networkTerminationPoint, BigDecimal minFrequency, - BigDecimal maxFrequency, boolean used) { + private RxTtpAttributes updateRxTtpAttributes(TerminationPoint1 networkTerminationPoint, Decimal64 atozMinFrequency, + Decimal64 atozMaxFrequency, boolean used) { LOG.debug("Update rx attributes for termination point {}, min frequency {}, max frequency {}, used {}", - networkTerminationPoint, minFrequency, maxFrequency, used); + networkTerminationPoint, atozMinFrequency, atozMaxFrequency, used); RxTtpAttributesBuilder rxTtpAttributesBuilder; if (networkTerminationPoint != null) { rxTtpAttributesBuilder = new RxTtpAttributesBuilder(networkTerminationPoint.getRxTtpAttributes()); @@ -627,21 +632,22 @@ public class FrequenciesServiceImpl implements FrequenciesService { } Map availFreqMapsMap = rxTtpAttributesBuilder.getAvailFreqMaps(); return rxTtpAttributesBuilder - .setAvailFreqMaps(updateFreqMaps(minFrequency, maxFrequency, availFreqMapsMap, used)).build(); + .setAvailFreqMaps(updateFreqMaps(atozMinFrequency, atozMaxFrequency, availFreqMapsMap, used)) + .build(); } /** * Update freqMaps for txtp attributes. * @param networkTerminationPoint TerminationPoint1 - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. * @return TxTtpAttributes with frequency map updated */ - private TxTtpAttributes updateTxTtpAttributes(TerminationPoint1 networkTerminationPoint, BigDecimal minFrequency, - BigDecimal maxFrequency, boolean used) { + private TxTtpAttributes updateTxTtpAttributes(TerminationPoint1 networkTerminationPoint, Decimal64 atozMinFrequency, + Decimal64 atozMaxFrequency, boolean used) { LOG.debug("Update tx attributes for termination point {}, min frequency {}, max frequency {}, used {}", - networkTerminationPoint, minFrequency, maxFrequency, used); + networkTerminationPoint, atozMinFrequency, atozMaxFrequency, used); TxTtpAttributesBuilder txTtpAttributesBuilder; if (networkTerminationPoint != null) { txTtpAttributesBuilder = new TxTtpAttributesBuilder(networkTerminationPoint.getTxTtpAttributes()); @@ -650,19 +656,20 @@ public class FrequenciesServiceImpl implements FrequenciesService { } Map availFreqMapsMap = txTtpAttributesBuilder.getAvailFreqMaps(); return txTtpAttributesBuilder - .setAvailFreqMaps(updateFreqMaps(minFrequency, maxFrequency, availFreqMapsMap, used)).build(); + .setAvailFreqMaps(updateFreqMaps(atozMinFrequency, atozMaxFrequency, availFreqMapsMap, used)) + .build(); } /** * Update freqMaps for srg attributes of srgAttributes. * @param srgAttributes SrgAttributes - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. * @return SrgAttributes with frequency map updated */ - private SrgAttributes updateSrgAttributes(SrgAttributes srgAttributes, BigDecimal minFrequency, - BigDecimal maxFrequency, boolean used) { + private SrgAttributes updateSrgAttributes(SrgAttributes srgAttributes, Decimal64 atozMinFrequency, + Decimal64 atozMaxFrequency, boolean used) { Map availFreqMapsMap; SrgAttributesBuilder srgAttributesBuilder; if (srgAttributes == null) { @@ -671,20 +678,21 @@ public class FrequenciesServiceImpl implements FrequenciesService { srgAttributesBuilder = new SrgAttributesBuilder(srgAttributes); } availFreqMapsMap = srgAttributesBuilder.getAvailFreqMaps(); - return srgAttributesBuilder.setAvailFreqMaps(updateFreqMaps(minFrequency, maxFrequency, availFreqMapsMap, used)) - .build(); + return srgAttributesBuilder + .setAvailFreqMaps(updateFreqMaps(atozMinFrequency, atozMaxFrequency, availFreqMapsMap, used)) + .build(); } /** * Update freqMaps for degree attributes of degreeAttributes. * @param degreeAttributes DegreeAttributes - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param used boolean true if min and max frequencies are used, false otherwise. * @return DegreeAttributes with frequency map updated */ - private DegreeAttributes updateDegreeAttributes(DegreeAttributes degreeAttributes, BigDecimal minFrequency, - BigDecimal maxFrequency, boolean used) { + private DegreeAttributes updateDegreeAttributes(DegreeAttributes degreeAttributes, Decimal64 atozMinFrequency, + Decimal64 atozMaxFrequency, boolean used) { Map availFreqMapsMap; DegreeAttributesBuilder degreeAttributesBuilder; if (degreeAttributes == null) { @@ -694,21 +702,22 @@ public class FrequenciesServiceImpl implements FrequenciesService { } availFreqMapsMap = degreeAttributesBuilder.getAvailFreqMaps(); return degreeAttributesBuilder - .setAvailFreqMaps(updateFreqMaps(minFrequency, maxFrequency, availFreqMapsMap, used)).build(); + .setAvailFreqMaps(updateFreqMaps(atozMinFrequency, atozMaxFrequency, availFreqMapsMap, used)) + .build(); } /** * Update availFreqMapsMap for min and max frequencies for cband AvailFreqMaps. - * @param minFrequency BigDecimal - * @param maxFrequency BigDecimal + * @param atozMinFrequency BigDecimal + * @param atozMaxFrequency BigDecimal * @param availFreqMapsMap Map * @param used boolean * @return updated Update availFreqMapsMap for min and max frequencies for cband AvailFreqMaps. */ - private Map updateFreqMaps(BigDecimal minFrequency, BigDecimal maxFrequency, + private Map updateFreqMaps(Decimal64 atozMinFrequency, Decimal64 atozMaxFrequency, Map availFreqMapsMap, boolean used) { - int beginIndex = GridUtils.getIndexFromFrequency(minFrequency); - int endIndex = GridUtils.getIndexFromFrequency(maxFrequency); + int beginIndex = GridUtils.getIndexFromFrequency(atozMinFrequency); + int endIndex = GridUtils.getIndexFromFrequency(atozMaxFrequency); if (availFreqMapsMap == null) { availFreqMapsMap = GridUtils.initFreqMaps4FixedGrid2Available(); } @@ -717,12 +726,12 @@ public class FrequenciesServiceImpl implements FrequenciesService { BitSet bitSetFreq = BitSet.valueOf(availFreqMaps.getFreqMap()); LOG.debug( "Update frequency map from index {}, to index {}, min frequency {}, max frequency {}, available {} {}", - beginIndex, endIndex, minFrequency, maxFrequency, !used, bitSetFreq); + beginIndex, endIndex, atozMinFrequency, atozMaxFrequency, !used, bitSetFreq); //if used = true then bit must be set to false to indicate the slot is no more available bitSetFreq.set(beginIndex, endIndex, !used); LOG.debug( "Updated frequency map from index {}, to index {}, min frequency {}, max frequency {}, available {} {}", - beginIndex, endIndex, minFrequency, maxFrequency, !used, bitSetFreq); + beginIndex, endIndex, atozMinFrequency, atozMaxFrequency, !used, bitSetFreq); Map updatedFreqMaps = new HashMap<>(); byte[] frequenciesByteArray = bitSetFreq.toByteArray(); AvailFreqMaps updatedAvailFreqMaps = new AvailFreqMapsBuilder(availFreqMaps)