package com.mopub.nativeads; import android.support.annotation.NonNull; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class ViewBinder { public final static class Builder { private final int layoutId; private int titleId; private int textId; private int callToActionId; private int mainImageId; private int iconImageId; @NonNull private Map<String, Integer> extras = Collections.emptyMap(); public Builder(final int layoutId) { this.layoutId = layoutId; this.extras = new HashMap<String, Integer>(); } @NonNull public final Builder titleId(final int titleId) { this.titleId = titleId; return this; } @NonNull public final Builder textId(final int textId) { this.textId = textId; return this; } @NonNull public final Builder callToActionId(final int callToActionId) { this.callToActionId = callToActionId; return this; } @NonNull public final Builder mainImageId(final int mainImageId) { this.mainImageId = mainImageId; return this; } @NonNull public final Builder iconImageId(final int iconImageId) { this.iconImageId = iconImageId; return this; } @NonNull public final Builder addExtras(final Map<String, Integer> resourceIds) { this.extras = new HashMap<String, Integer>(resourceIds); return this; } @NonNull public final Builder addExtra(final String key, final int resourceId) { this.extras.put(key, resourceId); return this; } @NonNull public final ViewBinder build() { return new ViewBinder(this); } } final int layoutId; final int titleId; final int textId; final int callToActionId; final int mainImageId; final int iconImageId; @NonNull final Map<String, Integer> extras; private ViewBinder(@NonNull final Builder builder) { this.layoutId = builder.layoutId; this.titleId = builder.titleId; this.textId = builder.textId; this.callToActionId = builder.callToActionId; this.mainImageId = builder.mainImageId; this.iconImageId = builder.iconImageId; this.extras = builder.extras; } }