public static UnaryFunctor<Individual, Boolean> getFilterForTab( final Tab tab, final Portal portalThatTabIsIn, final boolean isFlag1Filtering) { DateTime now = new DateTime(); UnaryFunctor<Individual, Boolean> entFilter = getTimeFilter(tab, now); UnaryFunctor<Individual, Boolean> tabPortalFilter = getPortalFilter(tab); if (isFlag1Filtering && tabPortalFilter != null && portalThatTabIsIn != null && portalThatTabIsIn.isFlag1Filtering()) entFilter = AdaptorFunctors.and(entFilter, tabPortalFilter); String flag2set = tab.getFlag2Set(); if (flag2set != null && flag2set.trim().length() > 0) { String[] flags = flag2set.split(","); if ("OMIT".equalsIgnoreCase(tab.getFlag2Mode())) { UnaryFunctor<Individual, Boolean> negate = LogicalFunctors.unaryNegate(getCollegeFilter(flags)); entFilter = AdaptorFunctors.and(entFilter, negate); } else { entFilter = AdaptorFunctors.and(entFilter, getCollegeFilter(flags)); } } /* need more? entFilter = AdaptorFunctors.and( getSomeFilter(tab), entFilter); entFilter = AdaptorFunctors.and( getOtherFilter(tab), entFilter); */ return entFilter; }