diff options
author | k.kedron <k.kedron@partner.samsung.com> | 2021-09-20 10:06:26 +0200 |
---|---|---|
committer | k.kedron <k.kedron@partner.samsung.com> | 2021-09-20 13:04:05 +0200 |
commit | b7e91e0a92ecc0254bb66d560e38cf06e6f76ebb (patch) | |
tree | 690c4526ada4fa8754df770f2397fc08e5bec04a /src/main/java/org/onap/a1pesimulator/service/ves/RanCellFailureEventCustomizer.java | |
parent | f1563a03cabc572d1cd15260befdaa8808048fbf (diff) |
Refactoring
- ves to report package
- fileready to pm package
- according method name
Issue-ID: INT-1945
Signed-off-by: Krystian Kedron <k.kedron@partner.samsung.com>
Change-Id: I2f22c828145727ba772440fe111b5fde34446b3a
Diffstat (limited to 'src/main/java/org/onap/a1pesimulator/service/ves/RanCellFailureEventCustomizer.java')
-rw-r--r-- | src/main/java/org/onap/a1pesimulator/service/ves/RanCellFailureEventCustomizer.java | 227 |
1 files changed, 0 insertions, 227 deletions
diff --git a/src/main/java/org/onap/a1pesimulator/service/ves/RanCellFailureEventCustomizer.java b/src/main/java/org/onap/a1pesimulator/service/ves/RanCellFailureEventCustomizer.java deleted file mode 100644 index a21d1ad..0000000 --- a/src/main/java/org/onap/a1pesimulator/service/ves/RanCellFailureEventCustomizer.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (C) 2021 Samsung Electronics - * 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 - */ - -package org.onap.a1pesimulator.service.ves; - -import java.text.MessageFormat; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Optional; - -import org.onap.a1pesimulator.data.ves.VesEvent; -import org.onap.a1pesimulator.data.ves.MeasurementFields.AdditionalMeasurement; -import org.onap.a1pesimulator.service.common.EventCustomizer; -import org.onap.a1pesimulator.service.ue.RanUeHolder; -import org.onap.a1pesimulator.util.Constants; -import org.onap.a1pesimulator.util.JsonUtils; -import org.onap.a1pesimulator.util.RanVesUtils; - -import lombok.AllArgsConstructor; -import lombok.EqualsAndHashCode; - -public class RanCellFailureEventCustomizer implements EventCustomizer { - - private static final String UE_PARAM_TRAFFIC_MODEL_RANGE = "[[50->10]]"; - private final RanUeHolder ranUeHolder; - private final VesEvent event; - - private final Map<Key, Value> additionalMeasurementsValues = new HashMap<>(); - private final ValueFactory valueFactory; - - public RanCellFailureEventCustomizer(VesEvent event, RanUeHolder ranUeHolder) { - this.ranUeHolder = ranUeHolder; - this.event = event; - valueFactory = new ValueFactory(); - collectAdditionalMeasurementValues(event); - } - - @Override - public VesEvent apply(VesEvent t) { - return customizeEvent(JsonUtils.INSTANCE.clone(this.event)); - } - - private void collectAdditionalMeasurementValues(VesEvent event) { - Collection<AdditionalMeasurement> additionalMeasurementsToResolve = - event.getMeasurementFields().getAdditionalMeasurements(); - additionalMeasurementsToResolve.forEach(this::collectAdditionalMeasurementValue); - } - - private void collectAdditionalMeasurementValue(AdditionalMeasurement m) { - for (Entry<String, String> entry : m.getHashMap().entrySet()) { - if (!RanVesUtils.isRange(entry.getValue())) { - continue; - } - additionalMeasurementsValues - .putIfAbsent(new Key(m.getName(), entry.getKey()), valueFactory.getInstance(entry.getValue())); - } - } - - private VesEvent customizeEvent(VesEvent event) { - RanVesUtils.updateHeader(event); - enrichWithUeData(event); - resolveRanges(event); - return event; - } - - private void resolveRanges(VesEvent event) { - List<AdditionalMeasurement> additionalMeasurementsToResolve = - event.getMeasurementFields().getAdditionalMeasurements(); - - additionalMeasurementsToResolve.forEach(this::resolveRanges); - event.getMeasurementFields().setAdditionalMeasurements(additionalMeasurementsToResolve); - } - - private void resolveRanges(AdditionalMeasurement m) { - for (Entry<String, String> entry : m.getHashMap().entrySet()) { - Key key = new Key(m.getName(), entry.getKey()); - if (!additionalMeasurementsValues.containsKey(key)) { - continue; - } - Value value = additionalMeasurementsValues.get(key); - value.current = value.calculateCurrentValue(); - entry.setValue(value.current.toString()); - } - } - - private void enrichWithUeData(VesEvent event) { - - Optional<AdditionalMeasurement> identity = event.getMeasurementFields().getAdditionalMeasurements().stream() - .filter(msrmnt -> Constants.MEASUREMENT_FIELD_IDENTIFIER - .equalsIgnoreCase( - msrmnt.getName())) - .findAny(); - identity.ifPresent(m -> addTrafficModelMeasurement(event)); - } - - private void addTrafficModelMeasurement(VesEvent event) { - AdditionalMeasurement trafficModelMeasurement = - RanVesUtils.buildTrafficModelMeasurement(ranUeHolder, UE_PARAM_TRAFFIC_MODEL_RANGE); - event.getMeasurementFields().getAdditionalMeasurements().add(trafficModelMeasurement); - - collectAdditionalMeasurementValue(trafficModelMeasurement); - } - - // -----------helper classes - - private static class ValueFactory { - - public Value getInstance(String value) { - String[] split; - if (RanVesUtils.isRandomRange(value)) { - split = RanVesUtils.splitRandomRange(value); - return new RandomValue(Integer.valueOf(split[0]), Integer.valueOf(split[1])); - } - if (RanVesUtils.isTrandingRange(value)) { - split = RanVesUtils.splitTrendingRange(value); - Integer start = Integer.valueOf(split[0]); - Integer end = Integer.valueOf(split[1]); - if (start < end) { - return new RaisingValue(start, end); - } else if (start > end) { - return new DecreasingValue(start, end); - } - } - throw new RuntimeException(MessageFormat.format("Cannot instantiate Value from string: {0}", value)); - } - } - - private abstract static class Value { - - protected Integer start; - protected Integer end; - protected Integer current; - - public Value(Integer start, Integer end) { - this.start = start; - this.end = end; - } - - public abstract Integer calculateCurrentValue(); - } - - private static class RaisingValue extends Value { - - private int increment; - - public RaisingValue(Integer start, Integer end) { - super(start, end); - } - - @Override - public Integer calculateCurrentValue() { - if (current == null) { - return start; - } - if (increment == 0) { - increment = 1; - } else { - increment = increment * 2; - } - Integer result = start + increment; - if (result > end) { - increment = 1; - return end; - } - return result; - } - } - - private static class DecreasingValue extends Value { - - private int decrement; - - public DecreasingValue(Integer start, Integer end) { - super(start, end); - } - - @Override - public Integer calculateCurrentValue() { - if (current == null) { - return start; - } - if (decrement == 0) { - decrement = 1; - } else { - decrement = decrement * 2; - } - Integer result = start - decrement; - if (result < end) { - return end; - } - return result; - } - } - - private static class RandomValue extends Value { - - public RandomValue(Integer start, Integer end) { - super(start, end); - } - - @Override - public Integer calculateCurrentValue() { - return RanVesUtils.getRandomNumber(start, end); - } - } - - @AllArgsConstructor - @EqualsAndHashCode - private static class Key { - - private String paramName; - private String mapKey; - } -} |