private void getAndChainIfPossibleInternal(final IGeocacheFilter filterToCheck, final List<BaseGeocacheFilter> chain) {

        if (isAndFilter(filterToCheck)) {
            for (IGeocacheFilter fChild : filterToCheck.getChildren()) {
                getAndChainIfPossibleInternal(fChild, chain);
            }
        } else if (filterToCheck instanceof BaseGeocacheFilter) {
            chain.add((BaseGeocacheFilter) filterToCheck);
        }
    }
Helper method to be used in conjunction with {@link #getAndChainIfPossible()} by search providers
only offering SPECIFIC filter capabilities. This method searches and returns specific base filters contained in a given filter list
main/src/main/java/cgeo/geocaching/filters/core/GeocacheFilter.java