Example usage for org.apache.commons.collections.map MultiKeyMap keySet

List of usage examples for org.apache.commons.collections.map MultiKeyMap keySet

Introduction

In this page you can find the example usage for org.apache.commons.collections.map MultiKeyMap keySet.

Prototype

public Set keySet() 

Source Link

Usage

From source file:com.qq.tars.service.monitor.TARSPropertyMonitorService.java

private Set<MultiKey> mergeKey(TARSPropertyMonitorCondition condition, MultiKeyMap thedata,
        MultiKeyMap predata) {//from www.  ja  va  2s. co m
    Set<MultiKey> keys = new TreeSet<>((left, right) -> {
        for (int i = 0; i < left.size(); i++) {
            Object leftKey = left.getKey(i);
            Object rightKey = right.getKey(i);
            if (leftKey.equals(rightKey)) {
                continue;
            }
            return ((String) leftKey).compareTo((String) rightKey);
        }
        return 0;
    });
    keys.addAll(thedata.keySet());
    for (Object obj : predata.keySet()) {
        Object[] keyparts = ((MultiKey) obj).getKeys();
        if (keyparts.length > 1) {
            keyparts[0] = condition.getThedate();
        }
        keys.add(new MultiKey(keyparts));
    }
    return keys;
}

From source file:com.qq.tars.service.monitor.TARSStatMonitorService.java

private Set<MultiKey> mergeKey(TARSStatMonitorCondition condition, MultiKeyMap thedata, MultiKeyMap predata) {
    Set<MultiKey> keys = new TreeSet<>((left, right) -> {
        for (int i = 0; i < left.size(); i++) {
            Object leftKey = left.getKey(i);
            Object rightKey = right.getKey(i);
            if (leftKey.equals(rightKey)) {
                continue;
            }//  w  w w.j av  a2  s .  co  m
            return ((String) leftKey).compareTo((String) rightKey);
        }
        return 0;
    });
    keys.addAll(thedata.keySet());
    for (Object obj : predata.keySet()) {
        Object[] keyparts = ((MultiKey) obj).getKeys();
        if (keyparts.length > 1) {
            keyparts[0] = condition.getThedate();
        }
        keys.add(new MultiKey(keyparts));
    }
    return keys;
}

From source file:org.talend.core.repository.utils.RepositoryNodeDeleteManager.java

@SuppressWarnings("unchecked")
public List<ItemReferenceBean> getUnDeleteItems(List<? extends IRepositoryNode> deleteNodes,
        DeleteActionCache deleteActionCache, boolean updateDelList) {
    List<ItemReferenceBean> beans = new ArrayList<ItemReferenceBean>();
    Set<ItemReferenceBean> refBeans = new HashSet<ItemReferenceBean>();
    List<DeleteCheck> deleteChecks = new ArrayList<DeleteCheck>();

    if (deleteNodes == null || deleteNodes.size() == 0) {
        return beans;
    }/*  w  ww  . j  av a2s  .c  o  m*/

    try {
        for (IConfigurationElement element : configurationElements) {
            ICheckDeleteItemReference checkDeleteItemReference = (ICheckDeleteItemReference) element
                    .createExecutableExtension(ATT_CLASS);
            String priorityStr = element.getAttribute(ATT_PRIORITY);
            DeleteCheck.Priority priority = (priorityStr != null && priorityStr.length() > 0)
                    ? DeleteCheck.Priority.valueOf(priorityStr.toUpperCase())
                    : DeleteCheck.Priority.NORMAL;
            DeleteCheck deleteCheck = new DeleteCheck(checkDeleteItemReference, priority);
            if (!deleteChecks.contains(deleteCheck)) {
                deleteChecks.add(deleteCheck);
            }
        }
        sortDeleteChecks(deleteChecks);
        for (DeleteCheck deleteCheck : deleteChecks) {
            refBeans.addAll(
                    deleteCheck.checkDeleteItemReference.getItemReferenceBeans(deleteNodes, deleteActionCache));
        }

        MultiKeyMap item2beansMap = new MultiKeyMap();
        for (ItemReferenceBean refBean : refBeans) {
            List<ItemReferenceBean> beansList = (List<ItemReferenceBean>) item2beansMap
                    .get(refBean.getItemName(), refBean.getItemVersion(), refBean.getItemType());
            if (beansList == null) {
                beansList = new ArrayList<ItemReferenceBean>();
                item2beansMap.put(refBean.getItemName(), refBean.getItemVersion(), refBean.getItemType(),
                        beansList);
            }
            if (!beansList.contains(refBean)) {
                beansList.add(refBean);
            }
        }

        Iterator it = item2beansMap.keySet().iterator();
        while (it.hasNext()) {
            Object obj = it.next();
            if (obj instanceof MultiKey) {
                Object[] keys = ((MultiKey) obj).getKeys();
                if (keys.length >= 3) {
                    String itemName = String.valueOf(keys[0]);
                    String itemVersion = String.valueOf(keys[1]);
                    ERepositoryObjectType itemType = (ERepositoryObjectType) keys[2];
                    ItemReferenceBean parentBean = new ItemReferenceBean();
                    parentBean.setItemName(itemName);
                    parentBean.setItemVersion(itemVersion);
                    parentBean.setItemType(itemType);
                    parentBean.setHost(true);
                    parentBean.addChildren((List<ItemReferenceBean>) item2beansMap.get(obj));
                    beans.add(parentBean);
                }
            }
        }
        sortReferenceBeans(beans);

        if (updateDelList) {
            List<String> unDeleteItemNames = new ArrayList<String>();
            for (ItemReferenceBean bean : beans) {
                unDeleteItemNames.add(bean.getItemName());
            }
            Iterator<? extends IRepositoryNode> nodeIter = deleteNodes.iterator();
            while (nodeIter.hasNext()) {
                IRepositoryNode node = nodeIter.next();
                Object label = node.getProperties(EProperties.LABEL);
                if (unDeleteItemNames.contains(label)) {
                    nodeIter.remove();
                }
            }
        }
    } catch (Exception e) {
        ExceptionHandler.process(e);
    }

    return beans;
}