package com.constellio.data.frameworks.extensions;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
/**
* Created by Constellio on 2017-02-14.
*/
public class PriorityOrderedList<T> implements Iterable<T> {
List<OrderedItems<T>> items = new ArrayList<>();
public void add(T extension) {
add(100, extension);
}
public void add(int priority, T extension) {
items.add(new OrderedItems<>(extension, priority));
Collections.sort(items);
}
public List<T> getItems() {
List<T> returnedItems = new ArrayList<>();
for (OrderedItems<T> item : items) {
returnedItems.add(item .behavior);
}
return returnedItems;
}
@Override
public Iterator<T> iterator() {
return getItems().iterator();
}
}