Example usage for org.apache.commons.collections CollectionUtils select

List of usage examples for org.apache.commons.collections CollectionUtils select

Introduction

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

Prototype

public static Collection select(Collection inputCollection, Predicate predicate) 

Source Link

Document

Selects all elements from input collection which match the given predicate into an output collection.

Usage

From source file:org.openmrs.module.paperrecord.PaperRecordServiceImpl.java

@Override
@Transactional(readOnly = true)//from w  w  w  . j  a v  a  2 s  .  c  om
public List<PaperRecordRequest> getAssignedPaperRecordRequestsToCreate(Location medicalRecordLocation) {
    return new ArrayList<PaperRecordRequest>(
            CollectionUtils.select(getAssignedPaperRecordRequests(medicalRecordLocation), new Predicate() {
                @Override
                public boolean evaluate(Object request) {
                    return ((PaperRecordRequest) request).getPaperRecord().getStatus()
                            .equals(PaperRecord.Status.PENDING_CREATION);
                }
            }));
}

From source file:org.openmrs.module.paperrecord.PaperRecordServiceImpl.java

@Override
@Transactional(readOnly = true)//from  w  w  w.  ja  v a 2s. c  om
public List<PaperRecordRequest> getAssignedPaperRecordRequestsToCreate() {
    return new ArrayList<PaperRecordRequest>(
            CollectionUtils.select(getAssignedPaperRecordRequests(), new Predicate() {
                @Override
                public boolean evaluate(Object request) {
                    return ((PaperRecordRequest) request).getPaperRecord().getStatus()
                            .equals(PaperRecord.Status.PENDING_CREATION);
                }
            }));
}

From source file:org.openmrs.module.providermanagement.api.impl.ProviderManagementServiceImpl.java

@Override
@Transactional(readOnly = true)/*from ww  w.  j a  va  2s  .c  om*/
public List<RelationshipType> getAllProviderRoleRelationshipTypes(boolean includeRetired) {

    Set<RelationshipType> relationshipTypes = new HashSet<RelationshipType>();

    for (ProviderRole providerRole : getAllProviderRoles(includeRetired)) {

        if (includeRetired) {
            relationshipTypes.addAll(providerRole.getRelationshipTypes());
        }
        // filter out any retired relationships
        else {
            relationshipTypes
                    .addAll(CollectionUtils.select(providerRole.getRelationshipTypes(), new Predicate() {
                        @Override
                        public boolean evaluate(Object relationshipType) {
                            return !((RelationshipType) relationshipType).getRetired();
                        }
                    }));
        }
    }

    return new ArrayList<RelationshipType>(relationshipTypes);
}

From source file:org.openo.sdnhub.overlayvpndriver.translator.NeConnectionToIpsec.java

/**
 * <br/>/*  w w w .j a v  a2  s . co  m*/
 *
 * @param deviceIdToTpsecConnListMap
 * @param ctrlUuid
 * @return
 * @since SDNHUB 0.5
 */
@SuppressWarnings({ "unchecked" })
public static Map<String, List<IpsecConnList>> convert2Model(
        final Map<String, List<SbiNeIpSec>> deviceIdToTpsecConnListMap, final String ctrlUuid) {

    Map<String, List<IpsecConnList>> neIdToIpsecModelMap = new ConcurrentHashMap<>();
    for (Entry<String, List<SbiNeIpSec>> entry : deviceIdToTpsecConnListMap.entrySet()) {
        List<IpsecConnList> ipsecModelList = new ArrayList<>();
        List<SbiNeIpSec> ipSecNeConnectionList = entry.getValue();
        List<SbiNeIpSec> workIpSecConnections = new ArrayList<>(
                CollectionUtils.select(ipSecNeConnectionList, new Predicate() {

                    @Override
                    public boolean evaluate(Object arg0) {
                        return ((SbiNeIpSec) arg0).getWorkType().equals(IpSecConnectionType.WORK.getName());
                    }
                }));

        List<SbiNeIpSec> projectIpSecConnections = new ArrayList<>(
                CollectionUtils.select(ipSecNeConnectionList, new Predicate() {

                    @Override
                    public boolean evaluate(Object arg0) {
                        return ((SbiNeIpSec) arg0).getWorkType().equals(IpSecConnectionType.PROJECT.getName());
                    }
                }));

        IpsecConnList workIpsecModel = convertWorkIpsecModel(workIpSecConnections);
        ipsecModelList.add(workIpsecModel);
        if (!CollectionUtils.isEmpty(projectIpSecConnections)) {
            IpsecConnList protectIpsecModel = convertProtectIpsecModel(projectIpSecConnections);
            ipsecModelList.add(protectIpsecModel);
        }

        neIdToIpsecModelMap.put(entry.getKey(), ipsecModelList);
    }
    return neIdToIpsecModelMap;
}

From source file:org.projectforge.address.AddressDaoRest.java

/**
 * Rest-Call for {@link AddressDao#getFavoriteVCards()}. <br/>
 * If modifiedSince is given then only those addresses will be returned:
 * <ol>/*  ww w . ja  v  a 2s .c o  m*/
 * <li>The address was changed after the given modifiedSince date, or</li>
 * <li>the address was added to the user's personal address book after the given modifiedSince date, or</li>
 * <li>the address was removed from the user's personal address book after the given modifiedSince date.</li>
 * </ol>
 * @param searchTerm
 * @param modifiedSince milliseconds since 1970 (UTC)
 * @param all If true and the user is member of the ProjectForge's group {@link ProjectForgeGroup#FINANCE_GROUP} or
 *          {@link ProjectForgeGroup#MARKETING_GROUP} the export contains all addresses instead of only favorite addresses.
 * @see AddressDaoClientMain
 */
@GET
@Path(RestPaths.LIST)
@Produces(MediaType.APPLICATION_JSON)
public Response getList(@QueryParam("search") final String searchTerm,
        @QueryParam("modifiedSince") final Long modifiedSince, @QueryParam("all") final Boolean all) {
    final AddressFilter filter = new AddressFilter(new BaseSearchFilter());
    Date modifiedSinceDate = null;
    if (modifiedSince != null) {
        modifiedSinceDate = new Date(modifiedSince);
        filter.setModifiedSince(modifiedSinceDate);
    }
    filter.setSearchString(searchTerm);
    final List<AddressDO> list = addressDao.getList(filter);

    boolean exportAll = false;
    if (BooleanUtils.isTrue(all) == true
            && accessChecker.isLoggedInUserMemberOfGroup(ProjectForgeGroup.FINANCE_GROUP,
                    ProjectForgeGroup.MARKETING_GROUP) == true) {
        exportAll = true;
    }

    List<PersonalAddressDO> favorites = null;
    Set<Integer> favoritesSet = null;
    if (exportAll == false) {
        favorites = personalAddressDao.getList();
        favoritesSet = new HashSet<Integer>();
        if (favorites != null) {
            for (final PersonalAddressDO personalAddress : favorites) {
                if (personalAddress.isFavoriteCard() == true && personalAddress.isDeleted() == false) {
                    favoritesSet.add(personalAddress.getAddressId());
                }
            }
        }
    }
    final List<AddressObject> result = new LinkedList<AddressObject>();
    final Set<Integer> alreadyExported = new HashSet<Integer>();
    if (list != null) {
        for (final AddressDO addressDO : list) {
            if (exportAll == false && favoritesSet.contains(addressDO.getId()) == false) {
                // Export only personal favorites due to data-protection.
                continue;
            }
            final AddressObject address = AddressDOConverter.getAddressObject(addressDO);
            result.add(address);
            alreadyExported.add(address.getId());
        }
    }
    if (exportAll == false && modifiedSinceDate != null) {
        // Add now personal address entries which were modified since the given date (deleted or added):
        for (final PersonalAddressDO personalAddress : favorites) {
            if (alreadyExported.contains(personalAddress.getAddressId()) == true) {
                // Already exported:
            }
            if (personalAddress.getLastUpdate() != null
                    && personalAddress.getLastUpdate().before(modifiedSinceDate) == false) {
                final AddressDO addressDO = addressDao.getById(personalAddress.getAddressId());
                final AddressObject address = AddressDOConverter.getAddressObject(addressDO);
                if (personalAddress.isFavorite() == false) {
                    // This address was may-be removed by the user from the personal address book, so add this address as deleted to the result
                    // list.
                    address.setDeleted(true);
                }
                result.add(address);
            }
        }
    }
    @SuppressWarnings("unchecked")
    final List<AddressObject> uniqResult = (List<AddressObject>) CollectionUtils.select(result,
            PredicateUtils.uniquePredicate());
    final String json = JsonUtils.toJson(uniqResult);
    log.info("Rest call finished (" + result.size() + " addresses)...");
    return Response.ok(json).build();
}

From source file:org.projectforge.business.humanresources.HRPlanningEntryDao.java

@Override
public List<HRPlanningEntryDO> getList(final BaseSearchFilter filter) {
    final HRPlanningFilter myFilter = (HRPlanningFilter) filter;
    if (myFilter.getStopTime() != null) {
        final DateHolder date = new DateHolder(myFilter.getStopTime());
        date.setEndOfDay();/*from ww  w . ja  va  2 s  . com*/
        myFilter.setStopTime(date.getDate());
    }
    final QueryFilter queryFilter = buildQueryFilter(myFilter);
    myFilter.setIgnoreDeleted(true); // Ignore deleted flag of HRPlanningEntryDOs, use instead:
    if (myFilter.isDeleted() == true) {
        queryFilter.add(Restrictions.or(Restrictions.eq("deleted", true), Restrictions.eq("p.deleted", true)));
    } else {
        queryFilter
                .add(Restrictions.and(Restrictions.eq("deleted", false), Restrictions.eq("p.deleted", false)));
    }
    final List<HRPlanningEntryDO> list = getList(queryFilter);
    if (list == null) {
        return null;
    }
    for (final HRPlanningEntryDO entry : list) {
        @SuppressWarnings("unchecked")
        final List<HRPlanningEntryDO> entries = (List<HRPlanningEntryDO>) CollectionUtils
                .select(entry.getPlanning().getEntries(), PredicateUtils.uniquePredicate());
        entry.getPlanning().setEntries(entries);
    }
    if (myFilter.isGroupEntries() == false && myFilter.isOnlyMyProjects() == false) {
        return list;
    }
    final List<HRPlanningEntryDO> result = new ArrayList<HRPlanningEntryDO>();
    final Set<Integer> set = (myFilter.isGroupEntries() == true) ? new HashSet<Integer>() : null;
    for (final HRPlanningEntryDO entry : list) {
        if (myFilter.isOnlyMyProjects() == true) {
            if (entry.getProjekt() == null) {
                continue;
            }
            final ProjektDO projekt = entry.getProjekt();
            if (projekt.getProjektManagerGroup() == null) {
                continue;
            }
            if (getUserGroupCache().isLoggedInUserMemberOfGroup(projekt.getProjektManagerGroupId()) == false) {
                continue;
            }
        }
        if (myFilter.isGroupEntries() == true) {
            if (set.contains(entry.getPlanningId()) == true) {
                // Entry is already in result list.
                continue;
            }
            final HRPlanningEntryDO sumEntry = new HRPlanningEntryDO();
            final HRPlanningDO planning = entry.getPlanning();
            sumEntry.setPlanning(planning);
            sumEntry.setUnassignedHours(planning.getTotalUnassignedHours());
            sumEntry.setMondayHours(planning.getTotalMondayHours());
            sumEntry.setTuesdayHours(planning.getTotalTuesdayHours());
            sumEntry.setWednesdayHours(planning.getTotalWednesdayHours());
            sumEntry.setThursdayHours(planning.getTotalThursdayHours());
            sumEntry.setFridayHours(planning.getTotalFridayHours());
            sumEntry.setWeekendHours(planning.getTotalWeekendHours());
            final StringBuffer buf = new StringBuffer();
            boolean first = true;
            for (final HRPlanningEntryDO pos : planning.getEntries()) {
                final String str = pos.getProjektNameOrStatus();
                if (StringUtils.isNotBlank(str) == true) {
                    if (first == true) {
                        first = false;
                    } else {
                        buf.append("; ");
                    }
                    buf.append(str);
                }
            }
            sumEntry.setDescription(buf.toString());
            result.add(sumEntry);
            set.add(planning.getId());
        } else {
            result.add(entry);
        }
    }
    return result;
}

From source file:org.projectforge.business.login.LoginDefaultHandler.java

protected List<?> selectUnique(final List<?> list) {
    final List<?> result = (List<?>) CollectionUtils.select(list, PredicateUtils.uniquePredicate());
    return result;
}

From source file:org.projectforge.core.BaseDao.java

protected List<O> selectUnique(final List<O> list) {
    @SuppressWarnings("unchecked")
    final List<O> result = (List<O>) CollectionUtils.select(list, PredicateUtils.uniquePredicate());
    return result;
}

From source file:org.projectforge.database.xstream.HibernateXmlConverter.java

/**
 * @param writer/*from w  ww  .  ja  va 2s .co m*/
 * @param includeHistory
 * @param session
 * @throws DataAccessException
 * @throws HibernateException
 */
private void writeObjects(final Writer writer, final boolean includeHistory, final Session session,
        final boolean preserveIds) throws DataAccessException, HibernateException {
    // Container fr die Objekte
    final List<Object> all = new ArrayList<Object>();
    final XStream stream = initXStream(session, true);
    final XStream defaultXStream = initXStream(session, false);

    session.flush();
    // Alles laden
    List<?> list = session.createQuery("select o from java.lang.Object o").setReadOnly(true).list();
    list = (List<?>) CollectionUtils.select(list, PredicateUtils.uniquePredicate());
    final int size = list.size();
    log.info("Writing " + size + " objects");
    for (final Iterator<?> it = list.iterator(); it.hasNext();) {
        final Object obj = it.next();
        if (log.isDebugEnabled()) {
            log.debug("loaded object " + obj);
        }
        if ((obj instanceof HistoryEntry || obj instanceof PropertyDelta) && includeHistory == false) {
            continue;
        }
        Hibernate.initialize(obj);
        Class<?> targetClass = obj.getClass();
        while (Enhancer.isEnhanced(targetClass) == true) {
            targetClass = targetClass.getSuperclass();
        }
        final ClassMetadata classMetadata = session.getSessionFactory().getClassMetadata(targetClass);
        if (classMetadata == null) {
            log.fatal("Can't init " + obj + " of type " + targetClass);
            continue;
        }
        // initalisierung des Objekts...
        defaultXStream.marshal(obj, new CompactWriter(new NullWriter()));

        if (preserveIds == false) {
            // Nun kann die ID gelscht werden
            classMetadata.setIdentifier(obj, null, EntityMode.POJO);
        }
        if (log.isDebugEnabled()) {
            log.debug("loading evicted object " + obj);
        }
        if (this.ignoreFromTopLevelListing.contains(targetClass) == false) {
            all.add(obj);
        }
    }
    // und schreiben
    try {
        writer.write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n");
    } catch (final IOException ex) {
        // ignore, will fail on stream.marshal()
    }
    log.info("Wrote " + all.size() + " objects");
    final MarshallingStrategy marshallingStrategy = new ProxyIdRefMarshallingStrategy();
    stream.setMarshallingStrategy(marshallingStrategy);
    stream.marshal(all, new PrettyPrintWriter(writer));
}

From source file:org.projectforge.framework.persistence.xstream.HibernateXmlConverter.java

/**
 * @param writer// www  .  j  a  v a 2 s . com
 * @param includeHistory
 * @param session
 * @throws DataAccessException
 * @throws HibernateException
 */
private void writeObjects(final Writer writer, final boolean includeHistory, final Session session,
        final boolean preserveIds) throws DataAccessException, HibernateException {
    // Container fr die Objekte
    final List<Object> all = new ArrayList<Object>();
    final XStream stream = initXStream(session, true);
    final XStream defaultXStream = initXStream(session, false);

    session.flush();
    // Alles laden
    //    final List<Class<?>> entities = new ArrayList<Class<?>>();
    final List<Class<?>> entities = PfEmgrFactory.get().getMetadataRepository().getTableEntities().stream()
            .map((e) -> e.getJavaType()).collect(Collectors.toList());
    //    entities.addAll(HibernateEntities.instance().getOrderedEntities());
    //    entities.addAll(HibernateEntities.instance().getOrderedHistoryEntities());
    for (final Class<?> entityClass : entities) {
        final String entitySimpleName = entityClass.getSimpleName();
        final String entityType = entityClass.getName();

        if (includeHistory == false
                && entityType.startsWith("org.projectforge.framework.persistence.history.entities.") == true) {
            // Skip history entries.
            continue;
        }
        List<?> list = session.createQuery("select o from " + entityType + " o").setReadOnly(true).list();
        list = (List<?>) CollectionUtils.select(list, PredicateUtils.uniquePredicate());
        final int size = list.size();
        log.info("Writing " + size + " objects");
        for (final Iterator<?> it = list.iterator(); it.hasNext();) {
            final Object obj = it.next();
            if (log.isDebugEnabled()) {
                log.debug("loaded object " + obj);
            }
            Hibernate.initialize(obj);
            final Class<?> targetClass = HibernateProxyHelper.getClassWithoutInitializingProxy(obj);
            final ClassMetadata classMetadata = session.getSessionFactory().getClassMetadata(targetClass);
            if (classMetadata == null) {
                log.fatal("Can't init " + obj + " of type " + targetClass);
                continue;
            }
            // initalisierung des Objekts...
            defaultXStream.marshal(obj, new CompactWriter(new NullWriter()));

            if (preserveIds == false) {
                // Nun kann die ID gelscht werden
                HibernateCompatUtils.setClassMetaDataSetIdentifier(classMetadata, obj, EntityMode.POJO);
            }
            if (log.isDebugEnabled()) {
                log.debug("loading evicted object " + obj);
            }
            if (this.ignoreFromTopLevelListing.contains(targetClass) == false) {
                all.add(obj);
            }
        }
    }
    // und schreiben
    try {
        writer.write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n");
    } catch (final IOException ex) {
        // ignore, will fail on stream.marshal()
    }
    log.info("Wrote " + all.size() + " objects");
    final MarshallingStrategy marshallingStrategy = new ProxyIdRefMarshallingStrategy();
    stream.setMarshallingStrategy(marshallingStrategy);
    stream.marshal(all, new PrettyPrintWriter(writer));
}