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

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

Introduction

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

Prototype

Set<K> keySet();

Source Link

Document

Returns a view collection of all distinct keys contained in this multimap.

Usage

From source file:org.eclipse.xtext.serializer.sequencer.AssignmentFinder.java

@Override
public Set<AbstractElement> findAssignmentsByValue(EObject semanticObj,
        Multimap<AbstractElement, ISerializationContext> assignments, Object value, INode node) {
    List<AbstractElement> assignedElements = Lists.newArrayList(assignments.keySet());
    EStructuralFeature feature = FeatureFinderUtil.getFeature(assignedElements.iterator().next(),
            semanticObj.eClass());//ww  w .j  a v  a  2s  .  c om
    if (feature instanceof EAttribute) {
        Class<?> clazz = feature.getEType().getInstanceClass();
        if (clazz == Boolean.class || clazz == boolean.class)
            return findValidBooleanAssignments(semanticObj, assignedElements, value);
        else
            return findValidValueAssignments(semanticObj, assignedElements, value);
    } else if (feature instanceof EReference) {
        EReference ref = (EReference) feature;
        if (ref.isContainment())
            return findValidAssignmentsForContainmentRef(semanticObj, assignments, (EObject) value);
        else
            return findValidAssignmentsForCrossRef(semanticObj, assignedElements, (EObject) value, node);
    }
    throw new RuntimeException("unknown feature type");
}

From source file:springfox.documentation.spring.web.plugins.DefaultRequestHandlerCombiner.java

public List<RequestHandler> combine(List<RequestHandler> source) {
    List<RequestHandler> combined = new ArrayList<RequestHandler>();
    Multimap<String, RequestHandler> byPath = LinkedListMultimap.create();
    for (RequestHandler each : nullToEmptyList(source)) {
        byPath.put(patternsCondition(each).toString(), each);
    }/* w w  w . j ava  2  s .  c  o  m*/
    for (String key : byPath.keySet()) {
        combined.addAll(combined(byPath.get(key)));
    }
    return byPatternsCondition().sortedCopy(combined);
}

From source file:fr.jcgay.maven.plugin.buildplan.display.AbstractTableDescriptor.java

protected static Map<TableColumn, Integer> findMaxSize(Collection<MojoExecution> executions,
        TableColumn... columns) {

    Map<TableColumn, Integer> result = new HashMap<TableColumn, Integer>();

    Multimap<TableColumn, Integer> count = ArrayListMultimap.create();
    for (MojoExecution execution : executions) {
        for (TableColumn column : columns) {
            switch (column) {
            case ARTIFACT_ID:
                count.put(column, safeLength(execution.getArtifactId()));
                break;
            case EXECUTION_ID:
                count.put(column, safeLength(execution.getExecutionId()));
                break;
            case GOAL:
                count.put(column, safeLength(execution.getGoal()));
                break;
            case PHASE:
                MojoDescriptor mojoDescriptor = execution.getMojoDescriptor();
                if (mojoDescriptor != null && mojoDescriptor.getPhase() != null) {
                    count.put(column, safeLength(mojoDescriptor.getPhase()));
                } else {
                    count.put(column, safeLength(execution.getLifecyclePhase()));
                }//from   ww w  . jav  a2 s.co  m
            }
        }
    }
    for (TableColumn column : TableColumn.values()) {
        count.put(column, column.title().length());
    }

    for (TableColumn key : count.keySet()) {
        result.put(key, Collections.max(count.get(key)));
    }

    return result;
}

From source file:co.cask.cdap.cli.command.CallServiceCommand.java

/**
 * Format multiple header values as a comma separated list of the values.
 * This is a valid formatting: http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
 *///  w  w  w  .  j a  va  2  s  .  c  om
private String formatHeaders(HttpResponse response) {
    Multimap<String, String> headers = response.getHeaders();
    ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>();
    for (String key : headers.keySet()) {
        Collection<String> value = headers.get(key);
        builder.put(key, StringUtils.arrayToString(value.toArray(new String[value.size()])));
    }
    return formatHeader(builder.build());
}

From source file:com.google.devtools.build.lib.analysis.config.ConfigurationResolver.java

/**
 * This method allows resolution of configurations outside of a skyfunction call.
 *
 * <p>If {@link BuildConfiguration.Options#trimConfigurations()} is true, transforms a collection
 * of <Target, Configuration> pairs by trimming each target's configuration to only the fragments
 * the target and its transitive dependencies need.
 *
 * <p>Else returns configurations that unconditionally include all fragments.
 *
 * <p>Preserves the original input order (but merges duplicate nodes that might occur due to
 * top-level configuration transitions) . Uses original (untrimmed) configurations for targets
 * that can't be evaluated (e.g. due to loading phase errors).
 *
 * <p>This is suitable for feeding {@link ConfiguredTargetValue} keys: as general principle {@link
 * ConfiguredTarget}s should have exactly as much information in their configurations as they need
 * to evaluate and no more (e.g. there's no need for Android settings in a C++ configured target).
 *
 * @param inputs the original targets and configurations
 * @param asDeps the inputs repackaged as dependencies
 * @param eventHandler//from w  w w.  j  a  v a2 s  .  c  om
 * @param skyframeExecutor
 */
// TODO(bazel-team): error out early for targets that fail - untrimmed configurations should
// never make it through analysis (and especially not seed ConfiguredTargetValues)
public static LinkedHashSet<TargetAndConfiguration> getConfigurationsFromExecutor(
        Iterable<TargetAndConfiguration> inputs, Multimap<BuildConfiguration, Dependency> asDeps,
        ExtendedEventHandler eventHandler, SkyframeExecutor skyframeExecutor) throws InterruptedException {

    Map<Label, Target> labelsToTargets = new LinkedHashMap<>();
    for (TargetAndConfiguration targetAndConfig : inputs) {
        labelsToTargets.put(targetAndConfig.getLabel(), targetAndConfig.getTarget());
    }

    // Maps <target, originalConfig> pairs to <target, finalConfig> pairs for targets that
    // could be successfully Skyframe-evaluated.
    Map<TargetAndConfiguration, TargetAndConfiguration> successfullyEvaluatedTargets = new LinkedHashMap<>();
    if (!asDeps.isEmpty()) {
        for (BuildConfiguration fromConfig : asDeps.keySet()) {
            Multimap<Dependency, BuildConfiguration> trimmedTargets = skyframeExecutor
                    .getConfigurations(eventHandler, fromConfig.getOptions(), asDeps.get(fromConfig));
            for (Map.Entry<Dependency, BuildConfiguration> trimmedTarget : trimmedTargets.entries()) {
                Target target = labelsToTargets.get(trimmedTarget.getKey().getLabel());
                successfullyEvaluatedTargets.put(new TargetAndConfiguration(target, fromConfig),
                        new TargetAndConfiguration(target, trimmedTarget.getValue()));
            }
        }
    }

    LinkedHashSet<TargetAndConfiguration> result = new LinkedHashSet<>();
    for (TargetAndConfiguration originalInput : inputs) {
        if (successfullyEvaluatedTargets.containsKey(originalInput)) {
            // The configuration was successfully trimmed.
            result.add(successfullyEvaluatedTargets.get(originalInput));
        } else {
            // Either the configuration couldn't be determined (e.g. loading phase error) or it's null.
            result.add(originalInput);
        }
    }
    return result;
}

From source file:org.apache.brooklyn.entity.group.zoneaware.BalancingNodePlacementStrategy.java

protected Map<Location, Integer> toMutableLocationSizes(Multimap<Location, Entity> currentMembers,
        Iterable<? extends Location> otherLocs) {
    Map<Location, Integer> result = Maps.newLinkedHashMap();
    for (Location key : currentMembers.keySet()) {
        result.put(key, currentMembers.get(key).size());
    }//  w  w w.j  ava 2s.  c o  m
    for (Location otherLoc : otherLocs) {
        if (!result.containsKey(otherLoc)) {
            result.put(otherLoc, 0);
        }
    }
    return result;
}

From source file:org.jclouds.ec2.compute.strategy.EC2ListNodesStrategy.java

protected Iterable<? extends RunningInstance> pollRunningInstancesByRegionsAndIds(
        final Multimap<String, String> idsByRegions) {
    Iterable<? extends Set<? extends Reservation<? extends RunningInstance>>> reservations = transform(
            idsByRegions.keySet(), instancesByIdInRegion(idsByRegions));

    return concat(concat(reservations));
}

From source file:org.franca.examples.validators.fidl.UniqueStateNameValidator.java

@Override
public void validateModel(FModel model, ValidationMessageAcceptor messageAcceptor) {

    for (FInterface _interface : model.getInterfaces()) {
        FContract contract = _interface.getContract();
        if (contract != null) {
            Multimap<String, FState> stateNameMap = ArrayListMultimap.create();

            for (FState state : contract.getStateGraph().getStates()) {
                stateNameMap.put(state.getName(), state);
            }//from   w  w w  .  j  a  v a  2 s  .c  o  m

            for (String name : stateNameMap.keySet()) {
                Collection<FState> states = stateNameMap.get(name);
                if (states.size() > 1) {
                    for (FState state : states) {
                        messageAcceptor.acceptError("The name of the state is not unique!", state,
                                FrancaPackage.Literals.FMODEL_ELEMENT__NAME,
                                ValidationMessageAcceptor.INSIGNIFICANT_INDEX, null);
                    }
                }
            }
        }
    }
}

From source file:org.sonar.java.checks.MembersDifferOnlyByCapitalizationCheck.java

private void checkForIssue(Symbol symbol, IdentifierTree reportTree, Multimap<String, Symbol> membersByName) {
    String name = symbol.name();/*from ww  w.ja v  a  2 s.  c o m*/
    for (String knownMemberName : membersByName.keySet()) {
        if (name.equalsIgnoreCase(knownMemberName)) {
            Optional<Symbol> conflictingMember = membersByName.get(knownMemberName).stream()
                    .filter(knownMemberSymbol -> !symbol.equals(knownMemberSymbol)
                            && isValidIssueLocation(symbol, knownMemberSymbol)
                            && isInvalidMember(symbol, knownMemberSymbol))
                    .findFirst();
            if (conflictingMember.isPresent()) {
                Symbol conflictingSymbol = conflictingMember.get();
                reportIssue(reportTree, "Rename " + getSymbolTypeName(symbol) + " \"" + name + "\" "
                        + "to prevent any misunderstanding/clash with " + getSymbolTypeName(conflictingSymbol)
                        + " \"" + knownMemberName + "\"" + getDefinitionPlace(symbol, conflictingSymbol) + ".");
            }
        }
    }
}

From source file:neon.core.GameSaver.java

private Element saveEvents() {
    Element events = new Element("events");

    // alle gewone tasks (voorlopig enkel script tasks)
    Multimap<String, Action> tasks = queue.getTasks();
    for (String key : tasks.keySet()) {
        for (Action action : tasks.get(key)) {
            Element event = new Element("task");
            event.setAttribute("desc", key);
            if (action instanceof ScriptAction) {
                ScriptAction task = (ScriptAction) action;
                event.setAttribute("script", task.getScript());
            }/*  www.  jav a  2s.  co  m*/
            events.addContent(event);
        }
    }

    // alle timer tasks
    Multimap<Integer, TaskQueue.RepeatEntry> repeats = queue.getTimerTasks();
    for (Integer key : repeats.keySet()) {
        for (TaskQueue.RepeatEntry entry : repeats.get(key)) {
            Element event = new Element("timer");
            event.setAttribute("tick", key + ":" + entry.getPeriod() + ":" + entry.getStop());
            if (entry.getScript() != null) {
                event.setAttribute("task", "script");
                event.setAttribute("script", entry.getScript());
            } else if (entry.getTask() instanceof MagicTask) {
                event.setAttribute("task", "magic");
                Spell spell = ((MagicTask) entry.getTask()).getSpell();
                event.setAttribute("effect", spell.getEffect().name());
                if (spell.getTarget() != null) {
                    event.setAttribute("target", Long.toString(spell.getTarget().getUID()));
                }
                if (spell.getCaster() != null) {
                    event.setAttribute("caster", Long.toString(spell.getCaster().getUID()));
                }
                if (spell.getScript() != null) {
                    event.setAttribute("script", spell.getScript());
                }
                event.setAttribute("stype", spell.getType().name());
                event.setAttribute("mag", Float.toString(spell.getMagnitude()));
            }
            events.addContent(event);
        }
    }

    return events;
}