当前位置: 首页>>代码示例>>Java>>正文


Java BsonReader.readEndDocument方法代码示例

本文整理汇总了Java中org.bson.BsonReader.readEndDocument方法的典型用法代码示例。如果您正苦于以下问题:Java BsonReader.readEndDocument方法的具体用法?Java BsonReader.readEndDocument怎么用?Java BsonReader.readEndDocument使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.bson.BsonReader的用法示例。


在下文中一共展示了BsonReader.readEndDocument方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: decode

import org.bson.BsonReader; //导入方法依赖的package包/类
@Override
public T decode(BsonReader reader, DecoderContext decoderContext) {
    T map = newInstance();
    reader.readStartDocument();
    while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
        String key = reader.readName();

        Object value;
        Codec fieldMappingCodec = fieldMappingCodecs.get(key);
        if (fieldMappingCodec != null) {
            value = fieldMappingCodec.decode(reader, decoderContext);
        } else {
            value = readValue(reader, decoderContext);
        }

        map.put(key, value);
    }
    reader.readEndDocument();
    return map;
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:21,代码来源:SpecialFieldsMapCodec.java

示例2: decode

import org.bson.BsonReader; //导入方法依赖的package包/类
@Override
public Map<String, V> decode(BsonReader reader, DecoderContext decoderContext) {
    Map<String, V> map = newInstance();
    if (BsonType.DOCUMENT.equals(reader.getCurrentBsonType())) {
        reader.readStartDocument();
        while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
            String key = reader.readName();
            V value = valueTypeCodec.decode(reader, decoderContext);
            map.put(key, value);
        }
        reader.readEndDocument();
    } else {
        LOGGER.warn("Expected {} from reader but got {}. Skipping value.", BsonType.DOCUMENT, reader.getCurrentBsonType());
        reader.skipValue();
    }
    return map;
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:18,代码来源:SimpleMapTypeCodec.java

示例3: decode

import org.bson.BsonReader; //导入方法依赖的package包/类
@Override
public Map<K, V> decode(BsonReader reader, DecoderContext decoderContext) {
    Map<K, V> map = newInstance();
    if (BsonType.ARRAY.equals(reader.getCurrentBsonType())) {
        reader.readStartArray();
        while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
            if (BsonType.DOCUMENT.equals(reader.getCurrentBsonType())) {
                reader.readStartDocument();
                reader.readName(); // don't need the key == "key"
                K key = keyTypeCodec.decode(reader, decoderContext);
                reader.readName(); // don't need the key == "value"
                V value = valueTypeCodec.decode(reader, decoderContext);
                map.put(key, value);
                reader.readEndDocument();
            } else {
                LOGGER.warn("Expected {} from reader but got {}. Skipping value.", BsonType.DOCUMENT, reader.getCurrentBsonType());
                reader.skipValue();
            }
        }
        reader.readEndArray();
    } else {
        LOGGER.warn("Expected {} from reader but got {}. Skipping value.", BsonType.ARRAY, reader.getCurrentBsonType());
        reader.skipValue();
    }
    return map;
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:27,代码来源:ComplexMapTypeCodec.java

示例4: decode

import org.bson.BsonReader; //导入方法依赖的package包/类
@Override
public CustomType decode(BsonReader reader, DecoderContext decoderContext) {
    reader.readStartDocument();
    reader.readName("name");
    String name = nameCodec.decode(reader, decoderContext);

    reader.readName("list");
    List<T> stringArrayList = listCodec.decode(reader, decoderContext);

    reader.readName("innerType");
    InnerType<T> innerType = innerTypeCodec.decode(reader, decoderContext);

    reader.readEndDocument();
    CustomType<T> customType = new CustomType(name);
    customType.setInnerType(innerType);
    customType.addAll(stringArrayList);

    return customType;
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:20,代码来源:TypeCodecProviderTest.java

示例5: decodeFields

import org.bson.BsonReader; //导入方法依赖的package包/类
@Override
public T decodeFields(BsonReader reader, DecoderContext decoderContext, T instance) {
    MetaData documentMeta = instance.getMeta();
    while (reader.readBsonType() != BsonType.END_OF_DOCUMENT) {
        String fieldName = reader.readName();
        if ("data".equals(fieldName)) {
            reader.readStartDocument();
            super.decodeFields(reader, decoderContext, instance);
            reader.readEndDocument();
        } else {
            MappedField field = documentMetaCodec.getMappedField(fieldName);
            if (field != null) {
                field.decode(reader, documentMeta, decoderContext);
            } else {
                reader.skipValue();
            }
        }
    }

    documentMetaCodec.postDecode(documentMeta);

    return instance;
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:24,代码来源:CodecResolverTest.java

示例6: decode

import org.bson.BsonReader; //导入方法依赖的package包/类
@Override
default T decode(BsonReader reader, DecoderContext decoderContext) {
    T newInstance;
    if (reader.getCurrentBsonType() == null || reader.getCurrentBsonType() == BsonType.DOCUMENT) {
        reader.readStartDocument();
        newInstance = decodeFields(reader, decoderContext, newInstance());
        reader.readEndDocument();
        return newInstance;
    } else {
        LOGGER.error("Expected to read document but reader is in state {}. Skipping value!", reader.getCurrentBsonType());
        reader.skipValue();
        return null;
    }
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:15,代码来源:PolymorphicCodec.java

示例7: decode

import org.bson.BsonReader; //导入方法依赖的package包/类
/**
 * bsonReader中读取Bson到POJO/decode from bsonReader->POJO
 *
 * @param bsonReader
 * @param targetClazz
 * @param bsonMapperConfig
 * @param <T>
 * @return
 */
<T> T decode(BsonReader bsonReader, Class<T> targetClazz, BsonMapperConfig bsonMapperConfig) {
    MAPPER_LAYER_COUNTER.addCount(bsonMapperConfig);
    try {
        bsonReader.readStartDocument();
        Map<String, Field> bsonNameFieldInfoMap = getBsonNameFieldInfoMap(targetClazz);
        T target = Utils.newInstanceByClazz(targetClazz);
        while (bsonReader.readBsonType() != BsonType.END_OF_DOCUMENT) {
            String bsonName = bsonReader.readName();
            Field field = bsonNameFieldInfoMap.get(bsonName);
            if (field == null || bsonReader.getCurrentBsonType() == BsonType.NULL) {
                bsonReader.skipValue();
                continue;
            }
            Object javaValue;
            try {
                javaValue = getJavaValueByBinaryReader(bsonReader, field, bsonMapperConfig);
            } catch (BsonMapperConverterException e) {
                throw new BsonMapperConverterException("error when try to get java value from Bson.BsonName:" + bsonName, e);
            }
            setJavaValueToField(targetClazz, target, field, javaValue);
        }
        bsonReader.readEndDocument();
        return target;
    } finally {
        MAPPER_LAYER_COUNTER.reduceCount();
    }
}
 
开发者ID:welkinbai,项目名称:BsonMapper,代码行数:37,代码来源:BsonDocumentConverter.java


注:本文中的org.bson.BsonReader.readEndDocument方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。