Example usage for com.google.common.collect Multimap values

List of usage examples for com.google.common.collect Multimap values

Introduction

In this page you can find the example usage for com.google.common.collect Multimap values.

Prototype

Collection<V> values();

Source Link

Document

Returns a view collection containing the value from each key-value pair contained in this multimap, without collapsing duplicates (so values().size() == size() ).

Usage

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;
}