List of usage examples for com.google.common.collect Multimap values
Collection<V> values();
From source file:org.sonar.server.rule.RuleUpdater.java
private void deleteOrUpdateParameters(DbSession dbSession, RuleUpdate update, RuleDto customRule, List<String> paramKeys, Multimap<ActiveRuleDto, ActiveRuleParamDto> activeRuleParamsByActiveRule) { for (RuleParamDto ruleParamDto : dbClient.ruleDao().selectRuleParamsByRuleKey(dbSession, update.getRuleKey())) {/* ww w . ja v a 2 s . c om*/ String key = ruleParamDto.getName(); String value = Strings.emptyToNull(update.parameter(key)); // Update rule param ruleParamDto.setDefaultValue(value); dbClient.ruleDao().updateRuleParam(dbSession, customRule.getDefinition(), ruleParamDto); if (value != null) { // Update linked active rule params or create new one updateOrInsertActiveRuleParams(dbSession, ruleParamDto, activeRuleParamsByActiveRule); } else { // Delete linked active rule params deleteActiveRuleParams(dbSession, key, activeRuleParamsByActiveRule.values()); } paramKeys.add(key); } }
From source file:org.eclipse.xtext.scoping.impl.ImportScope.java
protected Iterable<IEObjectDescription> getAliasedElements(Iterable<IEObjectDescription> candidates) { Multimap<QualifiedName, IEObjectDescription> keyToDescription = LinkedHashMultimap.create(); Multimap<QualifiedName, ImportNormalizer> keyToNormalizer = HashMultimap.create(); for (IEObjectDescription imported : candidates) { QualifiedName fullyQualifiedName = imported.getName(); for (ImportNormalizer normalizer : normalizers) { QualifiedName alias = normalizer.deresolve(fullyQualifiedName); if (alias != null) { QualifiedName key = alias; if (isIgnoreCase()) { key = key.toLowerCase(); }/*from www . j av a 2s .c om*/ keyToDescription.put(key, new AliasedEObjectDescription(alias, imported)); keyToNormalizer.put(key, normalizer); } } } for (QualifiedName name : keyToNormalizer.keySet()) { if (keyToNormalizer.get(name).size() > 1) keyToDescription.removeAll(name); } return keyToDescription.values(); }
From source file:org.axdt.as3.scoping.As3ImportScope.java
@Override protected Iterable<IEObjectDescription> getAliasedElements(Iterable<IEObjectDescription> candidates) { Multimap<QualifiedName, IEObjectDescription> keyToDescription = LinkedHashMultimap.create(); Multimap<QualifiedName, ImportNormalizer> keyToNormalizer = HashMultimap.create(); for (IEObjectDescription imported : candidates) { QualifiedName fullyQualifiedName = imported.getName(); for (ImportNormalizer normalizer : normalizers) { QualifiedName alias = normalizer.deresolve(fullyQualifiedName); // XXX: dont use relative namespaces if (alias != null && alias.getSegmentCount() == 1) { QualifiedName key = alias; if (isIgnoreCase()) { key = key.toLowerCase(); }/* www .j a v a 2 s . c o m*/ keyToDescription.put(key, new AliasedEObjectDescription(alias, imported)); keyToNormalizer.put(key, normalizer); } } } for (QualifiedName name : keyToNormalizer.keySet()) { if (keyToNormalizer.get(name).size() > 1) keyToDescription.removeAll(name); } return keyToDescription.values(); }
From source file:com.enonic.cms.core.security.userstore.connector.synchronize.SynchronizeUserStoreJobImpl.java
private List<UserKey> resolveUsersToDelete(final Multimap<String, UserEntity> usersMapByName, final Collection<RemoteUser> remoteUsers) { // Remove all remote users from usersMapByName , so that we are only left with users not existing remote. final List<UserEntity> usersToRemoveFromMap = new ArrayList<UserEntity>(); for (final RemoteUser remoteUser : remoteUsers) { final Collection<UserEntity> candidates = usersMapByName.get(remoteUser.getId()); for (final UserEntity candidate : candidates) { if (candidate != null && remoteUser.getSync().equals(candidate.getSync())) { usersToRemoveFromMap.add(candidate); }/*ww w.j a va 2s. c o m*/ } } for (final UserEntity userToRemoveFromMap : usersToRemoveFromMap) { usersMapByName.remove(userToRemoveFromMap.getName(), userToRemoveFromMap); } final List<UserKey> usersToDelete = new ArrayList<UserKey>(); for (final UserEntity userToDelete : usersMapByName.values()) { usersToDelete.add(userToDelete.getKey()); } return usersToDelete; }
From source file:org.gradle.plugins.ide.internal.IdeDependenciesExtractor.java
public Collection<IdeExtendedRepoFileDependency> extractRepoFileDependencies( DependencyHandler dependencyHandler, Collection<Configuration> plusConfigurations, Collection<Configuration> minusConfigurations, boolean downloadSources, boolean downloadJavadoc) { // can have multiple IDE dependencies with same component identifier (see GRADLE-1622) Multimap<ComponentIdentifier, IdeExtendedRepoFileDependency> resolvedDependenciesComponentMap = LinkedHashMultimap .create();//w ww .ja v a 2s. c o m for (IdeExtendedRepoFileDependency dep : resolvedExternalDependencies(plusConfigurations, minusConfigurations)) { resolvedDependenciesComponentMap.put(toComponentIdentifier(dep.getId()), dep); } List<Class<? extends Artifact>> artifactTypes = new ArrayList<Class<? extends Artifact>>(2); if (downloadSources) { artifactTypes.add(SourcesArtifact.class); } if (downloadJavadoc) { artifactTypes.add(JavadocArtifact.class); } downloadAuxiliaryArtifacts(dependencyHandler, resolvedDependenciesComponentMap, artifactTypes); Collection<UnresolvedIdeRepoFileDependency> unresolvedDependencies = unresolvedExternalDependencies( plusConfigurations, minusConfigurations); Collection<IdeExtendedRepoFileDependency> resolvedDependencies = resolvedDependenciesComponentMap.values(); Collection<IdeExtendedRepoFileDependency> resolvedAndUnresolved = new ArrayList<IdeExtendedRepoFileDependency>( unresolvedDependencies.size() + resolvedDependencies.size()); resolvedAndUnresolved.addAll(resolvedDependencies); resolvedAndUnresolved.addAll(unresolvedDependencies); return resolvedAndUnresolved; }
From source file:org.eclipse.papyrus.uml.diagram.activity.activitygroup.GroupRequestAdvisor.java
public EObject getPossibleModelParent(IGroupRequest request) { Multimap<EReference, IGroupNotifier> parentsMap = fillReqestWithReferendedElement(request, true, true); List<IGroupNotifier> parents = Lists.newArrayList(parentsMap.values()); Collections.sort(parents);//from ww w . j a v a 2 s.c om if (!parents.isEmpty()) { return parents.get(0).getEObject(); } return request.getHostRequest().resolveSemanticElement(); }
From source file:org.lightjason.agentspeak.grammar.CASTVisitorPlanBundle.java
@Override public final Object visitLogicrules(final PlanBundleParser.LogicrulesContext p_context) { // create placeholder objects first and run parsing again to build full-qualified rule objects p_context.logicrule().stream().map(i -> (IRule) this.visitLogicrulePlaceHolder(i)) .forEach(i -> m_rules.put(i.getIdentifier().fqnfunctor(), i)); final Multimap<IPath, IRule> l_rules = LinkedHashMultimap.create(); p_context.logicrule().stream().flatMap(i -> ((List<IRule>) this.visitLogicrule(i)).stream()) .forEach(i -> l_rules.put(i.getIdentifier().fqnfunctor(), i)); // clear rule list and replace placeholder objects m_rules.clear();/*from www .jav a2s .co m*/ l_rules.values().stream().map(i -> i.replaceplaceholder(l_rules)) .forEach(i -> m_rules.put(i.getIdentifier().fqnfunctor(), i)); LOGGER.info(MessageFormat.format("parsed rules: {0}", m_rules.values())); return null; }
From source file:org.lightjason.agentspeak.grammar.CASTVisitorAgent.java
@Override public final Object visitLogicrules(final AgentParser.LogicrulesContext p_context) { // create placeholder objects first and run parsing again to build full-qualified rule objects p_context.logicrule().stream().map(i -> (IRule) this.visitLogicrulePlaceHolder(i)) .forEach(i -> m_rules.put(i.getIdentifier().fqnfunctor(), i)); final Multimap<IPath, IRule> l_rules = LinkedHashMultimap.create(); p_context.logicrule().stream().flatMap(i -> ((List<IRule>) this.visitLogicrule(i)).stream()) .forEach(i -> l_rules.put(i.getIdentifier().fqnfunctor(), i)); // clear rule list and replace placeholder objects m_rules.clear();//ww w .j a v a 2 s. co m l_rules.values().stream().map(i -> i.replaceplaceholder(l_rules)) .forEach(i -> m_rules.put(i.getIdentifier().fqnfunctor(), i)); LOGGER.info(MessageFormat.format("parsed rules: {0}", m_rules.values())); return null; }
From source file:com.enonic.cms.core.security.userstore.connector.synchronize.SynchronizeUserStoreJobImpl.java
private List<GroupKey> resolveGroupsToDelete(final Multimap<String, GroupEntity> groupsMapByName, final Collection<RemoteGroup> remoteGroups) { // Remove all remote groups from groupsMapByName, so that we are only left with groups not existing remote. final List<GroupEntity> groupsToRemoveFromMap = new ArrayList<GroupEntity>(); for (final RemoteGroup remoteGroup : remoteGroups) { final Collection<GroupEntity> candidates = groupsMapByName.get(remoteGroup.getId()); for (final GroupEntity candidate : candidates) { if (candidate != null && remoteGroup.getSync().equals(candidate.getSyncValue())) { groupsToRemoveFromMap.add(candidate); }// www. j av a 2 s. c o m } } for (final GroupEntity groupToRemoveFromMap : groupsToRemoveFromMap) { groupsMapByName.remove(groupToRemoveFromMap.getName(), groupToRemoveFromMap); } final List<GroupKey> groupsToDelete = new ArrayList<GroupKey>(); for (final GroupEntity groupToDelete : groupsMapByName.values()) { groupsToDelete.add(groupToDelete.getGroupKey()); } return groupsToDelete; }
From source file:gg.pistol.sweeper.core.Analyzer.java
private SweeperCountImpl computeCount(TargetImpl root, Multimap<String, TargetImpl> hashDups) throws SweeperAbortException { log.trace("Counting {} hash duplicates.", hashDups.size()); int totalTargets = root.getTotalTargets(); int totalTargetFiles = root.getTotalTargetFiles(); long totalSize = root.getSize(); int duplicateTargets = 0; int duplicateTargetFiles = 0; long duplicateSize = 0; // Filter the upper targets in order to have correct aggregate counting of duplicates. The hashDups can contain // targets that are children of other targets. Collection<TargetImpl> hashDupUpperTargets = filterUpperTargets(hashDups.values()); // Group the duplicate targets by hash. Multimap<String, TargetImpl> dups = filterDuplicateHash(hashDupUpperTargets); for (String key : dups.keySet()) { Iterator<TargetImpl> iterator = dups.get(key).iterator(); // Jump over the first value from a duplicate group because deleting all the others will make this one // a non-duplicate. iterator.next();//from w ww.ja v a 2 s . c o m while (iterator.hasNext()) { TargetImpl target = iterator.next(); duplicateTargets += target.getTotalTargets(); duplicateTargetFiles += target.getTotalTargetFiles(); duplicateSize += target.getSize(); checkAbortFlag(); } } SweeperCountImpl count = new SweeperCountImpl(totalTargets, totalTargetFiles, totalSize, duplicateTargets, duplicateTargetFiles, duplicateSize); return count; }