public FilterableCollection<E> filteredCollection(final Filter<? super E> filter) {
        return SyncUtils.synchronizeRead(lock, new Callback<FilterableCollection<E>>() {
            @Override
            protected void doAction() {
                FilterableCollection<E> _col = getFilterableCollection().filteredCollection(filter);
                _return(new SynchronizedFilterableCollection<E>(_col, lock));
            }
        });
    }
public FilterableCollection < E > filteredCollection ( final Filter < ? super E > filter ) { return SyncUtils . synchronizeRead ( lock , new Callback < FilterableCollection < E > > ( ) { @ Override protected void doAction ( ) { FilterableCollection < E > _col = getFilterableCollection ( ) . filteredCollection ( filter ) ; _return ( new SynchronizedFilterableCollection < E > ( _col , lock ) ) ; } } ) ; }
-----------------------------------------------------------------------