long id = Utility.parseLong(context.getRequest().getParameter("referenceId"));
String problemCode = context.getRequest().getParameter("code");
boolean download = "true".equalsIgnoreCase(context.getRequest().getParameter("download"));
ReferencePersistence referencePersistence = PersistenceManager.getInstance().getReferencePersistence();
Reference ref = referencePersistence.getReference(id);
if (ref == null) {
response.sendError(404);
return null;
}
response.setContentType("text/plain");
if (download) {
response.setHeader("Content-disposition", "attachment; filename=" + problemCode + "_" +
ref.getReferenceType().getDescription() + ".txt");
response.getOutputStream().write(ref.getContent());
} else {
int length = ref.getContent().length;
if (length > 100 * 1024) {
response.getOutputStream().write(ref.getContent(), 0, 100 * 1024);
response.getOutputStream().write("\n\n...\n".getBytes());
} else {
response.getOutputStream().write(ref.getContent());
}
}
response.getOutputStream().close();