package io.konik.util;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import io.konik.zugferd.entity.trade.item.Item;
import javax.annotation.Nullable;
import java.util.LinkedList;
import java.util.List;
/**
* Helper functions for {@link Item} class.
*/
public final class Items {
/**
* Filters list of {@link Item} using given {@link Predicate}
* @param items
* @param predicate
* @return
*/
public static List<Item> filter(List<Item> items, Predicate<Item> predicate) {
return new LinkedList<Item>(Collections2.filter(items, predicate));
}
/**
* Removes all non-purchasable items (e.g. text information only item etc.)
* @param items
* @return
*/
public static List<Item> purchasableItemsOnly(List<Item> items) {
return filter(items, new Predicate<Item>() {
@Override
public boolean apply(@Nullable Item item) {
return item != null &&
item.getDelivery() != null &&
item.getAgreement() != null &&
item.getSettlement() != null;
}
});
}
}