Loading src/automation/src/main/java/eu/teraflow/automation/Serializer.java +13 −4 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import context.ContextOuterClass.ConfigRule_Custom; import context.ContextOuterClass.ContextId; import context.ContextOuterClass.DeviceId; import context.ContextOuterClass.DeviceOperationalStatusEnum; import context.ContextOuterClass.Location.LocationCase; import context.ContextOuterClass.Uuid; import eu.teraflow.automation.acl.AclAction; import eu.teraflow.automation.acl.AclEntry; Loading Loading @@ -833,12 +834,14 @@ public class Serializer { final var serializedEndPointId = serialize(endPointId); final var serializedKpiSampleTypes = kpiSampleTypes.stream().map(this::serialize).collect(Collectors.toList()); if (endPointLocation != null) { final var serializedEndPointLocation = serialize(endPointLocation); builder.setEndpointLocation(serializedEndPointLocation); } builder.setEndpointId(serializedEndPointId); builder.setEndpointType(endPointType); builder.addAllKpiSampleTypes(serializedKpiSampleTypes); builder.setEndpointLocation(serializedEndPointLocation); return builder.build(); } Loading @@ -852,9 +855,15 @@ public class Serializer { final var endPointId = deserialize(serializedEndPointId); final var kpiSampleTypes = serializedKpiSampleTypes.stream().map(this::deserialize).collect(Collectors.toList()); if (serializedEndPointLocation.getLocationCase() != LocationCase.LOCATION_NOT_SET) { final var endPointLocation = deserialize(serializedEndPointLocation); return new EndPoint.EndPointBuilder(endPointId, endPointType, kpiSampleTypes) .location(endPointLocation) .build(); } return new EndPoint(endPointId, endPointType, kpiSampleTypes, endPointLocation); return new EndPoint.EndPointBuilder(endPointId, endPointType, kpiSampleTypes).build(); } public ContextOuterClass.Device serialize(Device device) { Loading src/automation/src/main/java/eu/teraflow/automation/acl/AclRuleSet.java +7 −6 Original line number Diff line number Diff line Loading @@ -16,8 +16,8 @@ package eu.teraflow.automation.acl; import eu.teraflow.automation.common.Util; import java.util.List; import java.util.stream.Collectors; public class AclRuleSet { Loading Loading @@ -64,10 +64,11 @@ public class AclRuleSet { public String toString() { return String.format( "%s:{name:\"%s\", type:\"%s\", description:\"%s\", userId:\"%s\", [%s]}", getClass().getSimpleName(), name, type.toString(), description, userId, toString(entries)); } private static <T> String toString(List<T> list) { return list.stream().map(T::toString).collect(Collectors.joining(", ")); getClass().getSimpleName(), name, type.toString(), description, userId, Util.toString(entries)); } } src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java +3 −7 Original line number Diff line number Diff line Loading @@ -16,8 +16,8 @@ package eu.teraflow.automation.context.model; import eu.teraflow.automation.common.Util; import java.util.List; import java.util.stream.Collectors; public class Device { Loading Loading @@ -102,11 +102,7 @@ public class Device { deviceType, deviceConfig, deviceOperationalStatus.toString(), toString(deviceDrivers), toString(endPoints)); } private static <T> String toString(List<T> list) { return list.stream().map(T::toString).collect(Collectors.joining(", ")); Util.toString(deviceDrivers), Util.toString(endPoints)); } } src/automation/src/main/java/eu/teraflow/automation/context/model/EndPoint.java +48 −13 Original line number Diff line number Diff line Loading @@ -16,9 +16,9 @@ package eu.teraflow.automation.context.model; import eu.teraflow.automation.common.Util; import eu.teraflow.automation.kpi_sample_types.model.KpiSampleType; import java.util.List; import java.util.stream.Collectors; public class EndPoint { private final EndPointId endPointId; Loading @@ -26,15 +26,11 @@ public class EndPoint { private final List<KpiSampleType> kpiSampleTypes; private final Location endPointLocation; public EndPoint( EndPointId endPointId, String endPointType, List<KpiSampleType> kpiSampleTypes, Location endPointLocation) { this.endPointId = endPointId; this.endPointType = endPointType; this.kpiSampleTypes = kpiSampleTypes; this.endPointLocation = endPointLocation; EndPoint(EndPointBuilder builder) { this.endPointId = builder.endPointId; this.endPointType = builder.endPointType; this.kpiSampleTypes = builder.kpiSampleTypes; this.endPointLocation = builder.endPointLocation; } public EndPointId getEndPointId() { Loading @@ -60,11 +56,50 @@ public class EndPoint { getClass().getSimpleName(), endPointId, endPointType, toString(kpiSampleTypes), Util.toString(kpiSampleTypes), endPointLocation); } private static <T> String toString(List<T> list) { return list.stream().map(T::toString).collect(Collectors.joining(", ")); public static class EndPointBuilder { private final EndPointId endPointId; private final String endPointType; private final List<KpiSampleType> kpiSampleTypes; private Location endPointLocation; public EndPointBuilder( EndPointId endPointId, String endPointType, List<KpiSampleType> kpiSampleTypes) { this.endPointId = endPointId; this.endPointType = endPointType; this.kpiSampleTypes = kpiSampleTypes; } public EndPointBuilder location(Location endPointLocation) { this.endPointLocation = endPointLocation; return this; } public EndPoint build() { EndPoint endPoint = new EndPoint(this); validateEndPointObject(endPoint); return endPoint; } private void validateEndPointObject(EndPoint endPoint) { final var validatedEndPointId = endPoint.getEndPointId(); final var validatedEndPointType = endPoint.getEndPointType(); final var validatedKpiSampleTypes = endPoint.getKpiSampleTypes(); if (validatedEndPointId == null) { throw new IllegalStateException("EndPoint ID cannot be null"); } if (validatedEndPointType == null) { throw new IllegalStateException("EndPoint type cannot be null"); } if (validatedKpiSampleTypes == null) { throw new IllegalStateException("Kpi sample types cannot be null"); } } } } src/automation/src/test/java/eu/teraflow/automation/AutomationFunctionalServiceTest.java +17 −5 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import eu.teraflow.automation.context.model.Device; import eu.teraflow.automation.context.model.DeviceConfig; import eu.teraflow.automation.context.model.DeviceDriverEnum; import eu.teraflow.automation.context.model.DeviceOperationalStatus; import eu.teraflow.automation.context.model.EndPoint; import eu.teraflow.automation.context.model.EndPoint.EndPointBuilder; import eu.teraflow.automation.context.model.EndPointId; import eu.teraflow.automation.context.model.Location; import eu.teraflow.automation.context.model.LocationTypeRegion; Loading Loading @@ -109,7 +109,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionA = new LocationTypeRegion("ATH"); final var locationA = new Location(locationTypeRegionA); final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); final var endPointA = new EndPointBuilder(endPointIdA, endPointTypeA, kpiSampleTypesA) .location(locationA) .build(); final var topologyIdB = new TopologyId("contextIdB", "idB"); final var deviceIdB = "deviceIdB"; Loading @@ -120,7 +123,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionB = new LocationTypeRegion("ATH"); final var locationB = new Location(locationTypeRegionB); final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); final var endPointB = new EndPointBuilder(endPointIdB, endPointTypeB, kpiSampleTypesB) .location(locationB) .build(); final var endPoints = List.of(endPointA, endPointB); Loading Loading @@ -217,7 +223,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionA = new LocationTypeRegion("ATH"); final var locationA = new Location(locationTypeRegionA); final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); final var endPointA = new EndPointBuilder(endPointIdA, endPointTypeA, kpiSampleTypesA) .location(locationA) .build(); final var topologyIdB = new TopologyId("contextIdB", "idB"); final var deviceIdB = "deviceIdB"; Loading @@ -228,7 +237,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionB = new LocationTypeRegion("ATH"); final var locationB = new Location(locationTypeRegionB); final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); final var endPointB = new EndPointBuilder(endPointIdB, endPointTypeB, kpiSampleTypesB) .location(locationB) .build(); final var endPoints = List.of(endPointA, endPointB); Loading Loading
src/automation/src/main/java/eu/teraflow/automation/Serializer.java +13 −4 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import context.ContextOuterClass.ConfigRule_Custom; import context.ContextOuterClass.ContextId; import context.ContextOuterClass.DeviceId; import context.ContextOuterClass.DeviceOperationalStatusEnum; import context.ContextOuterClass.Location.LocationCase; import context.ContextOuterClass.Uuid; import eu.teraflow.automation.acl.AclAction; import eu.teraflow.automation.acl.AclEntry; Loading Loading @@ -833,12 +834,14 @@ public class Serializer { final var serializedEndPointId = serialize(endPointId); final var serializedKpiSampleTypes = kpiSampleTypes.stream().map(this::serialize).collect(Collectors.toList()); if (endPointLocation != null) { final var serializedEndPointLocation = serialize(endPointLocation); builder.setEndpointLocation(serializedEndPointLocation); } builder.setEndpointId(serializedEndPointId); builder.setEndpointType(endPointType); builder.addAllKpiSampleTypes(serializedKpiSampleTypes); builder.setEndpointLocation(serializedEndPointLocation); return builder.build(); } Loading @@ -852,9 +855,15 @@ public class Serializer { final var endPointId = deserialize(serializedEndPointId); final var kpiSampleTypes = serializedKpiSampleTypes.stream().map(this::deserialize).collect(Collectors.toList()); if (serializedEndPointLocation.getLocationCase() != LocationCase.LOCATION_NOT_SET) { final var endPointLocation = deserialize(serializedEndPointLocation); return new EndPoint.EndPointBuilder(endPointId, endPointType, kpiSampleTypes) .location(endPointLocation) .build(); } return new EndPoint(endPointId, endPointType, kpiSampleTypes, endPointLocation); return new EndPoint.EndPointBuilder(endPointId, endPointType, kpiSampleTypes).build(); } public ContextOuterClass.Device serialize(Device device) { Loading
src/automation/src/main/java/eu/teraflow/automation/acl/AclRuleSet.java +7 −6 Original line number Diff line number Diff line Loading @@ -16,8 +16,8 @@ package eu.teraflow.automation.acl; import eu.teraflow.automation.common.Util; import java.util.List; import java.util.stream.Collectors; public class AclRuleSet { Loading Loading @@ -64,10 +64,11 @@ public class AclRuleSet { public String toString() { return String.format( "%s:{name:\"%s\", type:\"%s\", description:\"%s\", userId:\"%s\", [%s]}", getClass().getSimpleName(), name, type.toString(), description, userId, toString(entries)); } private static <T> String toString(List<T> list) { return list.stream().map(T::toString).collect(Collectors.joining(", ")); getClass().getSimpleName(), name, type.toString(), description, userId, Util.toString(entries)); } }
src/automation/src/main/java/eu/teraflow/automation/context/model/Device.java +3 −7 Original line number Diff line number Diff line Loading @@ -16,8 +16,8 @@ package eu.teraflow.automation.context.model; import eu.teraflow.automation.common.Util; import java.util.List; import java.util.stream.Collectors; public class Device { Loading Loading @@ -102,11 +102,7 @@ public class Device { deviceType, deviceConfig, deviceOperationalStatus.toString(), toString(deviceDrivers), toString(endPoints)); } private static <T> String toString(List<T> list) { return list.stream().map(T::toString).collect(Collectors.joining(", ")); Util.toString(deviceDrivers), Util.toString(endPoints)); } }
src/automation/src/main/java/eu/teraflow/automation/context/model/EndPoint.java +48 −13 Original line number Diff line number Diff line Loading @@ -16,9 +16,9 @@ package eu.teraflow.automation.context.model; import eu.teraflow.automation.common.Util; import eu.teraflow.automation.kpi_sample_types.model.KpiSampleType; import java.util.List; import java.util.stream.Collectors; public class EndPoint { private final EndPointId endPointId; Loading @@ -26,15 +26,11 @@ public class EndPoint { private final List<KpiSampleType> kpiSampleTypes; private final Location endPointLocation; public EndPoint( EndPointId endPointId, String endPointType, List<KpiSampleType> kpiSampleTypes, Location endPointLocation) { this.endPointId = endPointId; this.endPointType = endPointType; this.kpiSampleTypes = kpiSampleTypes; this.endPointLocation = endPointLocation; EndPoint(EndPointBuilder builder) { this.endPointId = builder.endPointId; this.endPointType = builder.endPointType; this.kpiSampleTypes = builder.kpiSampleTypes; this.endPointLocation = builder.endPointLocation; } public EndPointId getEndPointId() { Loading @@ -60,11 +56,50 @@ public class EndPoint { getClass().getSimpleName(), endPointId, endPointType, toString(kpiSampleTypes), Util.toString(kpiSampleTypes), endPointLocation); } private static <T> String toString(List<T> list) { return list.stream().map(T::toString).collect(Collectors.joining(", ")); public static class EndPointBuilder { private final EndPointId endPointId; private final String endPointType; private final List<KpiSampleType> kpiSampleTypes; private Location endPointLocation; public EndPointBuilder( EndPointId endPointId, String endPointType, List<KpiSampleType> kpiSampleTypes) { this.endPointId = endPointId; this.endPointType = endPointType; this.kpiSampleTypes = kpiSampleTypes; } public EndPointBuilder location(Location endPointLocation) { this.endPointLocation = endPointLocation; return this; } public EndPoint build() { EndPoint endPoint = new EndPoint(this); validateEndPointObject(endPoint); return endPoint; } private void validateEndPointObject(EndPoint endPoint) { final var validatedEndPointId = endPoint.getEndPointId(); final var validatedEndPointType = endPoint.getEndPointType(); final var validatedKpiSampleTypes = endPoint.getKpiSampleTypes(); if (validatedEndPointId == null) { throw new IllegalStateException("EndPoint ID cannot be null"); } if (validatedEndPointType == null) { throw new IllegalStateException("EndPoint type cannot be null"); } if (validatedKpiSampleTypes == null) { throw new IllegalStateException("Kpi sample types cannot be null"); } } } }
src/automation/src/test/java/eu/teraflow/automation/AutomationFunctionalServiceTest.java +17 −5 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ import eu.teraflow.automation.context.model.Device; import eu.teraflow.automation.context.model.DeviceConfig; import eu.teraflow.automation.context.model.DeviceDriverEnum; import eu.teraflow.automation.context.model.DeviceOperationalStatus; import eu.teraflow.automation.context.model.EndPoint; import eu.teraflow.automation.context.model.EndPoint.EndPointBuilder; import eu.teraflow.automation.context.model.EndPointId; import eu.teraflow.automation.context.model.Location; import eu.teraflow.automation.context.model.LocationTypeRegion; Loading Loading @@ -109,7 +109,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionA = new LocationTypeRegion("ATH"); final var locationA = new Location(locationTypeRegionA); final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); final var endPointA = new EndPointBuilder(endPointIdA, endPointTypeA, kpiSampleTypesA) .location(locationA) .build(); final var topologyIdB = new TopologyId("contextIdB", "idB"); final var deviceIdB = "deviceIdB"; Loading @@ -120,7 +123,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionB = new LocationTypeRegion("ATH"); final var locationB = new Location(locationTypeRegionB); final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); final var endPointB = new EndPointBuilder(endPointIdB, endPointTypeB, kpiSampleTypesB) .location(locationB) .build(); final var endPoints = List.of(endPointA, endPointB); Loading Loading @@ -217,7 +223,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionA = new LocationTypeRegion("ATH"); final var locationA = new Location(locationTypeRegionA); final var endPointA = new EndPoint(endPointIdA, endPointTypeA, kpiSampleTypesA, locationA); final var endPointA = new EndPointBuilder(endPointIdA, endPointTypeA, kpiSampleTypesA) .location(locationA) .build(); final var topologyIdB = new TopologyId("contextIdB", "idB"); final var deviceIdB = "deviceIdB"; Loading @@ -228,7 +237,10 @@ class AutomationFunctionalServiceTest { List.of(KpiSampleType.BYTES_RECEIVED, KpiSampleType.BYTES_TRANSMITTED); final var locationTypeRegionB = new LocationTypeRegion("ATH"); final var locationB = new Location(locationTypeRegionB); final var endPointB = new EndPoint(endPointIdB, endPointTypeB, kpiSampleTypesB, locationB); final var endPointB = new EndPointBuilder(endPointIdB, endPointTypeB, kpiSampleTypesB) .location(locationB) .build(); final var endPoints = List.of(endPointA, endPointB); Loading