/** Filter the entities based on the specifications of the tab. */ protected static UnaryFunctor<Individual, Boolean> getPortalFilter(Tab tab) { ApplicationBean appBean = new ApplicationBean(); if (tab.getPortalId() == appBean.getSharedPortalFlagNumeric()) { return VitroFilterUtils.getCalsPortalFilter().getIndividualFilter(); // } else if (tab.getPortalId() == appBean.getAllPortalFlagNumeric()){ } else if (tab.getPortalId() == 65535) { return VitroFilterUtils.t; } else { return VitroFilterUtils.getFlag1ExclusiveFilter( FlagMathUtils.portalId2Numeric(tab.getPortalId())); } }
/** Create a filter for the entities based on the specifications of the tab. */ public static UnaryFunctor<Individual, Boolean> getTimeFilter(final Tab tab, final DateTime now) { UnaryFunctor<Individual, Boolean> out = null; if (tab.getDayLimit() == 0) { out = VitroFilterUtils.getSunsetWindowFilter(now.toDate()).getIndividualFilter(); } else if (tab.getDayLimit() > 0) { out = new UnaryFunctor<Individual, Boolean>() { public Boolean fn(Individual arg) { if (arg.getTimekey() == null) return Boolean.FALSE; DateTime timekey = new DateTime(arg.getTimekey()); DateTime startShowingDate = timekey.minusDays(tab.getDayLimit()); /* This is the filtering for events in the future */ return now.isAfter(startShowingDate) && now.isBefore(timekey); } public String toString() { return "DayLimit Filter: is timekey after now (" + now.toString() + ") and timekey + daylimit is before now?"; } }; } else if (tab.getDayLimit() < 0) { out = new UnaryFunctor<Individual, Boolean>() { public Boolean fn(Individual arg) { if (arg.getSunrise() == null) return Boolean.FALSE; DateTime sunrise = new DateTime(arg.getSunrise()); DateTime stopShowingDate = sunrise.plusDays(Math.abs(tab.getDayLimit())); /* This is the filtering for press releases */ return (sunrise.isBefore(now) || sunrise.isEqual(now)) && now.isBefore(stopShowingDate); } public String toString() { return "Sunrise Filter: is sunrise before now and" + " days between now and sunrise greater than or eq to daylimit?"; } }; } return out; }