package io.codetail.client;
public class State {
/**
* Before start loading page, show requesting page
*/
public static class OnStartLoadingPage{
public final int page;
public OnStartLoadingPage(int page) {
this.page = page;
}
}
/**
* Abstract layer for response
*/
public abstract static class OnResponseEvent<T extends Page>{
public final T page;
public OnResponseEvent(T page) {
this.page = page;
}
}
/**
* Result of pages request
*/
public static class OnPageResponseEvent extends OnResponseEvent<Page>{
public OnPageResponseEvent(Page page) {
super(page);
}
}
/**
* Result of paginated page
*/
public static class OnPaginatedPageResponseEvent extends OnResponseEvent<Page.PaginatedPage>{
public OnPaginatedPageResponseEvent(Page.PaginatedPage page) {
super(page);
}
}
/**
* Result of search request
*/
public static class OnSearchResponseEvent extends OnResponseEvent<Page.PaginatedPage>{
public OnSearchResponseEvent(Page.PaginatedPage page) {
super(page);
}
}
}