@Override public BsonNull decode(final BsonReader reader, final DecoderContext decoderContext) { reader.readNull(); return BsonNull.VALUE; }
@Override public BsonArray decode(final BsonReader reader, final DecoderContext decoderContext) { reader.readStartArray(); List<T> list = new ArrayList<T>(); while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) { if (reader.getCurrentBsonType() == BsonType.NULL) { reader.readNull(); list.add(null); } else { list.add(decoder.decode(reader, decoderContext)); } } reader.readEndArray(); return new BsonArrayWrapper<T>(list); }
@Override public Collection<T> decode(final BsonReader reader, final DecoderContext context) { Collection<T> collection = getInstance(); reader.readStartArray(); while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) { if (reader.getCurrentBsonType() == BsonType.NULL) { collection.add(null); reader.readNull(); } else { collection.add(codec.decode(reader, context)); } } reader.readEndArray(); return collection; }
@Override public Map<String, T> decode(final BsonReader reader, final DecoderContext context) { reader.readStartDocument(); Map<String, T> map = getInstance(); while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) { if (reader.getCurrentBsonType() == BsonType.NULL) { map.put(reader.readName(), null); reader.readNull(); } else { map.put(reader.readName(), codec.decode(reader, context)); } } reader.readEndDocument(); return map; }
private Object readValue(final BsonReader reader, final DecoderContext decoderContext) { BsonType bsonType = reader.getCurrentBsonType(); if (bsonType == BsonType.NULL) { reader.readNull(); return null; } else if (bsonType == BsonType.BINARY && BsonBinarySubType.isUuid(reader.peekBinarySubType()) && reader.peekBinarySize() == 16) { return registry.get(UUID.class).decode(reader, decoderContext); } return valueTransformer.transform(bsonTypeCodecMap.get(bsonType).decode(reader, decoderContext)); } }
private Object readValue(final BsonReader reader, final DecoderContext decoderContext) { BsonType bsonType = reader.getCurrentBsonType(); if (bsonType == BsonType.NULL) { reader.readNull(); return null; } else if (bsonType == BsonType.ARRAY) { return readList(reader, decoderContext); } else if (bsonType == BsonType.BINARY && BsonBinarySubType.isUuid(reader.peekBinarySubType()) && reader.peekBinarySize() == 16) { return registry.get(UUID.class).decode(reader, decoderContext); } return valueTransformer.transform(bsonTypeCodecMap.get(bsonType).decode(reader, decoderContext)); }
@SuppressWarnings("unchecked") private <S> void decodePropertyModel(final BsonReader reader, final DecoderContext decoderContext, final InstanceCreator<T> instanceCreator, final String name, final PropertyModel<S> propertyModel) { if (propertyModel != null) { try { S value = null; if (reader.getCurrentBsonType() == BsonType.NULL) { reader.readNull(); } else { value = decoderContext.decodeWithChildContext(propertyModel.getCachedCodec(), reader); } if (propertyModel.isWritable()) { instanceCreator.set(value, propertyModel); } } catch (BsonInvalidOperationException e) { throw new CodecConfigurationException(format("Failed to decode '%s'. Decoding '%s' errored with: %s", classModel.getName(), name, e.getMessage()), e); } catch (CodecConfigurationException e) { throw new CodecConfigurationException(format("Failed to decode '%s'. Decoding '%s' errored with: %s", classModel.getName(), name, e.getMessage()), e); } } else { if (LOGGER.isTraceEnabled()) { LOGGER.trace(format("Found property not present in the ClassModel: %s", name)); } reader.skipValue(); } }
private Object readValue(final BsonReader reader, final DecoderContext decoderContext) { BsonType bsonType = reader.getCurrentBsonType(); if (bsonType == BsonType.NULL) { reader.readNull(); return null; } else if (bsonType == BsonType.ARRAY) { return decoderContext.decodeWithChildContext(registry.get(List.class), reader); } else if (bsonType == BsonType.BINARY && BsonBinarySubType.isUuid(reader.peekBinarySubType()) && reader.peekBinarySize() == 16) { return decoderContext.decodeWithChildContext(registry.get(UUID.class), reader); } return valueTransformer.transform(bsonTypeCodecMap.get(bsonType).decode(reader, decoderContext)); }
break; case NULL: reader.readNull(); initialRetVal = null; break;
break; case NULL: reader.readNull(); writeNull(); break;
@Override public BsonArray decode(final BsonReader reader, final DecoderContext decoderContext) { reader.readStartArray(); List<T> list = new ArrayList<T>(); while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) { if (reader.getCurrentBsonType() == BsonType.NULL) { reader.readNull(); list.add(null); } else { list.add(decoder.decode(reader, decoderContext)); } } reader.readEndArray(); return new BsonArrayWrapper<T>(list); }
break; case NULL: reader.readNull(); initialRetVal = null; break;
case NULL: reader.readNull(); break; case OBJECT_ID: