// Path: cumulusrdf-framework/src/main/java/edu/kit/aifb/cumulus/log/Log.java
// public class Log {
// 	
// 	private final Logger _logger;
// 
// 	/**
// 	 * Builds a new Log wrapper with a given logger.
// 	 * 
// 	 * @param logger the {@link Logger} implementation.
// 	 */
// 	public Log(final Logger logger) {
// 		_logger = logger;
// 	}
// 
// 	/**
// 	 * Logs out the given message with INFO level.
// 	 * 
// 	 * @param message the log message.
// 	 */
// 	public void info(final String message) {
// 		_logger.info(message);
// 	}
// 
// 	/**
// 	 * Logs out the given message with INFO level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void info(final String message, final Object ... values) {
// 		_logger.info(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Logs out the given message with DEBUG level.
// 	 * 
// 	 * @param message the log message.
// 	 */
// 	public void debug(final String message) {
// 		_logger.debug(message);
// 	}
// 
// 	/**
// 	 * Logs out the given message with DEBUG level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void debug(final String message, final Object ... values) {
// 		if (_logger.isDebugEnabled()) {
// 			_logger.debug(String.format(message, values));
// 		}
// 	}
// 
// 	/**
// 	 * Logs out the given message with ERROR level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void error(final String message, final Object ... values) {
// 		_logger.error(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Logs out the given message with ERROR level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param cause the underlying cause.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void error(final String message, final Throwable cause, final Object ... values) {
// 		_logger.error(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Logs out the given message with ERROR level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param cause the underlying cause.
// 	 */
// 	public void error(final String message, final Throwable cause) {
// 		_logger.error(message, cause);
// 	}
// 
// 	/**
// 	 * Logs out the given message with WARNING level.
// 	 * 
// 	 * @param message the log message.
// 	 */
// 	public void warning(final String message) {
// 		_logger.warn(message);
// 	}
// 
// 	/**
// 	 * Logs out the given message with WARNING level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void warning(final String message, final Object ... values) {
// 		_logger.warn(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Returns true if the DEBUG level has been enabled for this logger.
// 	 * 
// 	 * @return true if the DEBUG level has been enabled for this logger.
// 	 */
// 	public boolean isDebugEnabled() {
// 		return _logger.isDebugEnabled();
// 	}
// }


import static edu.kit.aifb.cumulus.framework.util.Strings.isNotNullOrEmptyString;
import static edu.kit.aifb.cumulus.framework.util.Strings.isNullOrEmptyString;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import org.openrdf.query.resultio.BooleanQueryResultFormat;
import org.openrdf.query.resultio.TupleQueryResultFormat;
import org.openrdf.rio.RDFFormat;
import org.slf4j.LoggerFactory;
import edu.kit.aifb.cumulus.framework.util.Strings;
import edu.kit.aifb.cumulus.log.Log;
import edu.kit.aifb.cumulus.log.MessageCatalog;
import edu.kit.aifb.cumulus.util.Util;
	public static String parseContentTypeHeader(final HttpServletRequest request) {

		String content_type = request.getHeader(Headers.CONTENT_TYPE);

		if (isNullOrEmptyString(content_type)) {
			content_type = getParameterValue(request, Parameters.CONTENT_TYPE);
		}

		if (isNotNullOrEmptyString(content_type)) {
			content_type = content_type.trim().toLowerCase();
		}

		if (RDFFormat.forMIMEType(content_type) == null) {

			/*
			 * default: MimeTypes.RDF_XML
			 */
			if ((content_type == null) || content_type.isEmpty()) {
				content_type = MimeTypes.RDF_XML;
			}
			/*
			 * guess MIME type
			 */
			else if (content_type.contains("htm")) {
				content_type = MimeTypes.TEXT_HTML;
			} else if (content_type.contains("xml")) {
				content_type = MimeTypes.RDF_XML;
			} else if (content_type.contains("rdf+json")) {
				content_type = MimeTypes.RDF_JSON;
			} else if (content_type.contains("json")) {
// Path: cumulusrdf-framework/src/main/java/edu/kit/aifb/cumulus/log/Log.java
// public class Log {
// 	
// 	private final Logger _logger;
// 
// 	/**
// 	 * Builds a new Log wrapper with a given logger.
// 	 * 
// 	 * @param logger the {@link Logger} implementation.
// 	 */
// 	public Log(final Logger logger) {
// 		_logger = logger;
// 	}
// 
// 	/**
// 	 * Logs out the given message with INFO level.
// 	 * 
// 	 * @param message the log message.
// 	 */
// 	public void info(final String message) {
// 		_logger.info(message);
// 	}
// 
// 	/**
// 	 * Logs out the given message with INFO level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void info(final String message, final Object ... values) {
// 		_logger.info(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Logs out the given message with DEBUG level.
// 	 * 
// 	 * @param message the log message.
// 	 */
// 	public void debug(final String message) {
// 		_logger.debug(message);
// 	}
// 
// 	/**
// 	 * Logs out the given message with DEBUG level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void debug(final String message, final Object ... values) {
// 		if (_logger.isDebugEnabled()) {
// 			_logger.debug(String.format(message, values));
// 		}
// 	}
// 
// 	/**
// 	 * Logs out the given message with ERROR level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void error(final String message, final Object ... values) {
// 		_logger.error(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Logs out the given message with ERROR level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param cause the underlying cause.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void error(final String message, final Throwable cause, final Object ... values) {
// 		_logger.error(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Logs out the given message with ERROR level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param cause the underlying cause.
// 	 */
// 	public void error(final String message, final Throwable cause) {
// 		_logger.error(message, cause);
// 	}
// 
// 	/**
// 	 * Logs out the given message with WARNING level.
// 	 * 
// 	 * @param message the log message.
// 	 */
// 	public void warning(final String message) {
// 		_logger.warn(message);
// 	}
// 
// 	/**
// 	 * Logs out the given message with WARNING level.
// 	 * 
// 	 * @param message the log message.
// 	 * @param values values that will replace the message placeholders.
// 	 */
// 	public void warning(final String message, final Object ... values) {
// 		_logger.warn(String.format(message, values));
// 	}
// 
// 	/**
// 	 * Returns true if the DEBUG level has been enabled for this logger.
// 	 * 
// 	 * @return true if the DEBUG level has been enabled for this logger.
// 	 */
// 	public boolean isDebugEnabled() {
// 		return _logger.isDebugEnabled();
// 	}
// }


// Path: cumulusrdf-web-module/src/main/java/edu/kit/aifb/cumulus/webapp/HttpProtocol.java
import static edu.kit.aifb.cumulus.framework.util.Strings.isNotNullOrEmptyString;
import static edu.kit.aifb.cumulus.framework.util.Strings.isNullOrEmptyString;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest;
import org.openrdf.query.resultio.BooleanQueryResultFormat;
import org.openrdf.query.resultio.TupleQueryResultFormat;
import org.openrdf.rio.RDFFormat;
import org.slf4j.LoggerFactory;
import edu.kit.aifb.cumulus.framework.util.Strings;
import edu.kit.aifb.cumulus.log.Log;
import edu.kit.aifb.cumulus.log.MessageCatalog;
import edu.kit.aifb.cumulus.util.Util;

	public static String parseContentTypeHeader(final HttpServletRequest request) {

		String content_type = request.getHeader(Headers.CONTENT_TYPE);

		if (isNullOrEmptyString(content_type)) {
			content_type = getParameterValue(request, Parameters.CONTENT_TYPE);
		}

		if (isNotNullOrEmptyString(content_type)) {
			content_type = content_type.trim().toLowerCase();
		}

		if (RDFFormat.forMIMEType(content_type) == null) {

			/*
			 * default: MimeTypes.RDF_XML
			 */
			if ((content_type == null) || content_type.isEmpty()) {
				content_type = MimeTypes.RDF_XML;
			}
			/*
			 * guess MIME type
			 */
			else if (content_type.contains("htm")) {
				content_type = MimeTypes.TEXT_HTML;
			} else if (content_type.contains("xml")) {
				content_type = MimeTypes.RDF_XML;
			} else if (content_type.contains("rdf+json")) {
				content_type = MimeTypes.RDF_JSON;
			} else if (content_type.contains("json")) {
				content_type = MimeTypes.JSON_LD;