public class CMyRecord extends MyRecord implements Record {
/////////////////////////////////////////////////////////////////
/**
* inner class that implements the basic Record methods.
*/
private class Delegate extends AbstractRecord {
////////////////////////////////////////////////////////////////
/**
* write data to the device.
* @param out DataOutputStream - stream to device.
*/
public void writeData (DataOutputStream out) throws IOException {
// extract data from MyRecord.
byte[] data = getContent ();
// write it to the output stream.
out.write (data, 0, memsize);
}
/////////////////////////////////////////////////////////////
/**
* read data from the device.
* @param in DataInputStream - stream from device.
*/
public void readData (DataInputStream in) throws IOException {
// extract raw data from the stream.
byte[] raw = new byte [2048];
int len = in.read (raw);
// get the part we are looking for.
byte[] data = new byte [len];
for (int i = 0; i < len; i++)
data[i] = raw[i];
// update the MyRecord part.
setContent (data);
}
}
/////////////////////////////////////////////////////////////////
/**
* constructor.
*/
public CMyRecord () {
// create a delegate.
theDelegate = new Delegate ();
}
//###############################################################
/**
* delegated methods.
*/
public void writeData (DataOutputStream out) throws IOException {
theDelegate.writeData (out);
}
public void readData (DataInputStream in) throws IOException {
theDelegate.readData (in);
}
public int getId() {
return theDelegate.getId();
}
public void setId (int recordId) {
theDelegate.setId (recordId);
}
public int getIndex() {
return theDelegate.getIndex();
}
public void setIndex(int recIndex) {
theDelegate.setIndex (recIndex);
}
public int getCategoryIndex() {
return theDelegate.getCategoryIndex();
}
public void setCategoryIndex(int categoryIndex) {
theDelegate.setCategoryIndex (categoryIndex);
}
public boolean isModified() {
return theDelegate.isModified();
}
public void setIsModified(boolean isModified) {
theDelegate.setIsModified (isModified);
}
public boolean isDeleted() {
return theDelegate.isDeleted();
}
public void setIsDeleted(boolean isDeleted) {
theDelegate.setIsDeleted (isDeleted);
}
public boolean isNew() {
return theDelegate.isNew();
}
public void setIsNew(boolean isNew) {
theDelegate.setIsNew (isNew);
}
public boolean isPrivate() {
return theDelegate.isPrivate();
}
public void setIsPrivate(boolean isPrivate) {
theDelegate.setIsPrivate (isPrivate);
}
public boolean isArchived() {
return theDelegate.isArchived();
}
public void setIsArchived(boolean isArchived) {
theDelegate.setIsArchived (isArchived);
}
/////////////////////////////////////////////////////////////////
/**
* instance of the delegation class.
*/
private Delegate theDelegate;
}
|