package rx.broadcast;

import rx.Observable;
import rx.subjects.PublishSubject;
import rx.subjects.Subject;

@SuppressWarnings("WeakerAccess")
public final class InMemoryBroadcast implements Broadcast {
    private final Subject<Object, Object> values;

    public InMemoryBroadcast() {
        values = PublishSubject.create().toSerialized();
    }

    @Override
    public Observable<Void> send(final Object value) {
        return Observable.defer(() -> {
            values.onNext(value);
            return Observable.empty();
        });
    }

    @Override
    @SuppressWarnings("unchecked")
    public <T> Observable<T> valuesOfType(final Class<T> clazz) {
        return values.ofType(clazz);
    }
}

@@ -102,16 +102,84 @@
 bject;%0A%0A
+/**%0A * A %7B@link Broadcast%7D implementation that works in-memory.%0A */%0A
 @Suppres
@@ -315,16 +315,89 @@
 alues;%0A%0A
+    /**%0A     * Creates an instance of %7B@code InMemoryBroadcast%7D.%0A     */%0A
     publ
@@ -477,32 +477,69 @@
 lized();%0A    %7D%0A%0A
+    /**%0A     * %7B@inheritDoc%7D%0A     */%0A
     @Override%0A  
@@ -719,24 +719,61 @@
  %7D);%0A    %7D%0A%0A
+    /**%0A     * %7B@inheritDoc%7D%0A     */%0A
     @Overrid

Add JavaDoc to InMemoryBroadcast class