/* * Copyright Aduna (http://www.aduna-software.com/) (c) 2007. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.http.server.repository; import static javax.servlet.http.HttpServletResponse.SC_OK; import java.io.IOException; import java.io.OutputStream; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.openrdf.query.resultio.BooleanQueryResultFormat; import org.openrdf.query.resultio.BooleanQueryResultWriter; import org.openrdf.query.resultio.BooleanQueryResultWriterFactory; /** * View used to render boolean query results. Renders results in a format * specified using a parameter or Accept header. * * @author Arjohn Kampman */ public class BooleanQueryResultView extends QueryResultView { private static final BooleanQueryResultView INSTANCE = new BooleanQueryResultView(); public static BooleanQueryResultView getInstance() { return INSTANCE; } private BooleanQueryResultView() { } public String getContentType() { return null; } @SuppressWarnings("unchecked") public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws IOException { BooleanQueryResultWriterFactory brWriterFactory = (BooleanQueryResultWriterFactory)model.get(FACTORY_KEY); BooleanQueryResultFormat brFormat = brWriterFactory.getBooleanQueryResultFormat(); response.setStatus(SC_OK); setContentType(response, brFormat); setContentDisposition(model, response, brFormat); OutputStream out = response.getOutputStream(); try { BooleanQueryResultWriter qrWriter = brWriterFactory.getWriter(out); boolean value = (Boolean)model.get(QUERY_RESULT_KEY); qrWriter.write(value); } finally { out.close(); } } }