package org.netmelody.cieye.server.response.responder; import java.io.IOException; import java.io.InputStream; import java.util.ResourceBundle; import org.apache.commons.io.IOUtils; import org.netmelody.cieye.core.logging.LogKeeper; import org.netmelody.cieye.core.logging.Logbook; import org.netmelody.cieye.server.response.CiEyeResponder; import org.netmelody.cieye.server.response.CiEyeResponse; import org.simpleframework.http.Request; public final class FileResponder implements CiEyeResponder { private static final Logbook LOG = LogKeeper.logbookFor(FileResponder.class); private static final ResourceBundle MIME_TYPES = ResourceBundle.getBundle(FileResponder.class.getName()); private final String name; private final String extension; public FileResponder(String name) { this.name = name; this.extension = name.substring(name.lastIndexOf('.') + 1); LOG.info(name); } @Override public CiEyeResponse respond(Request request) throws IOException { InputStream input = null; byte[] content = new byte[0]; try { input = getClass().getResourceAsStream(name); content = IOUtils.toByteArray(input); } finally { IOUtils.closeQuietly(input); } return CiEyeResponse.forResource(content, MIME_TYPES.getString(extension)); } }