package de.anycook.db.drafts.mongo.codecs;
import de.anycook.drafts.IngredientDraft;
import de.anycook.drafts.RecipeDraft;
import de.anycook.drafts.RecipeDraftWrapper;
import de.anycook.drafts.StepDraft;
import de.anycook.recipe.Time;
import org.bson.codecs.Codec;
import org.bson.codecs.configuration.CodecProvider;
import org.bson.codecs.configuration.CodecRegistry;
public class DraftCodecProvider implements CodecProvider {
@Override
@SuppressWarnings("unchecked")
public <T> Codec<T> get(Class<T> clazz, CodecRegistry registry) {
if (clazz == RecipeDraftWrapper.class) {
return (Codec<T>) new RecipeDraftWrapperCodec(registry);
}
if (clazz == RecipeDraft.class) {
return (Codec<T>) new RecipeDraftCodec(registry);
}
if (clazz == IngredientDraft.class) {
return (Codec<T>) new IngredientDraftCodec();
}
if (clazz == StepDraft.class) {
return (Codec<T>) new StepDraftCodec(registry);
}
if (clazz == Time.class) {
return (Codec<T>) new TimeCodec();
}
return null;
}
}