// Path: adapter-toolbox/src/main/java/net/cattaka/android/adaptertoolbox/data/ITreeItem.java
// public interface ITreeItem<T extends ITreeItem<T>> {
//     List<T> getChildren();
// }


import android.content.Context;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import net.cattaka.android.adaptertoolbox.data.ITreeItem;
import java.util.ArrayList;
import java.util.List;
package net.cattaka.android.adaptertoolbox.adapter;




/**
 * Created by cattaka on 16/05/21.
 */
public abstract class AbsChoosableTreeItemAdapter<
        A extends AbsChoosableTreeItemAdapter<A, VH, T, W>,
        VH extends RecyclerView.ViewHolder,
// Path: adapter-toolbox/src/main/java/net/cattaka/android/adaptertoolbox/data/ITreeItem.java
// public interface ITreeItem<T extends ITreeItem<T>> {
//     List<T> getChildren();
// }


// Path: adapter-toolbox/src/main/java/net/cattaka/android/adaptertoolbox/adapter/AbsChoosableTreeItemAdapter.java
import android.content.Context;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import net.cattaka.android.adaptertoolbox.data.ITreeItem;
import java.util.ArrayList;
import java.util.List;

package net.cattaka.android.adaptertoolbox.adapter;




/**
 * Created by cattaka on 16/05/21.
 */
public abstract class AbsChoosableTreeItemAdapter<
        A extends AbsChoosableTreeItemAdapter<A, VH, T, W>,
        VH extends RecyclerView.ViewHolder,
        T extends ITreeItem<T>,