diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fafbc3..f0da846 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Adding some utility methods [#368](https://github.com/ie3-institute/simonaAPI/issues/368) - Extending flex option handling in `ExtInputContainer` [#371](https://github.com/ie3-institute/simonaAPI/issues/371) +- Enhancing `ExtInputContainer` with `hasData` methods [#382](https://github.com/ie3-institute/simonaAPI/issues/382) ### Changed - Changes to sent and received em data [#2366](https://github.com/ie3-institute/simonaAPI/issues/366) diff --git a/src/main/java/edu/ie3/simona/api/data/container/ExtInputContainer.java b/src/main/java/edu/ie3/simona/api/data/container/ExtInputContainer.java index 81f4e05..6c571e4 100644 --- a/src/main/java/edu/ie3/simona/api/data/container/ExtInputContainer.java +++ b/src/main/java/edu/ie3/simona/api/data/container/ExtInputContainer.java @@ -72,6 +72,19 @@ public Optional getMaybeNextTick() { return maybeNextTick; } + /** Returns {@code true} if this container holds primary data. */ + public boolean hasPrimaryData() { + return !primaryData.isEmpty(); + } + + /** Returns {@code true} if this container holds em data. */ + public boolean hasEmData() { + return !flexRequests.isEmpty() + || !flexOptions.isEmpty() + || !setPoints.isEmpty() + || !emMessages.isEmpty(); + } + // add data /** diff --git a/src/test/groovy/edu/ie3/simona/api/data/container/ExtInputContainerTest.groovy b/src/test/groovy/edu/ie3/simona/api/data/container/ExtInputContainerTest.groovy index a75e6a7..d7e5851 100644 --- a/src/test/groovy/edu/ie3/simona/api/data/container/ExtInputContainerTest.groovy +++ b/src/test/groovy/edu/ie3/simona/api/data/container/ExtInputContainerTest.groovy @@ -28,18 +28,30 @@ class ExtInputContainerTest extends Specification { expect: def container1 = new ExtInputContainer(0L) container1.empty + !container1.hasPrimaryData() + !container1.hasEmData() container1.addPrimaryValue(UUID.randomUUID(), null) !container1.empty + container1.hasPrimaryData() + !container1.hasEmData() def container2 = new ExtInputContainer(0L) container2.empty + !container2.hasPrimaryData() + !container2.hasEmData() container2.addFlexComMessage(null) !container2.empty + !container2.hasPrimaryData() + container2.hasEmData() def container3 = new ExtInputContainer(0L) container3.empty + !container3.hasPrimaryData() + !container3.hasEmData() container3.addRequest(UUID.randomUUID()) !container3.empty + !container3.hasPrimaryData() + container3.hasEmData() } def "An ExtInputContainer should add primary data correctly"() {