@@ -0,0 +1,3214 @@
+package com.stolets.rxdiffutil;%0A%0Aimport android.support.annotation.NonNull;%0A%0Aimport java.util.List;%0A%0Aimport static com.stolets.rxdiffutil.internal.Preconditions.checkNotNull;%0A%0A/**%0A * Holds all the required data to start the difference calculation.%0A */%0Apublic final class DiffRequest%3CD%3E %7B%0A    @NonNull%0A    private final DataComparable%3CD%3E mDataComparable;%0A    @NonNull%0A    private final List%3C? extends D%3E mOldData;%0A    @NonNull%0A    private final List%3C? extends D%3E mNewData;%0A    private boolean mDetectMoves;%0A%0A    /**%0A     * Constructs a new instance of %7B@link DiffRequest%7D.%0A     *%0A     * @param dataComparable A custom implementation of %7B@link DataComparable%7D.%0A     * @param oldData        The list with the old data used in difference calculations.%0A     * @param newData        The list with the new dta used in difference calculations.%0A     * @param detectMoves    A boolean flag which determines whether moved items should be detected.%0A     */%0A    public DiffRequest(@NonNull final DataComparable%3CD%3E dataComparable,%0A                       @NonNull final List%3C? extends D%3E oldData,%0A                       @NonNull final List%3C? extends D%3E newData,%0A                       final boolean detectMoves) %7B%0A        checkNotNull(dataComparable, %22dataComparable must not be null!%22);%0A        checkNotNull(oldData, %22oldData must not be null!%22);%0A        checkNotNull(newData, %22newData must not be null!%22);%0A%0A        this.mDataComparable = dataComparable;%0A        this.mOldData = oldData;%0A        this.mNewData = newData;%0A        this.mDetectMoves = detectMoves;%0A    %7D%0A%0A    /**%0A     * @return %7B@link DataComparable%7D concrete implementation.%0A     */%0A    @NonNull%0A    public DataComparable%3CD%3E getDataComparable() %7B%0A        return mDataComparable;%0A    %7D%0A%0A    /**%0A     * @return The list with the old data.%0A     */%0A    @NonNull%0A    public List%3C? extends D%3E getOldData() %7B%0A        return mOldData;%0A    %7D%0A%0A    /**%0A     * @return The list with the new data.%0A     */%0A    @NonNull%0A    public List%3C? extends D%3E getNewData() %7B%0A        return mNewData;%0A    %7D%0A%0A    /**%0A     * @return True if DiffUtil should try to detect moved items, false otherwise.%0A     */%0A    public boolean isDetectingMoves() %7B%0A        return mDetectMoves;%0A    %7D%0A%0A    @Override%0A    public boolean equals(Object o) %7B%0A        if (this == o) return true;%0A        if (o == null %7C%7C getClass() != o.getClass()) return false;%0A%0A        DiffRequest%3C?%3E that = (DiffRequest%3C?%3E) o;%0A%0A        return mDetectMoves == that.mDetectMoves &&%0A                mDataComparable.equals(that.mDataComparable) &&%0A                mOldData.equals(that.mOldData) &&%0A                mNewData.equals(that.mNewData);%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        int result = mDataComparable.hashCode();%0A        result = 31 * result + mOldData.hashCode();%0A        result = 31 * result + mNewData.hashCode();%0A        result = 31 * result + (mDetectMoves ? 1 : 0);%0A        return result;%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return %22DiffRequest%7B%22 +%0A                %22mDataComparable=%22 + mDataComparable +%0A                %22, mOldData=%22 + mOldData +%0A                %22, mNewData=%22 + mNewData +%0A                %22, mDetectMoves=%22 + mDetectMoves +%0A                '%7D';%0A    %7D%0A%7D%0A

Add DiffRequest model class