View Javadoc

1   package org.sourceforge.jemm.database.persistent.berkeley.objects;
2   
3   import java.io.ByteArrayInputStream;
4   import java.io.ByteArrayOutputStream;
5   import java.io.ObjectInputStream;
6   import java.io.ObjectOutputStream;
7   import java.io.Serializable;
8   
9   import com.sleepycat.persist.model.Entity;
10  import com.sleepycat.persist.model.PrimaryKey;
11  
12  import org.sourceforge.jemm.JEMMInternalException;
13  import org.sourceforge.jemm.database.components.types.StoredObject;
14  
15  @Entity 
16  public class BDbStoredData {
17  	@PrimaryKey
18  	private long objectId;
19  	private byte[] data;
20  	
21  	public BDbStoredData() {}
22  	
23  	public BDbStoredData(long objectId,Serializable object) {
24  		this.setObjectId(objectId);
25  		try {
26  			ByteArrayOutputStream baos = new ByteArrayOutputStream();
27  			ObjectOutputStream oos = new ObjectOutputStream(baos);
28  			oos.writeObject(object);
29  			oos.close();
30  			setData(baos.toByteArray());
31  		} catch (Exception e) {
32  			throw new JEMMInternalException("Exception occurred whilst encoding type",e);
33  		}
34  		
35  	}
36  	
37  	public StoredObject convert() {
38  		
39  		try {
40  			ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(getData()));
41  			StoredObject so = (StoredObject) ois.readObject();
42  			ois.close();
43  			return so;
44  		} catch (Exception e) {
45  			throw new JEMMInternalException("Exception occurred whilst decoding type",e);
46  		}
47  	}
48  
49  	public void setObjectId(long objectId) {
50  		this.objectId = objectId;
51  	}
52  
53  	public long getObjectId() {
54  		return objectId;
55  	}
56  
57  	public void setData(byte[] data) {
58  		this.data = data;
59  	}
60  
61  	public byte[] getData() {
62  		return data;
63  	}
64  }