/* * Copyright 2013 GiavaCms.org. * * Licensed under the Eclipse Public License version 1.0, available at * http://www.eclipse.org/legal/epl-v10.html */ package org.giavacms.common.model; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.OutputStream; import java.io.Serializable; import org.primefaces.model.DefaultStreamedContent; import org.primefaces.model.StreamedContent; public abstract class Uploadable implements Serializable { private static final long serialVersionUID = 1L; private String name; private String mime; private byte[] data; public byte[] getData() { return data; } public void setData(byte[] data) { this.data = data; } public String getName() { return name; } public void setName(String name) { int extDot = name.lastIndexOf('.'); if (extDot > 0) { String extension = name.substring(extDot + 1); if ("bmp".equals(extension)) { mime = "image/bmp"; } else if ("jpg".equals(extension)) { mime = "image/jpeg"; } else if ("gif".equals(extension)) { mime = "image/gif"; } else if ("png".equals(extension)) { mime = "image/png"; } else { mime = "image/unknown"; } } this.name = name; } public long getLength() { return data == null ? 0 : data.length; } public long getLengthKB() { return getLength() / 1000; } public String getMime() { return mime; } public StreamedContent getContent() { return new DefaultStreamedContent(new ByteArrayInputStream(data), mime); } public long getTimeStamp() { return System.currentTimeMillis(); } public void paint(OutputStream stream, Object object) throws IOException { stream.write(getData()); stream.close(); } }