code: public CalendarPeriodAssociative<T> Extract( TestFunction<T> testFunction )
  	{
  		List<PeriodAssociative<T>> _periods = new ArrayList<PeriodAssociative<T>>();
  		for( int i = 0; i < periods.size(); i++ )
  		{
  			PeriodAssociative<T> test = periods.get( i );
  
  			if( testFunction.function( test.getValue() ) )
  				_periods.add( test );
  		}
  
  		CalendarPeriodAssociative<T> res = new CalendarPeriodAssociative<T>();
  		res.setPeriods( _periods );
  
  		return res;
  	}
docs: where $testFunction returned true