} else if (value instanceof MaxKey) {
value = JsonToken.VALUE_STRING;
} else if (value instanceof Symbol) {
value = new de.undercouch.bson4jackson.types.Symbol(((Symbol)value).getSymbol());
} else if (value instanceof ObjectId) {
ObjectId id = (ObjectId)value;
value = new de.undercouch.bson4jackson.types.ObjectId(id.getTime(), id.getMachine(), id.getInc());
} else if (value instanceof Timestamp) {
Timestamp ts = (Timestamp)value;
value = new de.undercouch.bson4jackson.types.Timestamp(ts.getTime(), ts.getInc());
} else if (value instanceof CodeWithScope) {
CodeWithScope code = (CodeWithScope)value;