Mercurial > hg > Members > shoshi > TreeCMSv2
view src/treecms/tree/util/PredicatedList.java @ 13:c8601b0fa8a3
added Predicate and PredicateList
author | shoshi |
---|---|
date | Wed, 11 May 2011 22:08:20 +0900 |
parents | |
children |
line wrap: on
line source
package treecms.tree.util; import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.ListIterator; public class PredicatedList<E> implements List<E> { private Predicate<E> m_predicate; private List<E> m_list; public PredicatedList(List<E> _list,Predicate<E> _predicate) { if(_list == null || _predicate == null){ throw new NullPointerException(); } m_list = _list; m_predicate = _predicate; } @Override public boolean add(E _item) { if(m_predicate.evaluateAdd(_item)){ return m_list.add(_item); } return false; } @Override public void add(int _index,E _item) { if(m_predicate.evaluateAdd(_index,_item)){ m_list.add(_index,_item); } } @Override public boolean addAll(Collection<? extends E> _c) { boolean eval = false; for(E i : _c){ eval = m_predicate.evaluate(i); if(!eval){ return false; } } return m_list.addAll(_c); } @Override public boolean addAll(int _index, Collection<? extends E> _c) { boolean eval = false; for(E i : _c){ eval = m_predicate.evaluate(i); if(!eval){ return false; } } return m_list.addAll(_index,_c); } @Override public void clear() { m_list.clear(); } @Override public boolean contains(Object _obj) { return m_list.contains(_obj); } @Override public boolean containsAll(Collection<?> _c) { return m_list.containsAll(_c); } @Override public E get(int _index) { return m_list.get(_index); } @Override public int indexOf(Object _obj) { return m_list.indexOf(_obj); } @Override public boolean isEmpty() { return m_list.isEmpty(); } @Override public Iterator<E> iterator() { return m_list.iterator(); } @Override public int lastIndexOf(Object _obj) { return m_list.lastIndexOf(_obj); } @Override public ListIterator<E> listIterator() { return m_list.listIterator(); } @Override public ListIterator<E> listIterator(int _index) { return m_list.listIterator(_index); } @Override public boolean remove(Object _obj) { return m_list.remove(_obj); } @Override public E remove(int _index) { return m_list.remove(_index); } @Override public boolean removeAll(Collection<?> _c) { return m_list.removeAll(_c); } @Override public boolean retainAll(Collection<?> _c) { return m_list.retainAll(_c); } @Override public E set(int _index,E _element) { if(m_predicate.evaluate(_element)){ } return null; } @Override public int size() { // TODO Auto-generated method stub return 0; } @Override public List<E> subList(int fromIndex, int toIndex) { // TODO Auto-generated method stub return null; } @Override public Object[] toArray() { // TODO Auto-generated method stub return null; } @Override public <T> T[] toArray(T[] a) { // TODO Auto-generated method stub return null; } }