@Override public boolean contains(Object o) { for (M member : members) { if (selector.select(member) && o.equals(member)) { return true; } } return false; }
@Override public int getSize(MemberSelector selector) { int size = 0; for (MemberImpl member : membersRef.get()) { if (selector.select(member)) { size++; } } return size; }
@Override public Object[] toArray() { List<Object> result = new ArrayList<Object>(); for (M member : members) { if (selector.select(member)) { result.add(member); } } return result.toArray(new Object[result.size()]); }
@Override public int size() { int size = 0; for (M member : members) { if (selector.select(member)) { size++; } } return size; }
@Override public <T> T[] toArray(T[] a) { List<Object> result = new ArrayList<Object>(); for (M member : members) { if (selector.select(member)) { result.add(member); } } if (a.length != result.size()) { a = (T[]) Array.newInstance(a.getClass().getComponentType(), result.size()); } for (int i = 0; i < a.length; i++) { a[i] = (T) result.get(i); } return a; }