// 
// Decompiled by Procyon v0.6.0
// 

package org.bson.codecs.pojo;

import org.bson.codecs.Codec;
import org.bson.codecs.configuration.CodecRegistry;

final class FallbackPropertyCodecProvider implements PropertyCodecProvider
{
    private final CodecRegistry codecRegistry;
    private final PojoCodec<?> pojoCodec;
    
    FallbackPropertyCodecProvider(final PojoCodec<?> pojoCodec, final CodecRegistry codecRegistry) {
        this.pojoCodec = pojoCodec;
        this.codecRegistry = codecRegistry;
    }
    
    @Override
    public <S> Codec<S> get(final TypeWithTypeParameters<S> type, final PropertyCodecRegistry propertyCodecRegistry) {
        final Class<S> clazz = type.getType();
        if (clazz == this.pojoCodec.getEncoderClass()) {
            return (Codec<S>)this.pojoCodec;
        }
        return this.codecRegistry.get(type.getType());
    }
}
