fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public interface MvpPresenter {
  11. public void attachView(OfferDetailsView mvpView);
  12. }
  13.  
  14. public interface OfferDetailsView {
  15. public void showProgress();
  16. public void hideProgress();
  17. }
  18.  
  19. public interface OfferDetailsPresenter extends MvpPresenter {
  20. public void downloadToAppDir(boolean isDownloadToAppCacheDir);
  21. public void onClickScreen(boolean isVisibleTopContainer);
  22. }
  23.  
  24. public interface OfferDetailsPdfMvp {
  25. interface View extends OfferDetailsView {
  26. public void openLocalPdfFile (File file, int pageNumber);
  27. }
  28. interface Presenter extends OfferDetailsPresenter {
  29. public void onPageScrolled(int page, int pageCount);
  30. }
  31. }
  32.  
  33. public static abstract class BaseOfferDetailsPresenter<T extends OfferDetailsView> implements MvpPresenter {
  34. protected T view;
  35. public T getView() {
  36. return view;
  37. }
  38. }
  39.  
  40. public static class OfferDetailsPdfPresenterImpl extends BaseOfferDetailsPresenter<OfferDetailsPdfMvp.View> {
  41. public OfferDetailsPdfPresenterImpl(OfferDetailsPdfMvp.View view) {this.view = view; }
  42. public void attachView(OfferDetailsView mvpView) { }
  43. public void viewIsReady() {
  44. getView().showProgress();
  45. // but here has cast
  46. getView().openLocalPdfFile(null, 1);
  47. }
  48. public void downloadToAppDir(boolean isDownloadToAppCacheDir) {}
  49. public void onClickScreen(boolean isVisibleTopContainer) {}
  50. }
  51.  
  52. public static void main (String[] args) throws java.lang.Exception
  53. {
  54. new OfferDetailsPdfPresenterImpl(new OfferDetailsPdfMvp.View(){
  55. public void showProgress(){}
  56. public void hideProgress(){}
  57. public void openLocalPdfFile (File file, int pageNumber) {}
  58. }).viewIsReady();
  59. }
  60. }
Success #stdin #stdout 0.05s 27916KB
stdin
Standard input is empty
stdout
Standard output is empty