package com.xenoage.zong.webserver.model.requests;
import static com.xenoage.utils.CheckUtils.checkNotNull;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.http.HttpServletResponse;
import com.xenoage.utils.annotations.NonNull;
import com.xenoage.zong.webserver.Webserver;
import com.xenoage.zong.webserver.actions.PageAction;
import com.xenoage.zong.webserver.model.Scaling;
/**
* Request to retrieve a rendered page.
*
* Example:
* <pre>{"action":"page", "id":"985d576a-e3b1-437e-9dce-569a423c43fd",
* "scaling":{"dpi":72}, "page":0}</pre>
*
* @author Andreas Wenger
*/
public class PageRequest
extends Request {
@NonNull public final String id;
@NonNull public final Scaling scaling;
public final int page;
public PageRequest(String id, Scaling scaling, int page) {
this.id = id;
this.scaling = scaling;
this.page = page;
}
@Override public void check() {
checkNotNull(id);
checkNotNull(scaling);
}
@Override public void respond(Webserver server, HttpServletResponse response)
throws SQLException, IOException {
new PageAction().perform(this, server, response);
}
}