// Path: library/src/main/java/com/steve/creact/library/HolderAPI.java
// public interface HolderAPI {
// 
//   Context getContext();
//   void removeFromCache(@IdRes int id);
//   void removeAll();
//   void initView();
//   <T extends View> T getView(@IdRes int id);
// 
//   void setText(@IdRes int id, CharSequence text);
//   CharSequence getText(@IdRes int id);
// 
//   void setOnItemClickListener(View.OnClickListener listener);
//   void setTextWatcher(@IdRes int id, TextWatcherAdapter watcherAdapter);
//   void setOnClickListener(@IdRes int id, View.OnClickListener onClickListener);
//   void setOnLongClickListener(@IdRes int id, View.OnLongClickListener onLongClickListener);
// 
//   void setVisibility(@IdRes int id, int visibility);
// 
//   void setImageSrc(@IdRes int id, @DrawableRes int res);
//   void setImageBitmap(@IdRes int id, Bitmap bitmap);
//   void setImageDrawable(@IdRes int id, Drawable drawable);
// }
// 
// Path: library/src/main/java/com/steve/creact/library/listener/TextWatcherAdapter.java
// public class TextWatcherAdapter implements TextWatcher {
// 
//   @Override
//   public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// 
//   }
// 
//   @Override
//   public void onTextChanged(CharSequence s, int start, int before, int count) {
// 
//   }
// 
//   @Override
//   public void afterTextChanged(Editable s) {
// 
//   }
// }


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.support.annotation.DrawableRes;
import android.support.annotation.IdRes;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.steve.creact.library.HolderAPI;
import com.steve.creact.library.listener.TextWatcherAdapter;
    holderAPI.removeFromCache( id );
  }

  /**
   * remove all views in cache
   */
  @Override
  public void removeAll() {
    holderAPI.removeAll();
  }

  /**
   * subclass can overwrite this method
   */
  @Override
  public void initView() {
    holderAPI.initView();
  }

  @Override
  public <T extends View> T getView( @IdRes int id ) {
    return holderAPI.getView( id );
  }

  @Override
  public void setText( @IdRes int id, CharSequence text ) {
    holderAPI.setText( id, text );
  }

  @Override
// Path: library/src/main/java/com/steve/creact/library/HolderAPI.java
// public interface HolderAPI {
// 
//   Context getContext();
//   void removeFromCache(@IdRes int id);
//   void removeAll();
//   void initView();
//   <T extends View> T getView(@IdRes int id);
// 
//   void setText(@IdRes int id, CharSequence text);
//   CharSequence getText(@IdRes int id);
// 
//   void setOnItemClickListener(View.OnClickListener listener);
//   void setTextWatcher(@IdRes int id, TextWatcherAdapter watcherAdapter);
//   void setOnClickListener(@IdRes int id, View.OnClickListener onClickListener);
//   void setOnLongClickListener(@IdRes int id, View.OnLongClickListener onLongClickListener);
// 
//   void setVisibility(@IdRes int id, int visibility);
// 
//   void setImageSrc(@IdRes int id, @DrawableRes int res);
//   void setImageBitmap(@IdRes int id, Bitmap bitmap);
//   void setImageDrawable(@IdRes int id, Drawable drawable);
// }
// 
// Path: library/src/main/java/com/steve/creact/library/listener/TextWatcherAdapter.java
// public class TextWatcherAdapter implements TextWatcher {
// 
//   @Override
//   public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// 
//   }
// 
//   @Override
//   public void onTextChanged(CharSequence s, int start, int before, int count) {
// 
//   }
// 
//   @Override
//   public void afterTextChanged(Editable s) {
// 
//   }
// }


// Path: library/src/main/java/com/steve/creact/library/viewholder/BaseRecyclerViewHolder.java
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.support.annotation.DrawableRes;
import android.support.annotation.IdRes;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.steve.creact.library.HolderAPI;
import com.steve.creact.library.listener.TextWatcherAdapter;

    holderAPI.removeFromCache( id );
  }

  /**
   * remove all views in cache
   */
  @Override
  public void removeAll() {
    holderAPI.removeAll();
  }

  /**
   * subclass can overwrite this method
   */
  @Override
  public void initView() {
    holderAPI.initView();
  }

  @Override
  public <T extends View> T getView( @IdRes int id ) {
    return holderAPI.getView( id );
  }

  @Override
  public void setText( @IdRes int id, CharSequence text ) {
    holderAPI.setText( id, text );
  }

  @Override
  public void setTextWatcher( @IdRes int id, TextWatcherAdapter watcherAdapter ) {