package com.tumblr.example.dagger.module; import com.tumblr.example.dagger.key.PrimitiveCreatorKey; import com.tumblr.example.viewholder.ColorPrimitiveViewHolder; import com.tumblr.example.viewholder.HeaderViewHolder; import com.tumblr.example.viewholder.TextPrimitiveViewHolder; import com.tumblr.example.viewholdercreator.ColorPrimitiveViewHolderCreator; import com.tumblr.example.viewholdercreator.HeaderViewHolderCreator; import com.tumblr.example.viewholdercreator.TextPrimitiveViewHolderCreator; import com.tumblr.graywater.GraywaterAdapter; import dagger.Binds; import dagger.Module; import dagger.multibindings.IntoMap; /** * Created by ericleong on 12/6/17. */ @Module public abstract class ViewHolderCreatorModule { @Binds @IntoMap @PrimitiveCreatorKey(TextPrimitiveViewHolder.class) abstract GraywaterAdapter.ViewHolderCreator bindsTextPrimitiveViewHolderCreator( TextPrimitiveViewHolderCreator textPrimitiveViewHolderCreator); @Binds @IntoMap @PrimitiveCreatorKey(HeaderViewHolder.class) abstract GraywaterAdapter.ViewHolderCreator bindsHeaderViewHolderCreator(HeaderViewHolderCreator headerViewHolderCreator); @Binds @IntoMap @PrimitiveCreatorKey(ColorPrimitiveViewHolder.class) abstract GraywaterAdapter.ViewHolderCreator bindsColorPrimitiveViewHolderCreator( ColorPrimitiveViewHolderCreator colorPrimitiveViewHolderCreator); }