@Override public <K> Map<K, Set<DsoNode>> getNodesWithKeys(final Map<K, ?> map, final Collection<? extends K> keys) { Assert.assertNotNull(clusterMetaDataManager); if (null == keys || 0 == keys.size() || null == map) { return Collections.emptyMap(); } Map<K, Set<DsoNode>> result = new HashMap<K, Set<DsoNode>>(); if (map instanceof Manageable) { Manageable manageable = (Manageable) map; if (manageable.__tc_isManaged()) { Map<K, Set<NodeID>> rawResult = null; if (manageable instanceof TCMap) { rawResult = clusterMetaDataManager.getNodesWithKeys((TCMap) map, keys); } else if (manageable instanceof TCServerMap) { rawResult = clusterMetaDataManager.getNodesWithKeys((TCServerMap) map, keys); } if (rawResult != null) { for (Map.Entry<K, Set<NodeID>> entry : rawResult.entrySet()) { Set<DsoNode> dsoNodes = new HashSet<DsoNode>(rawResult.entrySet().size(), 1.0f); for (NodeID nodeID : entry.getValue()) { DsoNodeInternal dsoNode = topology.getAndRegisterDsoNode((ClientID) nodeID); dsoNodes.add(dsoNode); } result.put(entry.getKey(), dsoNodes); } } } } return result; }
@Override public <K> Map<K, Set<DsoNode>> getNodesWithKeys(final Map<K, ?> map, final Collection<? extends K> keys) { Assert.assertNotNull(clusterMetaDataManager); if (null == keys || 0 == keys.size() || null == map) { return Collections.emptyMap(); } Map<K, Set<DsoNode>> result = new HashMap<K, Set<DsoNode>>(); if (map instanceof Manageable) { Manageable manageable = (Manageable) map; if (manageable.__tc_isManaged()) { Map<K, Set<NodeID>> rawResult = null; if (manageable instanceof TCMap) { rawResult = clusterMetaDataManager.getNodesWithKeys((TCMap) map, keys); } else if (manageable instanceof TCServerMap) { rawResult = clusterMetaDataManager.getNodesWithKeys((TCServerMap) map, keys); } if (rawResult != null) { for (Map.Entry<K, Set<NodeID>> entry : rawResult.entrySet()) { Set<DsoNode> dsoNodes = new HashSet<DsoNode>(rawResult.entrySet().size(), 1.0f); for (NodeID nodeID : entry.getValue()) { DsoNodeInternal dsoNode = topology.getAndRegisterDsoNode((ClientID) nodeID); dsoNodes.add(dsoNode); } result.put(entry.getKey(), dsoNodes); } } } } return result; }
@Override public <K> Map<K, Set<DsoNode>> getNodesWithKeys(final Map<K, ?> map, final Collection<? extends K> keys) throws UnclusteredObjectException { Assert.assertNotNull(clusterMetaDataManager); if (null == keys || 0 == keys.size() || null == map) { return Collections.emptyMap(); } Map<K, Set<DsoNode>> result = new HashMap<K, Set<DsoNode>>(); if (map instanceof Manageable) { Manageable manageable = (Manageable) map; if (manageable.__tc_isManaged()) { Map<K, Set<NodeID>> rawResult = null; if (manageable instanceof TCMap) { rawResult = clusterMetaDataManager.getNodesWithKeys((TCMap) map, keys); } else if (manageable instanceof TCServerMap) { rawResult = clusterMetaDataManager.getNodesWithKeys((TCServerMap) map, keys); } if (rawResult != null) { for (Map.Entry<K, Set<NodeID>> entry : rawResult.entrySet()) { Set<DsoNode> dsoNodes = new HashSet<DsoNode>(rawResult.entrySet().size(), 1.0f); for (NodeID nodeID : entry.getValue()) { DsoNodeInternal dsoNode = topology.getAndRegisterDsoNode((ClientID) nodeID); dsoNodes.add(dsoNode); } result.put(entry.getKey(), dsoNodes); } } } } return result; }