00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 package org.openmobileis.database.fastobjectdb.db.store;
00030
00031 import java.io.*;
00032
00035 public class FODBCollectionFileHeader implements Externalizable {
00036 private Class objectType;
00037 private long indexTablePos;
00038 private boolean synchro;
00039
00040 public FODBCollectionFileHeader() {
00041 }
00042
00043 public FODBCollectionFileHeader(Class objType) {
00044 objectType = objType;
00045 synchro = true;
00046 }
00047
00048 public boolean isSynchronized() {
00049 return synchro;
00050 }
00051
00052 public void setSynchronized(boolean sync) {
00053 synchro = sync;
00054 }
00055
00056 public long getIndexTablePos() {
00057 return indexTablePos;
00058 }
00059
00060 public long setIndexTablePos(long pos) {
00061 indexTablePos = pos;
00062 return indexTablePos;
00063 }
00064
00065 public Class getObjectType() {
00066 return objectType;
00067 }
00068
00069 public String toString() {
00070 String result = " FODBCollectionFileHeader[" + objectType.getName() + ", " + indexTablePos + "]";
00071
00072 return result;
00073 }
00074
00075 public void writeExternal(ObjectOutput out) throws IOException {
00076 String className = objectType.getName();
00077
00078 for (int i = 0; i < className.length(); i++) {
00079 out.writeChar(className.charAt(i));
00080 }
00081 out.writeChar('\0');
00082
00083 out.writeLong(indexTablePos);
00084 out.writeBoolean(synchro);
00085 }
00086
00087 public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
00088 char parseChar;
00089 String className;
00090
00091 StringBuffer tmpClassName = new StringBuffer();
00092 while ((parseChar = in.readChar()) != '\0') {
00093 tmpClassName.append(parseChar);
00094 }
00095 className = tmpClassName.toString();
00096
00097 objectType = Class.forName(className);
00098
00099 indexTablePos = in.readLong();
00100 synchro = in.readBoolean();
00101 }
00102
00103 }