package com.fernandocejas.frodo.internal.observable; import com.fernandocejas.frodo.core.optional.Optional; import com.fernandocejas.frodo.joinpoint.FrodoJoinPoint; public class ObservableInfo { private final FrodoJoinPoint joinPoint; private String subscribeOnThread; private String observeOnThread; private long totalExecutionTime; private int totalEmittedItems; public ObservableInfo(FrodoJoinPoint joinPoint) { this.joinPoint = joinPoint; } public String getClassSimpleName() { return joinPoint.getClassSimpleName(); } public String getMethodName() { return joinPoint.getMethodName(); } public FrodoJoinPoint getJoinPoint() { return joinPoint; } public Optional<String> getSubscribeOnThread() { return Optional.fromNullable(subscribeOnThread); } public Optional<String> getObserveOnThread() { return Optional.fromNullable(observeOnThread); } public Optional<Long> getTotalExecutionTime() { if (totalExecutionTime == 0) { return Optional.absent(); } return Optional.of(totalExecutionTime); } public Optional<Integer> getTotalEmittedItems() { if (totalEmittedItems == 0) { return Optional.absent(); } return Optional.of(totalEmittedItems); } void setSubscribeOnThread(String subscribeOnThread) { this.subscribeOnThread = subscribeOnThread; } void setObserveOnThread(String observeOnThread) { this.observeOnThread = observeOnThread; } void setTotalExecutionTime(long totalExecutionTime) { this.totalExecutionTime = totalExecutionTime; } void setTotalEmittedItems(int totalEmittedItems) { this.totalEmittedItems = totalEmittedItems; } }