package org.jblooming.ontology;
import org.hibernate.Hibernate;
import org.jblooming.PlatformRuntimeException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.SQLException;
/**
*
* @author Pietro Polsinelli ppolsinelli@open-lab.com
*/
public class BinaryLargeObject extends HideableIdentifiableSupport {
private String originalFileName;
private int referralId;
private String referralClass;
private Blob blob;
/**
* Notice that is supports also updates of content.
*
* @param inputStream
*/
public void feed(InputStream inputStream) {
if (inputStream == null)
throw new PlatformRuntimeException("BinaryLargeObject.add inputStream is null");
try {
blob = Hibernate.createBlob(inputStream);
} catch (IOException e) {
throw new PlatformRuntimeException(e);
}
}
public InputStream getInputStream() throws SQLException {
return blob.getBinaryStream();
}
public String getOriginalFileName() {
return originalFileName;
}
public void setOriginalFileName(String originalFileName) {
this.originalFileName = originalFileName;
}
public String getName() {
return originalFileName;
}
public int getReferralId() {
return referralId;
}
public void setReferralId(int referralId) {
this.referralId = referralId;
}
public String getReferralClass() {
return referralClass;
}
public void setReferralClass(String referralClass) {
this.referralClass = referralClass;
}
public void setReferral(Identifiable i) {
this.referralId = i.getIntId();
this.referralClass = i.getClass().getName();
}
public Blob getBlob() {
return blob;
}
public void setBlob(Blob blob) {
this.blob = blob;
}
}