package com.pugh.sockso.web.action; import com.pugh.sockso.Constants; import com.pugh.sockso.Properties; import com.pugh.sockso.music.Files; import com.pugh.sockso.web.Response; import java.text.SimpleDateFormat; import java.util.Date; public class FileHeaders { private final Response res; private final Properties p; public FileHeaders( final Response res, Properties p ) { this.res = res; this.p = p; } /** * send the headers for serving a resource, just need to give the name of * the file we're serving to work out content types and stuff * * @param filename * */ public void sendHeaders( final String filename ) { final SimpleDateFormat formatter = new SimpleDateFormat( Constants.HTTP_DATE_FORMAT ); final Date dateNow = new Date(); final Date dateModified = new Date( dateNow.getTime() - Constants.ONE_WEEK_IN_MILLIS ); final Date dateExpires = new Date( dateNow.getTime() + Constants.ONE_WEEK_IN_MILLIS ); if ( !p.get(Constants.DEV_ENABLED).equals(Properties.YES) ) { res.addHeader( "Date", formatter.format(dateNow) ); res.addHeader( "Last-Modified", formatter.format(dateModified) ); res.addHeader( "Expires", formatter.format(dateExpires) ); } res.addHeader( "Cache-Control", "public" ); res.addHeader( "Pragma", "public" ); res.addHeader( "Content-type", Files.getMimeType(filename) ); res.sendHeaders(); } }