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

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

Introduction

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

Prototype

boolean putAll(@Nullable K key, Iterable<? extends V> values);

Source Link

Document

Stores a key-value pair in this multimap for each of values , all using the same key, key .

Usage

From source file:elaborate.editor.publish.PublishTask.java

static Multimap<String, String> getMultivaluedFacetValues(String[] multivaluedFacetNames,
        ProjectEntry projectEntry) {//from w ww .j av  a2s . c om
    Multimap<String, String> multivaluedFacetValues = ArrayListMultimap.create();
    for (String multivaluedFacet : multivaluedFacetNames) {
        String multivalue = projectEntry.getMetadataValue(multivaluedFacet);
        if (StringUtils.isNotEmpty(multivalue)) {
            multivaluedFacetValues.putAll(multivaluedFacet, StringUtil.getValues(multivalue));
        }
    }
    return multivaluedFacetValues;
}

From source file:com.b2international.snowowl.snomed.datastore.index.change.DescriptionAcceptabilityChangeProcessor.java

public Map<String, Multimap<Acceptability, RefSetMemberChange>> process(ICDOCommitChangeSet commitChangeSet,
        RevisionSearcher searcher) throws IOException {
    final Multimap<String, RefSetMemberChange> preferredMemberChanges = HashMultimap.create();
    final Multimap<String, RefSetMemberChange> acceptableMemberChanges = HashMultimap.create();

    // add active new and active dirty members
    final Iterable<SnomedLanguageRefSetMember> newAndDirtyMembers = Iterables.concat(
            commitChangeSet.getNewComponents(SnomedLanguageRefSetMember.class),
            commitChangeSet.getDirtyComponents(SnomedLanguageRefSetMember.class));

    for (SnomedLanguageRefSetMember member : newAndDirtyMembers) {
        if (member.isActive()) {
            final String uuid = member.getUuid();
            final String refSetId = member.getRefSetIdentifierId();
            final RefSetMemberChange change = new RefSetMemberChange(uuid, refSetId, MemberChangeKind.ADDED,
                    member.isActive());//from w  w  w .  j  a  v  a 2 s. c  om
            registerChange(preferredMemberChanges, acceptableMemberChanges, member.getAcceptabilityId(),
                    member.getReferencedComponentId(), change);
        }
    }

    // remove dirty inactive (and/or changed in acceptability) members
    final Iterable<SnomedLanguageRefSetMember> dirtyMembers = commitChangeSet
            .getDirtyComponents(SnomedLanguageRefSetMember.class);

    final Iterable<Long> dirtyMemberStorageKeys = CDOIDUtils.createCdoIdToLong(CDOIDUtils.getIds(dirtyMembers));
    final Iterable<Long> detachedMemberStorageKeys = CDOIDUtils.createCdoIdToLong(
            commitChangeSet.getDetachedComponents(SnomedRefSetPackage.Literals.SNOMED_LANGUAGE_REF_SET_MEMBER));
    final Map<Long, SnomedRefSetMemberIndexEntry> currentRevisionsByStorageKey = Maps.uniqueIndex(
            searcher.get(SnomedRefSetMemberIndexEntry.class,
                    Iterables.concat(dirtyMemberStorageKeys, detachedMemberStorageKeys)),
            new Function<SnomedRefSetMemberIndexEntry, Long>() {
                @Override
                public Long apply(SnomedRefSetMemberIndexEntry input) {
                    return input.getStorageKey();
                }
            });

    for (SnomedLanguageRefSetMember member : dirtyMembers) {
        final String uuid = member.getUuid();
        final String refSetId = member.getRefSetIdentifierId();
        final RefSetMemberChange change = new RefSetMemberChange(uuid, refSetId, MemberChangeKind.REMOVED,
                member.isActive());
        final SnomedRefSetMemberIndexEntry before = currentRevisionsByStorageKey
                .get(CDOIDUtil.getLong(member.cdoID()));
        if (before != null) {
            final String beforeAcceptabilityId = before.getAcceptabilityId();
            final boolean beforeActive = before.isActive();
            final boolean acceptabilityChanged = !member.getAcceptabilityId().equals(beforeAcceptabilityId);

            if (beforeActive && acceptabilityChanged) {
                registerChange(preferredMemberChanges, acceptableMemberChanges, beforeAcceptabilityId,
                        member.getReferencedComponentId(), change);
            }
        }

        if (!member.isActive()) {
            registerChange(preferredMemberChanges, acceptableMemberChanges, member.getAcceptabilityId(),
                    member.getReferencedComponentId(), change);
        }
    }

    // remove earlier active detached members

    for (CDOID cdoid : commitChangeSet
            .getDetachedComponents(SnomedRefSetPackage.Literals.SNOMED_LANGUAGE_REF_SET_MEMBER)) {
        final SnomedRefSetMemberIndexEntry before = currentRevisionsByStorageKey.get(CDOIDUtil.getLong(cdoid));
        if (before.isActive()) {
            final String uuid = before.getId();
            final String refSetId = before.getReferenceSetId();
            final String referencedComponentId = before.getReferencedComponentId();
            final String beforeAcceptabilityId = before.getAcceptabilityId();
            final RefSetMemberChange change = new RefSetMemberChange(uuid, refSetId, MemberChangeKind.REMOVED,
                    before.isActive());

            registerChange(preferredMemberChanges, acceptableMemberChanges, beforeAcceptabilityId,
                    referencedComponentId, change);
        }
    }

    final Map<String, Multimap<Acceptability, RefSetMemberChange>> changes = newHashMap();

    for (String descriptionId : Iterables.concat(preferredMemberChanges.keySet(),
            acceptableMemberChanges.keySet())) {
        if (!changes.containsKey(descriptionId)) {
            changes.put(descriptionId, HashMultimap.<Acceptability, RefSetMemberChange>create());
        }
        final Multimap<Acceptability, RefSetMemberChange> memberChanges = changes.get(descriptionId);

        memberChanges.putAll(Acceptability.PREFERRED, preferredMemberChanges.get(descriptionId));
        memberChanges.putAll(Acceptability.ACCEPTABLE, acceptableMemberChanges.get(descriptionId));
    }
    return changes;
}

From source file:com.isotrol.impe3.web20.client.counter.CounterComponent.java

/**
 * Generates img likes uri for action./*w  w  w . j  av a  2  s .  com*/
 * @param context
 * @return Returns action uri.
 */
String getURI(final RenderContext context) {
    if (idr == null) {
        return null;
    }

    if (idc == null) {
        idc = new UUID(0L, 0L).toString();
    }

    if (cgr == null) {
        cgr = Lists.newArrayList();
    }

    if (ct == null) {
        if (config != null && config.counterType() != null) {
            ct = config.counterType();
        } else {
            ct = moduleConfig.counterType();
        }
    }

    Multimap<String, Object> parameters = ArrayListMultimap.create();
    parameters.put("idr", idr);
    parameters.put("idc", idc);
    parameters.putAll("cgr", cgr);
    parameters.put("ct", ct);
    if (sm != null) {
        parameters.put("sm", sm);
    }
    if (so != null) {
        parameters.put("so", so);
    }

    return context.getActionURI("counter", parameters).toASCIIString();
}

From source file:it.units.malelab.ege.distributed.worker.CommunicationRunnable.java

@Override
public void run() {
    try (Socket socket = new Socket(worker.getMasterAddress(), worker.getMasterPort());) {
        //handshake
        ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());
        oos.flush();//from w w w.jav  a  2  s  . c  o m
        ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
        String challenge = DistributedUtils.decrypt((byte[]) ois.readObject(), worker.getKeyPhrase());
        oos.writeObject(DistributedUtils.encrypt(DistributedUtils.reverse(challenge), worker.getKeyPhrase()));
        L.finer(String.format("Handshake response sent with \"%s\".", challenge));
        //average stats
        Map<String, Number> avgStats = new HashMap<>();
        for (String statName : worker.getStats().keySet()) {
            double s = 0;
            for (Number v : worker.getStats().get(statName)) {
                s = s + v.doubleValue();
            }
            if (!worker.getStats().get(statName).isEmpty()) {
                avgStats.put(statName, s / worker.getStats().get(statName).size());
            }
        }
        //prepare jobs data
        Multimap<String, Map<String, Object>> jobsData = ArrayListMultimap.create();
        synchronized (worker.getCurrentJobsData()) {
            for (Job job : worker.getCurrentJobsData().keySet()) {
                jobsData.putAll(job.getId(), worker.getCurrentJobsData().get(job));
            }
            worker.getCurrentJobsData().clear();
        }
        //prepare jobs result
        Map<String, List<Node>> jobsResults = new HashMap<>();
        synchronized (worker.getCompletedJobsResults()) {
            for (Map.Entry<Job, List<Node>> jobResultsEntry : worker.getCompletedJobsResults().entrySet()) {
                jobsResults.put(jobResultsEntry.getKey().getId(), jobResultsEntry.getValue());
            }
            worker.getCompletedJobsResults().clear();
        }
        //send worker message
        WorkerMessage workerMessage = new WorkerMessage(worker.getName(), worker.getInterval(), avgStats,
                worker.getFreeThreads(), worker.getMaxThreads(), jobsData, jobsResults);
        oos.writeObject(workerMessage);
        //read and consume master message
        MasterMessage masterMessage = (MasterMessage) ois.readObject();
        for (Job job : masterMessage.getNewJobs()) {
            worker.submitJob(job);
        }
        //close
        socket.close();
    } catch (IOException ex) {
        L.log(Level.SEVERE, String.format("Cannot connect to master: %s", ex.getMessage()), ex);
    } catch (ClassNotFoundException ex) {
        L.log(Level.SEVERE, String.format("Cannot decode response: %s", ex.getMessage()), ex);
    } catch (Throwable ex) {
        L.log(Level.SEVERE, String.format("Some error: %s", ex.getMessage()), ex);
    }
}

From source file:com.synflow.cx.internal.instantiation.InstantiatorImpl.java

/**
 * Creates a new connection maker and connects the given network. Visits inner tasks first, and
 * then connect statements./*  w  w w .ja  v a 2 s.  c  om*/
 * 
 * @param network
 * @param dpn
 */
private void connect(Network network, DPN dpn) {
    Multimap<EObject, Port> portMap = LinkedHashMultimap.create();
    portMap.putAll(dpn, dpn.getOutputs());
    for (Instance instance : dpn.getInstances()) {
        Entity entity = instance.getEntity();
        if (entity != null) {
            portMap.putAll(instance, entity.getInputs());
        }
    }

    implicitConnector.connect(portMap, network, dpn);
    explicitConnector.connect(portMap, network, dpn);
}

From source file:org.sonar.java.symexec.ExecutionState.java

void invalidateRelationsOnValue(SymbolicValue value) {
    Multimap<SymbolicValue, SymbolicValue> pairs = HashMultimap.create();
    for (ExecutionState current = this; current != null; current = current.parentState) {
        pairs.putAll(value, current.findRelatedValues(value));
    }//from w w  w . j a v  a2s  .  c o m
    for (Map.Entry<SymbolicValue, SymbolicValue> entry : pairs.entries()) {
        setRelation(entry.getKey(), SymbolicRelation.UNKNOWN, entry.getValue());
    }
}

From source file:com.facebook.buck.java.JavaSymbolFinder.java

/**
 * Figure out the build targets that provide a set of Java symbols.
 * @param symbols The set of symbols (e.g. "com.example.foo.Bar") to find defining targets for.
 *                This is taken as a collection, rather than as an individual string, because
 *                instantiating a ProjectBuildFileParser is expensive (it spawns a Python
 *                subprocess), and we don't want to encourage the caller to do it more than once.
 * @return A multimap of symbols to the targets that define them, of the form:
 *         {"com.example.a.A": set("//com/example/a:a", "//com/another/a:a")}
 *//*from  www .ja v a  2  s  .  c o  m*/
public ImmutableSetMultimap<String, BuildTarget> findTargetsForSymbols(Set<String> symbols)
        throws InterruptedException {
    // TODO(jacko): Handle files that aren't included in any rule.

    // First find all the source roots in the current project.
    Collection<Path> srcRoots;
    try {
        srcRoots = srcRootsFinder.getAllSrcRootPaths(config.getSrcRoots());
    } catch (IOException e) {
        buckEventBus.post(ThrowableConsoleEvent.create(e, "Error while searching for source roots."));
        return ImmutableSetMultimap.of();
    }

    // Now collect all the code files that define our symbols.
    Multimap<String, Path> symbolsToSourceFiles = HashMultimap.create();
    for (String symbol : symbols) {
        symbolsToSourceFiles.putAll(symbol, getDefiningPaths(symbol, srcRoots));
    }

    // Now find all the targets that define all those code files. We do this in one pass because we
    // don't want to instantiate a new parser subprocess for every symbol.
    Set<Path> allSourceFilePaths = ImmutableSet.copyOf(symbolsToSourceFiles.values());
    Multimap<Path, BuildTarget> sourceFilesToTargets = getTargetsForSourceFiles(allSourceFilePaths);

    // Now build the map from from symbols to build targets.
    ImmutableSetMultimap.Builder<String, BuildTarget> symbolsToTargets = ImmutableSetMultimap.builder();
    for (String symbol : symbolsToSourceFiles.keySet()) {
        for (Path sourceFile : symbolsToSourceFiles.get(symbol)) {
            symbolsToTargets.putAll(symbol, sourceFilesToTargets.get(sourceFile));
        }
    }

    return symbolsToTargets.build();
}

From source file:com.facebook.buck.jvm.java.JavaSymbolFinder.java

/**
 * Figure out the build targets that provide a set of Java symbols.
 * @param symbols The set of symbols (e.g. "com.example.foo.Bar") to find defining targets for.
 *                This is taken as a collection, rather than as an individual string, because
 *                instantiating a ProjectBuildFileParser is expensive (it spawns a Python
 *                subprocess), and we don't want to encourage the caller to do it more than once.
 * @return A multimap of symbols to the targets that define them, of the form:
 *         {"com.example.a.A": set("//com/example/a:a", "//com/another/a:a")}
 *//*www  .j  ava 2  s.co  m*/
public ImmutableSetMultimap<String, BuildTarget> findTargetsForSymbols(Set<String> symbols)
        throws InterruptedException, IOException {
    // TODO(oconnor663): Handle files that aren't included in any rule.

    // First find all the source roots in the current project.
    Collection<Path> srcRoots;
    try {
        srcRoots = srcRootsFinder.getAllSrcRootPaths(config.getView(JavaBuckConfig.class).getSrcRoots());
    } catch (IOException e) {
        buckEventBus.post(ThrowableConsoleEvent.create(e, "Error while searching for source roots."));
        return ImmutableSetMultimap.of();
    }

    // Now collect all the code files that define our symbols.
    Multimap<String, Path> symbolsToSourceFiles = HashMultimap.create();
    for (String symbol : symbols) {
        symbolsToSourceFiles.putAll(symbol, getDefiningPaths(symbol, srcRoots));
    }

    // Now find all the targets that define all those code files. We do this in one pass because we
    // don't want to instantiate a new parser subprocess for every symbol.
    Set<Path> allSourceFilePaths = ImmutableSet.copyOf(symbolsToSourceFiles.values());
    Multimap<Path, BuildTarget> sourceFilesToTargets = getTargetsForSourceFiles(allSourceFilePaths);

    // Now build the map from from symbols to build targets.
    ImmutableSetMultimap.Builder<String, BuildTarget> symbolsToTargets = ImmutableSetMultimap.builder();
    for (String symbol : symbolsToSourceFiles.keySet()) {
        for (Path sourceFile : symbolsToSourceFiles.get(symbol)) {
            symbolsToTargets.putAll(symbol, sourceFilesToTargets.get(sourceFile));
        }
    }

    return symbolsToTargets.build();
}

From source file:org.gerryai.htn.simple.constraint.validation.impl.SimpleConstraintValidator.java

@Override
public final void replace(Task oldTask, TaskNetwork newTaskNetwork) {
    //TODO: Check implementation

    // Build a new set of tasks
    int numTasks = tasks.size() + newTaskNetwork.getTasks().size() - 1;
    Set<Task> newTasks = new HashSet<Task>(numTasks);
    for (Task task : tasks) {
        if (!task.equals(oldTask)) {
            newTasks.add(task);//from   w w w  .j a  v  a2  s. c  o m
        } else {
            newTasks.addAll(newTaskNetwork.getTasks());
        }
    }
    tasks = newTasks;

    // Update existing constraints
    Multimap<Task, Task> taskMap = HashMultimap.create();
    taskMap.putAll(oldTask, newTaskNetwork.getTasks());
    beforeConstraints = mergeAndReplace(beforeConstraints, newTaskNetwork.getBeforeConstraints(), taskMap);
    afterConstraints = mergeAndReplace(afterConstraints, newTaskNetwork.getAfterConstraints(), taskMap);
    betweenConstraints = mergeAndReplace(betweenConstraints, newTaskNetwork.getBetweenConstraints(), taskMap);
    precedenceConstraints = mergeAndReplace(precedenceConstraints, newTaskNetwork.getPrecedenceConstraints(),
            taskMap);
}

From source file:ezbake.ezpurge.ServicePurgeClient.java

/**
 * retrieves a map of services to applications
 * @return Multimap containing the Applications as keys and a list of services as the value
 * @throws Exception for any zookeeper errors
 *//* w w w  .  j a  v a2 s  . c o  m*/
public Multimap<String, String> getPurgeServices() throws Exception {
    Multimap<String, String> purgeServices = ArrayListMultimap.create();
    List<String> applications = zkClient.getChildren().forPath("");
    for (String app : applications) {
        String path = ServiceDiscoveryClient.makeZKPath(app);
        List<String> services = zkClient.getChildren().forPath(path);
        purgeServices.putAll(app, services);
    }
    return purgeServices;
}