package com.artemis.annotations;

import com.artemis.EntitySubscription.SubscriptionListener;
import com.artemis.utils.IntBag;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Guarantees that the decorated component is still present during
 * {@link SubscriptionListener#removed(IntBag)} - regardless of
 * removal method.
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface DelayedComponentRemoval {}

@@ -294,74 +294,109 @@
 %0A * 
-Guarantees that the decorated component is still present during%0A *
+Extends the lifecycle of this component type, ensuring removed instances are retrievable until%0A * all
  %7B@l
@@ -435,17 +435,46 @@
 (IntBag)
-%7D
+ listeners%7D have been notified
  - regar
@@ -482,14 +482,14 @@
 less
- of
 %0A *
+ of
  rem

update javadoc for @DelayedComponentRemoval