|
28 | 28 | import org.bson.types.MaxKey;
|
29 | 29 | import org.bson.types.MinKey;
|
30 | 30 | import org.bson.types.ObjectId;
|
| 31 | +import org.bson.types.Symbol; |
31 | 32 |
|
32 | 33 | import javax.xml.bind.DatatypeConverter;
|
33 | 34 | import java.lang.reflect.Array;
|
@@ -104,6 +105,7 @@ static ClassMapBasedObjectSerializer addCommonSerializers() {
|
104 | 105 | serializer.addObjectSerializer(ObjectId.class, new ObjectIdSerializer(serializer));
|
105 | 106 | serializer.addObjectSerializer(Pattern.class, new PatternSerializer(serializer));
|
106 | 107 | serializer.addObjectSerializer(String.class, new StringSerializer());
|
| 108 | + serializer.addObjectSerializer(Symbol.class, new SymbolSerializer(serializer)); |
107 | 109 | serializer.addObjectSerializer(UUID.class, new UuidSerializer(serializer));
|
108 | 110 | serializer.addObjectSerializer(BsonUndefined.class, new UndefinedSerializer(serializer));
|
109 | 111 | return serializer;
|
@@ -389,6 +391,21 @@ public void serialize(final Object obj, final StringBuilder buf) {
|
389 | 391 | }
|
390 | 392 | }
|
391 | 393 |
|
| 394 | + private static class SymbolSerializer extends CompoundObjectSerializer { |
| 395 | + |
| 396 | + SymbolSerializer(final ObjectSerializer serializer) { |
| 397 | + super(serializer); |
| 398 | + } |
| 399 | + |
| 400 | + @Override |
| 401 | + public void serialize(final Object obj, final StringBuilder buf) { |
| 402 | + Symbol symbol = (Symbol) obj; |
| 403 | + BasicDBObject temp = new BasicDBObject(); |
| 404 | + temp.put("$symbol", symbol.toString()); |
| 405 | + serializer.serialize(temp, buf); |
| 406 | + } |
| 407 | + } |
| 408 | + |
392 | 409 | private static class UuidSerializer extends CompoundObjectSerializer {
|
393 | 410 |
|
394 | 411 | UuidSerializer(final ObjectSerializer serializer) {
|
|
0 commit comments