test_class.declarator: ONE_DAY = Duration.ofDays(1L)
test_class.modifier: private static final
test_class.original_string: private static final Duration ONE_DAY = Duration.ofDays(1L);
test_class.type: Duration
test_class.var_name: ONE_DAY
test_class.declarator: actorSystem
test_class.modifier: private
test_class.original_string: private ActorSystem actorSystem;
test_class.type: ActorSystem
test_class.var_name: actorSystem
test_class.file: services/concierge/actors/src/test/java/org/eclipse/ditto/services/concierge/actors/cleanup/credits/MessageAggregatorTest.java
test_class.identifier: MessageAggregatorTest
test_case.body: @Test
      public void reportPartialMessagesOnTimeout() {
          new TestKit(actorSystem) {{
              final TestProbe initialReceiver = TestProbe.apply(actorSystem);
  
              final ActorRef underTest =
                      actorSystem.actorOf(MessageAggregator.props(initialReceiver.ref(), Integer.class, 3, ONE_DAY));
  
              watch(underTest);
  
              underTest.tell(true, getRef());
              underTest.tell(0, getRef());
              underTest.tell(1, getRef());
              underTest.tell(MessageAggregator.TIMEOUT, getRef());
              initialReceiver.expectMsg(true);
              expectMsg(Arrays.asList(0, 1));
              expectTerminated(underTest);
          }};
  
      }
test_case.class_method_signature: MessageAggregatorTest.reportPartialMessagesOnTimeout()
test_case.full_signature: @Test public void reportPartialMessagesOnTimeout()
test_case.identifier: reportPartialMessagesOnTimeout
test_case.invocations: apply actorOf props ref watch tell getRef tell getRef tell getRef tell getRef expectMsg expectMsg asList expectTerminated
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void reportPartialMessagesOnTimeout()
focal_class.declarator: TIMEOUT = new AskTimeoutException("MessageAggregator.TIMEOUT")
focal_class.modifier: static final
focal_class.original_string: static final Object TIMEOUT = new AskTimeoutException("MessageAggregator.TIMEOUT");
focal_class.type: Object
focal_class.var_name: TIMEOUT
focal_class.declarator: log = LogUtil.obtain(this)
focal_class.modifier: private final
focal_class.original_string: private final DiagnosticLoggingAdapter log = LogUtil.obtain(this);
focal_class.type: DiagnosticLoggingAdapter
focal_class.var_name: log
focal_class.declarator: initialReceiver
focal_class.modifier: private final
focal_class.original_string: private final ActorRef initialReceiver;
focal_class.type: ActorRef
focal_class.var_name: initialReceiver
focal_class.declarator: messageClass
focal_class.modifier: private final
focal_class.original_string: private final Class<T> messageClass;
focal_class.type: Class<T>
focal_class.var_name: messageClass
focal_class.declarator: expectedMessages
focal_class.modifier: private final
focal_class.original_string: private final int expectedMessages;
focal_class.type: int
focal_class.var_name: expectedMessages
focal_class.declarator: sender = null
focal_class.modifier: @Nullable
      private
focal_class.original_string: @Nullable
      private ActorRef sender = null;
focal_class.type: ActorRef
focal_class.var_name: sender
focal_class.declarator: messages = new ArrayList<>()
focal_class.modifier: private
focal_class.original_string: private List<T> messages = new ArrayList<>();
focal_class.type: List<T>
focal_class.var_name: messages
focal_class.file: services/concierge/actors/src/main/java/org/eclipse/ditto/services/concierge/actors/cleanup/credits/MessageAggregator.java
focal_class.identifier: MessageAggregator
focal_class.class_method_signature: MessageAggregator.MessageAggregator(
              final ActorRef initialReceiver,
              final Class<T> messageClass,
              final int expectedMessages,
              final Duration timeout)
focal_class.full_signature: @SuppressWarnings("unused") private  MessageAggregator(
              final ActorRef initialReceiver,
              final Class<T> messageClass,
              final int expectedMessages,
              final Duration timeout)
focal_class.identifier: MessageAggregator
focal_class.modifiers: @SuppressWarnings("unused") private
focal_class.parameters: (
              final ActorRef initialReceiver,
              final Class<T> messageClass,
              final int expectedMessages,
              final Duration timeout)
focal_class.signature:  MessageAggregator(
              final ActorRef initialReceiver,
              final Class<T> messageClass,
              final int expectedMessages,
              final Duration timeout)
focal_class.class_method_signature: MessageAggregator.props(final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)
focal_class.full_signature: public static Props props(final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)
focal_class.identifier: props
focal_class.modifiers: public static
focal_class.parameters: (final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)
focal_class.return: Props
focal_class.signature: Props props(final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)
focal_class.class_method_signature: MessageAggregator.createReceive()
focal_class.full_signature: @Override public Receive createReceive()
focal_class.identifier: createReceive
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Receive
focal_class.signature: Receive createReceive()
focal_class.class_method_signature: MessageAggregator.listeningBehavior()
focal_class.full_signature: private Receive listeningBehavior()
focal_class.identifier: listeningBehavior
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: Receive
focal_class.signature: Receive listeningBehavior()
focal_class.class_method_signature: MessageAggregator.handleTimeout(final Object timeout)
focal_class.full_signature: private void handleTimeout(final Object timeout)
focal_class.identifier: handleTimeout
focal_class.modifiers: private
focal_class.parameters: (final Object timeout)
focal_class.return: void
focal_class.signature: void handleTimeout(final Object timeout)
focal_class.class_method_signature: MessageAggregator.reportAndStop()
focal_class.full_signature: private void reportAndStop()
focal_class.identifier: reportAndStop
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void reportAndStop()
focal_class.superclass: extends AbstractActorWithTimers
focal_method.body: public static <T> Props props(final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout) {
  
          return Props.create(MessageAggregator.class, initialReceiver, messageClass, expectedMessages, timeout);
      }
focal_method.class_method_signature: MessageAggregator.props(final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)
focal_method.full_signature: public static Props props(final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)
focal_method.identifier: props
focal_method.invocations: create
focal_method.modifiers: public static
focal_method.parameters: (final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)
focal_method.return: Props
focal_method.signature: Props props(final ActorRef initialReceiver, final Class<T> messageClass,
              final int expectedMessages, final Duration timeout)