Example usage for org.apache.commons.collections Predicate Predicate

List of usage examples for org.apache.commons.collections Predicate Predicate

Introduction

In this page you can find the example usage for org.apache.commons.collections Predicate Predicate.

Prototype

Predicate

Source Link

Usage

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;
}