diff --git a/common/source/java/ch/systemsx/cisd/common/utilities/Counters.java b/common/source/java/ch/systemsx/cisd/common/utilities/Counters.java index 521aaf3f719c60fd7ac8cb62ae1087bf85bfa598..3a7602e4527e040d25a4df88b92738eb10685da2 100644 --- a/common/source/java/ch/systemsx/cisd/common/utilities/Counters.java +++ b/common/source/java/ch/systemsx/cisd/common/utilities/Counters.java @@ -60,4 +60,12 @@ public class Counters<T> } return counter.increment(); } + + /** + * Returns the number of different object for which {@link #count(Object)} has been invoked. + */ + public int getNumberOfDifferentObjectsCounted() + { + return counters.size(); + } } diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CountersTest.java b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CountersTest.java index 4a3effc7ff1b09f626e38aaf03229c89caf93189..45a3026543b10eafb8cd7d0cdcc085403141dd9e 100644 --- a/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CountersTest.java +++ b/common/sourceTest/java/ch/systemsx/cisd/common/utilities/CountersTest.java @@ -31,8 +31,10 @@ public class CountersTest extends AssertJUnit { Counters<String> counters = new Counters<String>(); + assertEquals(0, counters.getNumberOfDifferentObjectsCounted()); assertEquals(0, counters.getCountOf("a")); assertEquals(1, counters.count("a")); + assertEquals(1, counters.getNumberOfDifferentObjectsCounted()); assertEquals(1, counters.getCountOf("a")); assertEquals(1, counters.count("b")); assertEquals(1, counters.getCountOf("a")); @@ -41,5 +43,6 @@ public class CountersTest extends AssertJUnit assertEquals(3, counters.count("a")); assertEquals(3, counters.getCountOf("a")); assertEquals(1, counters.getCountOf("b")); + assertEquals(2, counters.getNumberOfDifferentObjectsCounted()); } }