package com.xenoage.zong.webserver.actions; import java.io.IOException; import java.sql.SQLException; import javax.servlet.http.HttpServletResponse; import com.xenoage.zong.webserver.Webserver; import com.xenoage.zong.webserver.model.requests.Request; /** * Interface for all actions on the server side, like for opening * a file, or requesting pages or audio files. * * @author Andreas Wenger */ public abstract class Action { @SuppressWarnings("unchecked") public <T extends Request> T getAs(Class<? extends Request> cls, Request request) { if (!cls.isInstance(request)) throw new IllegalArgumentException("Must be a " + cls.getSimpleName()); return (T) request; } /** * Performs this action for the given request. */ public abstract void perform(Request request, Webserver server, HttpServletResponse response) throws SQLException, IOException; }