import org.osgi.util.promise.Promise;
import org.osgi.util.promise.Deferred;
public class BlogReader {
private final BlogService blogService;
public BlogReader(BlogService blogService) {
this.blogService = blogService;
}
public Promise<String> getBlogContent(String blogUrl) {
Deferred<String> deferred = new Deferred<>();
blogService.fetchBlogContent(blogUrl, new BlogCallback() {
@Override
public void onSuccess(String content) {
deferred.resolve(content);
}
@Override
public void onError(Exception e) {
deferred.fail(e);
}
});
return deferred.getPromise();
}
}
public class Main {
public static void main(String[] args) {
BlogService blogService = new BlogService();
BlogReader blogReader = new BlogReader(blogService);
Promise<String> promise = blogReader.getBlogContent("https://example.com/blog/1");
promise.onResolve(new Runnable() {
@Override
public void run() {
System.out.println("Blog content: " + promise.getValue());
}
});
}
}