Example usage for com.liferay.portal.kernel.bean BeanPropertiesUtil copyProperties

List of usage examples for com.liferay.portal.kernel.bean BeanPropertiesUtil copyProperties

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.bean BeanPropertiesUtil copyProperties.

Prototype

public static void copyProperties(Object source, Object target) 

Source Link

Usage

From source file:com.rcs.liferay.service.hook.CustomAssetEntryServiceImpl.java

License:Open Source License

@Override
public List<AssetEntry> getEntries(AssetEntryQuery entryQuery) throws PortalException, SystemException {
    List<AssetEntry> entriesList = new ArrayList<AssetEntry>();
    CustomAssetEntryQuery caeq = new CustomAssetEntryQuery(entryQuery);
    BeanPropertiesUtil.copyProperties(entryQuery, caeq);

    int end = entryQuery.getEnd();
    int start = entryQuery.getStart();

    if (caeq.isCustomQuery()) {
        entryQuery.setStart(0);//from  w w w  .j a  v  a  2 s  .  co  m
        entryQuery.setEnd(QueryUtil.ALL_POS);
    }

    List<AssetEntry> entries = super.getEntries(entryQuery);

    if (caeq.isCustomQuery()) {
        log.info("It is a custom query..");

        for (AssetEntry ae : entries) {
            entriesList.add(ae);
        }
        ///////////
        // Start filtering
        ///////////

        List<AssetEntry> toRemove = new ArrayList<AssetEntry>();

        for (AssetEntry assetEntry : entriesList) {

            if (caeq.getCustomFilterFieldName1() != null
                    && !caeq.getCustomFilterFieldName1().trim().isEmpty()) {

                CustomAssetEntryFilter assetFilter = new CustomAssetEntryFilter();
                assetFilter.setField(caeq.getCustomFilterFieldName1());
                assetFilter
                        .setFormat(CustomAssetEntryFilter.getFieldTypeByName(caeq.getCustomFilterFieldType1()));
                assetFilter.setOperator(caeq.getCustomFilterComparator1());
                assetFilter.setValue(caeq.getCustomFilterValue1());
                assetFilter.setAssetEntry(assetEntry);

                if (!assetFilter.validate()) {
                    toRemove.add(assetEntry);
                    continue;
                }
            }

            if (caeq.getCustomFilterFieldName2() != null
                    && !caeq.getCustomFilterFieldName2().trim().isEmpty()) {
                CustomAssetEntryFilter assetFilter = new CustomAssetEntryFilter();
                assetFilter.setField(caeq.getCustomFilterFieldName2());
                assetFilter
                        .setFormat(CustomAssetEntryFilter.getFieldTypeByName(caeq.getCustomFilterFieldType2()));
                assetFilter.setOperator(caeq.getCustomFilterComparator2());
                assetFilter.setValue(caeq.getCustomFilterValue2());
                assetFilter.setAssetEntry(assetEntry);

                if (!assetFilter.validate()) {
                    toRemove.add(assetEntry);
                }
            }
        }

        entriesList.removeAll(toRemove);

        // Will check the first element to know if we need to sort by custom field or by structure value
        if (entriesList != null && entriesList.size() > 0) {
            ///////////
            // Start sorting
            ///////////

            AssetEntry assetEntry = entriesList.get(0);
            long classPK = assetEntry.getClassPK();

            // get the 
            JournalArticle ja = JournalArticleLocalServiceUtil.getLatestArticle(classPK);

            // check for custom field
            ExpandoBridge eb = ja.getExpandoBridge();

            if (eb.hasAttribute(caeq.getCustomFieldOrder())) {
                // Sort by custom field
                CustomFieldAssetEntryComparator comparator = new CustomFieldAssetEntryComparator(
                        caeq.getCustomFieldOrder(),
                        CustomAssetEntryFilter.getFieldTypeByName(caeq.getCustomFieldType()));

                // sorting asc
                Collections.sort(entriesList, comparator);
            } else {
                // Sort by structure
                StructureFieldAssetEntryComparator comparator = new StructureFieldAssetEntryComparator(
                        caeq.getCustomFieldOrder(),
                        CustomAssetEntryFilter.getFieldTypeByName(caeq.getCustomFieldType()));

                //sorting asc
                Collections.sort(entriesList, comparator);

            }

            if ("DESC".equalsIgnoreCase(caeq.getCustomFieldOrderType())) {
                Collections.reverse(entriesList);
            }
            return entriesList.subList(start, (entriesList.size() < end) ? entriesList.size() : end);

        }
    } else {
        log.info("It isn't a custom query..");
        return entries;
    }

    return entriesList;
}