} else if (binding == java.sql.Timestamp.class) {
return new java.sql.Timestamp(raf.readLong());
} else if (binding == java.util.Date.class) {
return new java.util.Date(raf.readLong());
} else if (Geometry.class.isAssignableFrom(binding)) {
WKBReader reader = new WKBReader();
int length = raf.readInt();
byte[] buffer = new byte[length];
raf.read(buffer);
try {
return reader.read(buffer);
} catch (ParseException e) {
throw new IOException("Failed to parse the geometry WKB", e);
}
} else {
int length = raf.readInt();