// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package io.v.baku.toolkit.bind;

import android.view.View;
import android.view.ViewGroup;

import java8.util.function.Function;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class TransformingViewAdapter<T, U, VH extends ViewHolder>
        extends AbstractViewAdapter<T, VH> {
    private final ViewAdapter<U, VH> mBase;
    private final Function<T, U> mFn;

    @Override
    public View createView(final ViewGroup parent) {
        return mBase.createView(parent);
    }

    @Override
    public VH createViewHolder(final View view) {
        return mBase.createViewHolder(view);
    }

    @Override
    public void bindViewHolder(final VH viewHolder, final int position, final T value) {
        mBase.bindViewHolder(viewHolder, position, mFn.apply(value));
    }
}
