1 11 package org.eclipse.core.internal.indexing; 12 13 class ObjectHeader implements Insertable { 14 15 public static final int SIZE = 4; 16 private static final int HeaderTagValue = 0xFFFF; 17 private static final int HeaderTagOffset = 0; 18 private static final int ObjectLengthOffset = 2; 19 private int objectLength; 20 21 24 public ObjectHeader(byte[] buffer) throws ObjectStoreException { 25 if (buffer.length != SIZE) 26 throw new IllegalArgumentException (); 27 Buffer buf = new Buffer(buffer); 28 if (buf.getUInt(HeaderTagOffset, 2) != HeaderTagValue) { 29 throw new ObjectStoreException(ObjectStoreException.ObjectHeaderFailure); 30 } 31 this.objectLength = buf.getUInt(ObjectLengthOffset, 2); 32 } 33 34 37 public ObjectHeader(int objectLength) { 38 this.objectLength = objectLength; 39 } 40 41 public int getObjectLength() { 42 return objectLength; 43 } 44 45 public byte[] toByteArray() { 46 Buffer buf = new Buffer(SIZE); 47 buf.put(HeaderTagOffset, 2, HeaderTagValue); 48 buf.put(ObjectLengthOffset, 2, objectLength); 49 return buf.get(); 50 } 51 } 52 | Popular Tags |