package org.aplikator.server;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import org.aplikator.client.shared.descriptor.EntityDTO;
import org.aplikator.server.descriptor.Application;
import org.aplikator.server.persistence.search.SearchFactory;
@SuppressWarnings("serial")
@WebServlet(
name = "AnnotatedServlet",
description = "A sample annotated servlet",
urlPatterns = {"/ddl"})
public class ApplicationLoaderServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
boolean updateDB = Boolean.parseBoolean(req.getParameter("update"));
boolean checkDB = Boolean.parseBoolean(req.getParameter("check"));
boolean reindex = Boolean.parseBoolean(req.getParameter("reindex"));
boolean createLocalizedIndex = Boolean.parseBoolean(req.getParameter("createLocalizedIndex"));
ServletOutputStream os = resp.getOutputStream();
if (createLocalizedIndex) {
os.write(Application.get().createLocalizedIndex(updateDB).getBytes());
} else if (reindex) {
String entityName = req.getParameter("entity");
EntityDTO entity = new EntityDTO(entityName, entityName);
SearchFactory.get().index(entity);
} else {
os.write(Application.get().generateDDL(updateDB, checkDB).getBytes());
}
os.close();
}
}