List of usage examples for org.apache.commons.collections Predicate Predicate
Predicate
From source file:nl.strohalm.cyclos.controls.accounts.guarantees.certifications.EditCertificationAction.java
/** * Filter by guarantee type's model equals to WITH_PAYMENT_OBLIGATION * @param guaranteeTypes//from w ww . jav a 2s . com */ private void filterGuaranteeTypes(final Collection<GuaranteeType> guaranteeTypes) { CollectionUtils.filter(guaranteeTypes, new Predicate() { @Override public boolean evaluate(final Object object) { return GuaranteeType.Model.WITH_PAYMENT_OBLIGATION == ((GuaranteeType) object).getModel(); } }); }
From source file:nl.strohalm.cyclos.controls.groups.EditGroupAction.java
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) protected void prepareForm(final ActionContext context) throws Exception { final HttpServletRequest request = context.getRequest(); final EditGroupForm form = context.getForm(); final long id = form.getGroupId(); boolean editable = false; boolean canManageFiles = false; final Map<Group.Nature, Permission> permissionByNature = ListGroupsAction .getManageGroupPermissionByNatureMap(); final boolean isInsert = id <= 0L; if (isInsert) { // Prepare for insert List<Group.Nature> natures = new ArrayList<Group.Nature>(); if (context.isAdmin()) { // Put in the request the name of permission used to manage a type of group request.setAttribute("permissionByNature", permissionByNature); for (final Group.Nature nature : permissionByNature.keySet()) { final Permission permission = permissionByNature.get(nature); if (permissionService.hasPermission(permission)) { natures.add(nature); }/*ww w . j a v a2s.co m*/ } } else { // It's a member inserting an operator group final GroupQuery groupQuery = new GroupQuery(); groupQuery.setMember((Member) context.getElement()); final List<OperatorGroup> baseGroups = (List<OperatorGroup>) groupService.search(groupQuery); request.setAttribute("baseGroups", baseGroups); request.setAttribute("isOperatorGroup", true); natures = Collections.singletonList(Group.Nature.OPERATOR); } request.setAttribute("natures", natures); RequestHelper.storeEnum(request, Group.Status.class, "status"); editable = true; } else { // Prepare for modify Group group = groupService.load(id, Group.Relationships.CUSTOMIZED_FILES, MemberGroup.Relationships.CHANNELS); final boolean isMemberGroup = MemberGroup.class.isAssignableFrom(group.getNature().getGroupClass()); final boolean isBrokerGroup = BrokerGroup.class.isAssignableFrom(group.getNature().getGroupClass()); final boolean isOperatorGroup = OperatorGroup.class.isAssignableFrom(group.getNature().getGroupClass()); if (group.getStatus().isEnabled()) { request.setAttribute("deactivationTimePeriodFields", Arrays.asList(Field.SECONDS, Field.MINUTES, Field.HOURS, Field.DAYS)); request.setAttribute("passwordExpiresAfterFields", Arrays.asList(Field.DAYS, Field.WEEKS, Field.MONTHS, Field.YEARS)); RequestHelper.storeEnum(request, TransactionPassword.class, "transactionPasswords"); if (isMemberGroup) { final MemberGroup memberGroup = (MemberGroup) group; // Check if the group has access to a channel that uses pin final boolean usesPin = groupService.usesPin(memberGroup); request.setAttribute("usesPin", usesPin); // Retrieve the registration agreements final List<RegistrationAgreement> registrationAgreements = registrationAgreementService .listAll(); request.setAttribute("registrationAgreements", registrationAgreements); // Retrieve the associated accounts request.setAttribute("timePeriodFields", Arrays.asList(Field.DAYS, Field.WEEKS, Field.MONTHS, Field.YEARS)); final MemberAccountTypeQuery atQuery = new MemberAccountTypeQuery(); atQuery.setRelatedToGroup(memberGroup); request.setAttribute("accountTypes", accountTypeService.search(atQuery)); // Sort the message types using their messages final List<Type> messageTypes = Arrays.asList(Message.Type.values()); final Comparator cmp = new Comparator() { @Override public int compare(final Object o1, final Object o2) { final String msg1 = context.message("message.type." + o1); final String msg2 = context.message("message.type." + o2); return msg1.compareTo(msg2); } }; Collections.sort(messageTypes, cmp); request.setAttribute("messageTypes", messageTypes); // we create a wrapper ArrayList because the list must implement the remove method final List<Type> smsMessageTypes = new ArrayList<Type>(Arrays.asList(Message.Type.values())); CollectionUtils.filter(smsMessageTypes, new Predicate() { @Override public boolean evaluate(final Object object) { final Message.Type type = (Message.Type) object; switch (type) { case FROM_MEMBER: case FROM_ADMIN_TO_MEMBER: case FROM_ADMIN_TO_GROUP: return false; default: return true; } } }); Collections.sort(smsMessageTypes, cmp); request.setAttribute("smsMessageTypes", smsMessageTypes); // Store the possible groups for expiration final GroupQuery query = new GroupQuery(); query.setNatures(Group.Nature.MEMBER, Group.Nature.BROKER); final List<? extends Group> groups = groupService.search(query); groups.remove(group); request.setAttribute("possibleExpirationGroups", groups); request.setAttribute("expirationTimeFields", Arrays.asList(TimePeriod.Field.DAYS, TimePeriod.Field.WEEKS, TimePeriod.Field.MONTHS, TimePeriod.Field.YEARS)); // Store transfer types for SMS charge final TransferTypeQuery ttQuery = new TransferTypeQuery(); ttQuery.setFromGroups(Collections.singletonList(memberGroup)); ttQuery.setToNature(AccountType.Nature.SYSTEM); final List<TransferType> smsChargeTransferTypes = transferTypeService.search(ttQuery); request.setAttribute("smsChargeTransferTypes", smsChargeTransferTypes); request.setAttribute("smsAdditionalChargedPeriodFields", Arrays.asList(Field.DAYS, Field.WEEKS, Field.MONTHS)); // Retrieve the card types request.setAttribute("cardTypes", cardTypeService.listAll()); } if (isBrokerGroup) { // Retrieve the possible groups for registered members by broker final GroupQuery query = new GroupQuery(); query.setNatures(Group.Nature.MEMBER, Group.Nature.BROKER); query.setStatus(Group.Status.NORMAL); request.setAttribute("memberGroups", groupService.search(query)); } if (isMemberGroup || isBrokerGroup) { RequestHelper.storeEnum(request, MemberGroupSettings.ExternalAdPublication.class, "externalAdPublications"); } if (isOperatorGroup) { // Load the associated transaction types for the max amount per day group = groupService.load(group.getId(), RelationshipHelper.nested(OperatorGroup.Relationships.MEMBER, Element.Relationships.GROUP), OperatorGroup.Relationships.MAX_AMOUNT_PER_DAY_BY_TRANSFER_TYPE, OperatorGroup.Relationships.MAX_AMOUNT_PER_DAY_BY_TRANSFER_TYPE); final OperatorGroup operatorGroup = (OperatorGroup) group; request.setAttribute("transferTypes", operatorGroup.getMember().getGroup().getTransferTypes()); } // Retrieve the associated customized files final CustomizedFileQuery cfQuery = new CustomizedFileQuery(); cfQuery.setGroup(group); request.setAttribute("customizedFiles", customizedFileService.search(cfQuery)); // Check whether the login page name will be shown request.setAttribute("showLoginPageName", customizationHelper.isAnyFileRelatedToLoginPage(group.getCustomizedFiles())); } getDataBinder(group.getNature()).writeAsString(form.getGroup(), group); request.setAttribute("group", group); request.setAttribute("isMemberGroup", isMemberGroup); request.setAttribute("isBrokerGroup", isBrokerGroup); request.setAttribute("isOperatorGroup", isOperatorGroup); if (isMemberGroup) { // Show scheduling options when there's a schedulable transfer type final TransferTypeQuery ttQuery = new TransferTypeQuery(); ttQuery.setPageForCount(); ttQuery.setContext(TransactionContext.PAYMENT); ttQuery.setGroup(group); ttQuery.setSchedulable(true); request.setAttribute("showScheduling", PageHelper.getTotalCount(transferTypeService.search(ttQuery)) > 0); // Channels that the group of member have access final Collection<Channel> channels = channelService.list(); // The "web" channel can not be customized by the user, so it should not be sent to the JSP page final Channel webChannel = channelService.loadByInternalName(Channel.WEB); channels.remove(webChannel); request.setAttribute("channels", channels); RequestHelper.storeEnum(request, EmailValidation.class, "emailValidations"); } if (context.isAdmin()) { AdminGroup adminGroup = context.getGroup(); adminGroup = groupService.load(adminGroup.getId(), AdminGroup.Relationships.MANAGES_GROUPS); if (permissionService.hasPermission(permissionByNature.get(group.getNature())) && (Group.Nature.ADMIN.equals(group.getNature()) || adminGroup.getManagesGroups().contains(group))) { editable = true; } } else { // It's a member updating an operator group editable = permissionService.hasPermission(MemberPermission.OPERATORS_MANAGE); } canManageFiles = customizedFileService.canViewOrManageInGroup(group); } request.setAttribute("isInsert", isInsert); request.setAttribute("editable", editable); request.setAttribute("canManageFiles", canManageFiles); RequestHelper.storeEnum(request, PasswordPolicy.class, "passwordPolicies"); }
From source file:nl.strohalm.cyclos.controls.reports.members.transactions.ExportMembersTransactionsDetailsToCsvAction.java
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) protected List<?> executeQuery(final ActionContext context) { final MembersReportHandler reportHandler = getReportHandler(); final Pair<MembersTransactionsReportDTO, Iterator<MemberTransactionDetailsReportData>> pair = reportHandler .handleTransactionsDetails(context); final MembersTransactionsReportDTO dto = pair.getFirst(); final Iterator<MemberTransactionDetailsReportData> reportIterator = pair.getSecond(); final Iterator iterator = IteratorUtils.filteredIterator(reportIterator, new Predicate() { @Override// w w w. j a va 2 s . c om public boolean evaluate(final Object element) { final MemberTransactionDetailsReportData data = (MemberTransactionDetailsReportData) element; if (dto.isIncludeNoTraders()) { return true; } return data.getAmount() != null; } }); return new IteratorListImpl(iterator); }
From source file:nl.strohalm.cyclos.controls.reports.members.transactions.ExportMembersTransactionsReportToCsvAction.java
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) protected List<?> executeQuery(final ActionContext context) { final MembersReportHandler reportHandler = getReportHandler(); final Pair<MembersTransactionsReportDTO, Iterator<MemberTransactionSummaryReportData>> pair = reportHandler .handleTransactionsSummary(context); final MembersTransactionsReportDTO dto = pair.getFirst(); final Iterator<MemberTransactionSummaryReportData> reportIterator = pair.getSecond(); final Iterator iterator = IteratorUtils.filteredIterator(reportIterator, new Predicate() { @Override/*from ww w . j a va2 s .c o m*/ public boolean evaluate(final Object element) { final MemberTransactionSummaryReportData data = (MemberTransactionSummaryReportData) element; if (dto.isIncludeNoTraders()) { return true; } return data.isHasData(); } }); return new IteratorListImpl(iterator); }
From source file:nl.strohalm.cyclos.entities.customization.fields.CustomField.java
public Collection<CustomFieldPossibleValue> getPossibleValues(final Boolean onlyEnabled) { // Filter enabled possible values final Collection<CustomFieldPossibleValue> filteredPossibleValues = new ArrayList<CustomFieldPossibleValue>( possibleValues);//from w w w .jav a2 s.co m CollectionUtils.filter(filteredPossibleValues, new Predicate() { @Override public boolean evaluate(final Object object) { final CustomFieldPossibleValue possibleValue = (CustomFieldPossibleValue) object; return onlyEnabled ? possibleValue.isEnabled() : true; } }); return possibleValues; }
From source file:nl.strohalm.cyclos.entities.customization.fields.CustomField.java
public Collection<CustomFieldPossibleValue> getPossibleValuesByParent( final CustomFieldPossibleValue parentValue, final Boolean onlyEnabled) { // When this field has no parent, return all values if (parent == null) { return possibleValues; }/*from www .j ava 2 s . com*/ // When there's no parent value, or it don't match this field's parent, return an empty list if (possibleValues == null || parentValue == null || !parent.equals(parentValue.getField())) { return Collections.emptyList(); } // Filter the possible values by parent value final Collection<CustomFieldPossibleValue> filteredPossibleValues = new ArrayList<CustomFieldPossibleValue>( possibleValues); CollectionUtils.filter(filteredPossibleValues, new Predicate() { @Override public boolean evaluate(final Object object) { final CustomFieldPossibleValue possibleValue = (CustomFieldPossibleValue) object; return parentValue.equals(possibleValue.getParent()) && (onlyEnabled ? possibleValue.isEnabled() : true); } }); return filteredPossibleValues; }
From source file:nl.strohalm.cyclos.services.accounts.guarantees.CertificationServiceSecurity.java
private void checkGuaranteeType(final Certification certification) { Collection<GuaranteeType> allowedGuaranteeTypes = fetchService .fetch(LoggedUser.group(), Group.Relationships.GUARANTEE_TYPES).getGuaranteeTypes(); CollectionUtils.filter(allowedGuaranteeTypes, new Predicate() { @Override/* ww w .j a va 2 s . c o m*/ public boolean evaluate(final Object object) { return GuaranteeType.Model.WITH_PAYMENT_OBLIGATION == ((GuaranteeType) object).getModel(); } }); PermissionHelper.checkContains(allowedGuaranteeTypes, certification.getGuaranteeType()); }
From source file:nl.strohalm.cyclos.services.accounts.guarantees.GuaranteeServiceImpl.java
private Collection<? extends MemberGroup> filterBuyers() { return filterMemberGroups(new Predicate() { @Override/*from w ww. j a v a2s . c om*/ public boolean evaluate(final Object object) { return isBuyerMember((Group) object); } }); }
From source file:nl.strohalm.cyclos.services.accounts.guarantees.GuaranteeServiceImpl.java
private Collection<? extends MemberGroup> filterIssuers() { return filterMemberGroups(new Predicate() { @Override/*from w w w . ja va 2 s . c o m*/ public boolean evaluate(final Object object) { return isIssuerMember((Group) object); } }); }
From source file:nl.strohalm.cyclos.services.accounts.guarantees.GuaranteeServiceImpl.java
@SuppressWarnings("unchecked") private Collection<? extends MemberGroup> filterMemberGroups(final Predicate predicate, Collection<? extends Group> groups) { Predicate predicateToApply = predicate; if (groups == null) { // search for not removed member and broker groups final GroupQuery query = new GroupQuery(); query.setStatus(Group.Status.NORMAL); query.setNatures(Group.Nature.MEMBER, Group.Nature.BROKER); groups = groupService.search(query); } else if (groups.isEmpty()) { // if the group list is empty then return the same (empty) list return (Collection<? extends MemberGroup>) groups; } else { // it creates a predicate to filter not removed member and broker groups final Predicate memberGroupPredicate = new Predicate() { @Override//from ww w . j a v a 2s. c o m public boolean evaluate(final Object object) { final Group grp = (Group) object; return Group.Status.NORMAL == grp.getStatus() && (Group.Nature.MEMBER == grp.getNature() || Group.Nature.BROKER == grp.getNature()); } }; predicateToApply = predicate == null ? memberGroupPredicate : new AndPredicate(memberGroupPredicate, predicate); } CollectionUtils.filter(groups, predicateToApply); return (Collection<? extends MemberGroup>) groups; }