package com.fernandocejas.frodo.internal.observable;
import com.fernandocejas.frodo.core.annotations.VisibleForTesting;
import com.fernandocejas.frodo.internal.MessageManager;
import com.fernandocejas.frodo.joinpoint.FrodoProceedingJoinPoint;
abstract class LoggableObservable {
final FrodoProceedingJoinPoint joinPoint;
final MessageManager messageManager;
final ObservableInfo observableInfo;
LoggableObservable(FrodoProceedingJoinPoint joinPoint, MessageManager messageManager,
ObservableInfo observableInfo) {
this.joinPoint = joinPoint;
this.messageManager = messageManager;
this.observableInfo = new ObservableInfo(joinPoint);
}
abstract <T> rx.Observable<T> get(T type) throws Throwable;
@VisibleForTesting ObservableInfo getInfo() {
return observableInfo;
}
}