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


Java CodecRegistry类代码示例

本文整理汇总了Java中org.bson.codecs.configuration.CodecRegistry的典型用法代码示例。如果您正苦于以下问题:Java CodecRegistry类的具体用法?Java CodecRegistry怎么用?Java CodecRegistry使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: getCodecRegistry

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Bean()
public static CodecRegistry getCodecRegistry() {
    return CodecRegistries.fromRegistries(
            CodecRegistries.fromProviders(
                    new EnumCodecProvider(),
                    PojoCodecProvider.builder()
                            .register(CodecResolverTest.class)
                            .registerCodecResolver((CodecResolver) (type, typeCodecRegistry, codecConfiguration) -> {
                                if (TypeUtils.isAssignable(type, Base.class)) {
                                    return new DocumentCodec((Class<? extends Base>) type, typeCodecRegistry, codecConfiguration);
                                }
                                return null;
                            })
                            .build()
            ),
            MongoClient.getDefaultCodecRegistry());
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:18,代码来源:CodecResolverTest.java

示例2: Repository

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
protected Repository(
    RepositorySetup configuration,
    String collectionName,
    Class<T> type) {

  this.configuration = checkNotNull(configuration, "configuration");
  checkNotNull(collectionName, "collectionName");
  checkNotNull(type, "type");

  final TypeAdapter<T> adapter = checkAdapter(configuration.gson.getAdapter(type), type);
  final MongoCollection<Document> collection = configuration.database.getCollection(collectionName);
  // combine default and immutables codec registries
  final CodecRegistry registry = CodecRegistries.fromRegistries(collection.getCodecRegistry(), BsonEncoding.registryFor(type, adapter));

  this.collection = collection
      .withCodecRegistry(registry)
      .withDocumentClass(type);
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:19,代码来源:Repositories.java

示例3: registryFor

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
/**
 * "Smart" registry just for this particular {@code type}. It is typically composed with existing
 * registries using {@link org.bson.codecs.configuration.CodecRegistries#fromRegistries(CodecRegistry...)} method.
 */
public static <T> CodecRegistry registryFor(final Class<T> type, final TypeAdapter<T> adapter) {
  return new CodecRegistry() {
    @SuppressWarnings("unchecked")
    @Override
    public <X> Codec<X> get(Class<X> clazz) {
      // TODO is this a safe assumption with polymorphism (in repositories) ?
      if (type.isAssignableFrom(clazz)) {
        return (Codec<X>) codecFor(type, adapter);
      } else {
        // let other registries decide
        throw new CodecConfigurationException(String.format("Type %s not supported by this registry", type.getName()));
      }
    }
  };
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:20,代码来源:BsonEncoding.java

示例4: get

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public <T> Codec<T> get(Class<T> clazz, CodecRegistry registry) {
	if (clazz == BigDecimal.class) {
		return (Codec<T>) bigDecimalCodec;
	}
	if (clazz == BigInteger.class) {
		return (Codec<T>) bigIntegerCodec;
	}
	if (clazz == InetAddress.class || clazz == Inet4Address.class || clazz == Inet6Address.class) {
		return (Codec<T>) inetAddressCodec;
	}
	if (clazz.isArray()) {
		return (Codec<T>) arrayCodec;
	}
	return null;
}
 
开发者ID:berkesa,项目名称:datatree-adapters,代码行数:18,代码来源:JsonBson.java

示例5: get

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Override
public <T> Codec<T> get(Class<T> clazz, CodecRegistry registry) {
    // if clazz has type parameters, we warn the user that generic class definitions are problematic
    Codec<T> codec = pojoContext.get(clazz, registry);
    if (codec instanceof TypeCodec) {
        if (clazz != null && clazz.getTypeParameters().length > 0) {
            LOGGER.warn("Generic classes will only be encoded/decoded with their upper bounds! " +
                    "We could prohibit handling of the pojo codec for those generic classes, " +
                    "but then user would loose flexibility when subclassing such classes. Class: " + clazz.toGenericString());
        }
        TypeCodec typeCodec = (TypeCodec) codec;
        // generate dynamic proxy to add CollectibleCodec functionality
        if (typeCodec.isCollectible()) {
            LOGGER.debug("Enhancing {} to be collectible codec.", typeCodec);
            Class[] proxyInterfaces = new Class[]{CollectibleCodec.class};
            CollectibleCodec collectibleCodec = (CollectibleCodec) Proxy.newProxyInstance(
                    PojoCodecProvider.class.getClassLoader(),
                    proxyInterfaces,
                    new CollectibleCodecDelegator(typeCodec));

            return collectibleCodec;
        }
    }
    return codec;
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:26,代码来源:PojoCodecProvider.java

示例6: getCodecRegistry

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Bean()
public static CodecRegistry getCodecRegistry() {
    return CodecRegistries.fromRegistries(
            CodecRegistries.fromProviders(
                    new EnumCodecProvider(),
                    PojoCodecProvider.builder()
                            .register(Pojo.class.getPackage().getName())
                            .registerCodecResolver((CodecResolver) (type, typeCodecRegistry, codecConfiguration) -> {
                                if (TypeUtils.isAssignable(type, CustomId.class)) {
                                    return new CustomIdCodec((Class<CustomId>)type, typeCodecRegistry, codecConfiguration);
                                }
                                return null;
                            }).build()
            ),
            MongoClient.getDefaultCodecRegistry());
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:17,代码来源:ExternalIdCodecProviderTest.java

示例7: get

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@SuppressWarnings("unchecked")
@Override
public <T> Codec<T> get(Class<T> clazz, CodecRegistry registry) {
    // Optimistic get to avoid using dynamic memory
    Codec<?> ret = codecs.get(clazz);
    if (ret != null) {
        return (Codec<T>) ret;
    }
    if (clazz.isEnum()) {
        return (Codec<T>) codecs.computeIfAbsent(clazz, c -> new EnumCodec<>((Class<? extends Enum>) c));
    }
    if (clazz.isArray()) {
        Class<?> componentType = clazz.getComponentType();
        Codec componentCodec = get(componentType, registry);
        if (componentCodec != null) {
            return (Codec<T>) codecs.computeIfAbsent(clazz, c -> new ArrayCodec(clazz, componentCodec));
        }
    }
    return registry.get(clazz);
}
 
开发者ID:egopulse,项目名称:java-code-gen,代码行数:21,代码来源:ExtraCodecProvider.java

示例8: toMongoClientOptions

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
public MongoClientOptions toMongoClientOptions(final CodecRegistry codecRegistry) {
    return builder()
            .sslEnabled(sslEnabled)
            .codecRegistry(codecRegistry)
            .readPreference(ReadPreference.valueOf(readPreference))
            .connectTimeout(connectTimeout)
            .serverSelectionTimeout(serverSelectionTimeout)
            .cursorFinalizerEnabled(true)
            .maxWaitTime(maxWaitTime)
            .maxConnectionLifeTime(connectionpool.getMaxLifeTime())
            .threadsAllowedToBlockForConnectionMultiplier(connectionpool.getBlockedConnectionMultiplier())
            .maxConnectionIdleTime(connectionpool.getMaxIdleTime())
            .minConnectionsPerHost(connectionpool.getMinSize())
            .connectionsPerHost(connectionpool.getMaxSize())
            .build();
}
 
开发者ID:otto-de,项目名称:edison-microservice,代码行数:17,代码来源:MongoProperties.java

示例9: buildCodecRegistries

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
private CodecRegistry buildCodecRegistries() {
	Codec<Document> defaultDocumentCodec = MongoClient.getDefaultCodecRegistry().get(Document.class);
	
	CodecRegistry codecRegistry = CodecRegistries.fromRegistries(
		MongoClient.getDefaultCodecRegistry(),
		CodecRegistries.fromCodecs(
			new BibleCodec(defaultDocumentCodec),
			new BookCodec(defaultDocumentCodec),
			new ChapterCodec(defaultDocumentCodec),
			new VerseCodec(defaultDocumentCodec),
			new UserCodec(defaultDocumentCodec)
		)
	);
	
	return codecRegistry;
}
 
开发者ID:aureliano,项目名称:verbum-domini,代码行数:17,代码来源:PersistenceManagerImpl.java

示例10: addEncodeStatements

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Override
public void addEncodeStatements(TypeMirror type, CodeGeneratorContext ctx) {
	ctx.builder()
			.addStatement("Codec codec = this.registry.get($L.getClass())",
					ctx.getter())
			.addStatement("encoderContext.encodeWithChildContext(codec, writer, $L)",
					ctx.getter());

	// ctx.builder()
	// .addAnnotation(AnnotationSpec.builder(SuppressWarnings.class)
	// .addMember("value", "$S", "unchecked")
	// .addMember("value", "$S", "rawtypes").build());

	ctx.instanceFields().add(ImmutableInstanceField.builder()
			.type(ClassName.get(CodecRegistry.class)).name("registry").build());

	ctx.instanceFields()
			.add(ImmutableInstanceField.builder()
					.type(ClassName.get(BsonTypeClassMap.class))
					.name("bsonTypeClassMap").build());

}
 
开发者ID:ralscha,项目名称:bsoncodec-apt,代码行数:23,代码来源:UnknownCodecDelegate.java

示例11: MongoStorage

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@SuppressWarnings( "unchecked" )
public MongoStorage( oap.storage.MongoClient mongoClient, String database, String table,
                     LockStrategy lockStrategy ) {
    super( IdentifierBuilder
        .annotation()
        .suggestion( ar -> ObjectId.get().toString() )
        .size( 24 )
        .idOptions()
        .build(), lockStrategy );
    this.database = mongoClient.getDatabase( database );


    final Object o = new TypeReference<Metadata<T>>() {};
    final CodecRegistry codecRegistry = CodecRegistries.fromRegistries(
        CodecRegistries.fromCodecs( new JsonCodec<>( ( TypeReference<Metadata> ) o,
            Metadata.class, ( m ) -> identifier.get( ( T ) m.object ) ) ),
        this.database.getCodecRegistry()
    );

    final Object metadataMongoCollection = this.database
        .getCollection( table, Metadata.class )
        .withCodecRegistry( codecRegistry );
    this.collection = ( MongoCollection<Metadata<T>> ) metadataMongoCollection;

    load();
}
 
开发者ID:oaplatform,项目名称:oap,代码行数:27,代码来源:MongoStorage.java

示例12: toBsonDocument

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Override
public <TDocument> BsonDocument toBsonDocument(Class<TDocument> arg0,
		CodecRegistry codecRegistry) {
	System.out.println("toBsonDocument called");
	return new BsonDocumentWrapper<SyncConnectionInfo>(this,
			codecRegistry.get(SyncConnectionInfo.class));
}
 
开发者ID:gagoyal01,项目名称:mongodb-rdbms-sync,代码行数:8,代码来源:SyncConnectionInfo.java

示例13: get

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Override
public <T> Codec<T> get(Class<T> clazz, CodecRegistry registry) {
    if (clazz.isEnum()) {
        return new EnumCodec(clazz);
    }
    return null;
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:8,代码来源:EnumCodecProvider.java

示例14: getCodecRegistry

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Bean()
public static CodecRegistry getCodecRegistry() {
    return CodecRegistries.fromRegistries(
            CodecRegistries.fromProviders(
                    new EnumCodecProvider(),
                    PojoCodecProvider.builder()
                            .register(TypeCodecProviderTest.class)
                            .register(new CustomTypeCodecProvider(), new SetOfStringTypeCodecProvider())
                            .build()
            ),
            MongoClient.getDefaultCodecRegistry());
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:13,代码来源:TypeCodecProviderTest.java

示例15: getCodecRegistry

import org.bson.codecs.configuration.CodecRegistry; //导入依赖的package包/类
@Bean()
public static CodecRegistry getCodecRegistry() {
    return CodecRegistries.fromRegistries(
            CodecRegistries.fromProviders(
                    new EnumCodecProvider(),
                    PojoCodecProvider.builder()
                            .register(NoDiscriminatorForPolymorphicLeafClassesTest.class)
                            .build()
            ),
            MongoClient.getDefaultCodecRegistry());
}
 
开发者ID:axelspringer,项目名称:polymorphia,代码行数:12,代码来源:NoDiscriminatorForPolymorphicLeafClassesTest.java


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