List of usage examples for com.google.common.collect Multimaps index
public static <K, V> ImmutableListMultimap<K, V> index(Iterator<V> values, Function<? super V, K> keyFunction)
From source file:org.opentestsystem.authoring.testauth.service.impl.ItemMetadataKeysServiceImpl.java
@Override public void loadTibItemImportIntoItemMetadataKeys(final String assessmentId, final List<TibItem> tibItemList) { checkForLockedAssessment(assessmentId); final Set<String> metadataKeys = Sets .newHashSet(Iterables.concat(Multimaps.index(tibItemList, TIBITEM_METADATA_KEYS).asMap().keySet())); ItemMetadataKeys itemMetadataKeys = getItemMetadataKeysByAssessment(assessmentId); if (itemMetadataKeys == null) { itemMetadataKeys = new ItemMetadataKeys(); itemMetadataKeys.setAssessmentId(assessmentId); itemMetadataKeys.setItemMetadataKeys(metadataKeys); } else {/*from www . java 2 s. com*/ itemMetadataKeys.getItemMetadataKeys().addAll(metadataKeys); } try { this.itemMetadataKeysRepository.save(itemMetadataKeys); } catch (final DuplicateKeyException dke) { throw new LocalizedException("itemMetadataKeys.already.exists", new String[] {}, dke); } }
From source file:com.twitter.aurora.scheduler.http.Maintenance.java
@GET @Produces(MediaType.APPLICATION_JSON)/*from ww w . j a va 2 s . c om*/ public Response getHosts() { return storage.weaklyConsistentRead(new Work.Quiet<Response>() { @Override public Response apply(StoreProvider storeProvider) { Multimap<MaintenanceMode, String> hostsByMode = Multimaps.transformValues( Multimaps.index(storeProvider.getAttributeStore().getHostAttributes(), GET_MODE), HOST_NAME); Map<MaintenanceMode, Object> hosts = Maps.newHashMap(); hosts.put(DRAINED, ImmutableSet.copyOf(hostsByMode.get(DRAINED))); hosts.put(SCHEDULED, ImmutableSet.copyOf(hostsByMode.get(SCHEDULED))); hosts.put(DRAINING, getTasksByHosts(storeProvider, hostsByMode.get(DRAINING)).asMap()); return Response.ok(hosts).build(); } }); }
From source file:springfox.documentation.spring.web.plugins.DefaultRequestHandlerCombiner.java
private Collection<? extends RequestHandler> combined(Collection<RequestHandler> requestHandlers) { List<RequestHandler> source = newArrayList(requestHandlers); if (source.size() == 0 || source.size() == 1) { return requestHandlers; }/*ww w .j a v a2 s .c om*/ ListMultimap<Equivalence.Wrapper<RequestHandler>, RequestHandler> groupByEquality = Multimaps.index(source, equivalenceAsKey()); List<RequestHandler> combined = newArrayList(); for (Equivalence.Wrapper<RequestHandler> path : groupByEquality.keySet()) { List<RequestHandler> handlers = groupByEquality.get(path); RequestHandler toCombine = path.get(); if (handlers.size() > 1) { for (RequestHandler each : handlers) { toCombine = combine(toCombine, each); } } combined.add(toCombine); } return combined; }
From source file:com.b2international.snowowl.snomed.datastore.converter.MembersExpander.java
void expand(List<? extends SnomedCoreComponent> results, Set<String> componentIds) { if (expand.containsKey("members")) { final Options membersOptions = expand.get("members", Options.class); // TODO support limit, offset, filtering, selection final SnomedReferenceSetMembers matchingMembers = SnomedRequests.prepareSearchMember().all() .filterByReferencedComponent(componentIds).setLocales(locales) .setExpand(membersOptions.get("expand", Options.class)).build().execute(context); final Multimap<String, SnomedReferenceSetMember> membersByReferencedComponentId = Multimaps .index(matchingMembers, new Function<SnomedReferenceSetMember, String>() { @Override/*from w w w .j av a 2 s . c o m*/ public String apply(SnomedReferenceSetMember input) { return input.getReferencedComponent().getId(); } }); for (SnomedCoreComponent component : results) { final Collection<SnomedReferenceSetMember> members = membersByReferencedComponentId .get(component.getId()); ((SnomedCoreComponent) component).setMembers(new SnomedReferenceSetMembers( ImmutableList.copyOf(members), null, null, members.size(), members.size())); } } }
From source file:org.apache.aurora.scheduler.base.Tasks.java
/** * A utility method that returns a multi-map of tasks keyed by IJobKey. * * @param tasks A list of tasks to be keyed by map * @return A multi-map of tasks keyed by job key. */// w w w . ja v a 2s .c o m public static Multimap<IJobKey, IScheduledTask> byJobKey(Iterable<IScheduledTask> tasks) { return Multimaps.index(tasks, Tasks::getJob); }
From source file:edu.isi.karma.modeling.research.approach1.RankedSteinerSet.java
private List<Integer> computeCohesion() { if (nodes == null) return null; List<String> patternIds = new ArrayList<String>(); for (Node n : nodes) for (String s : n.getPatternIds()) patternIds.add(s);/* w w w. j a v a 2 s . c o m*/ Function<String, String> stringEqualiy = new Function<String, String>() { @Override public String apply(final String s) { return s; } }; Multimap<String, String> index = Multimaps.index(patternIds, stringEqualiy); List<Integer> frequencies = new ArrayList<Integer>(); for (String s : index.keySet()) { frequencies.add(index.get(s).size()); } Collections.sort(frequencies); frequencies = Lists.reverse(frequencies); return frequencies; }
From source file:kn.uni.gis.dataimport.Main.java
private static void insertData(SQLFacade sqlConnection, final String tableName, final List<String> readLines) throws SQLException { // Mapping from id -> multiple (parsed) lines Multimap<String, List<String>> index = Multimaps .index(Lists.transform(readLines, new Function<String, List<String>>() { @Override//from w w w. j a v a 2s. c o m public List<String> apply(String input) { ArrayList<String> newArrayList = Lists .newArrayList(Splitter.on("\t").trimResults().split(input)); newArrayList.remove(newArrayList.size() - 1); return newArrayList; } }), new Function<List<String>, String>() { @Override public String apply(List<String> input) { return input.get(ID_INDEX); } }); // Collapse now to a mapping id -> one line Map<String, List<String>> collapsedValues = Maps.transformValues(index.asMap(), new Function<Collection<List<String>>, List<String>>() { @Override public List<String> apply(Collection<List<String>> input) { List<String> toReturn = Lists.newArrayList(); // set id List<String> firstLine = input.iterator().next(); toReturn.add(firstLine.get(0)); // set coordinates StringBuilder stringBuilder = new StringBuilder(); for (List<String> ret : input) { stringBuilder.append(ret.get(1)); stringBuilder.append(" "); stringBuilder.append(ret.get(2)); stringBuilder.append(","); } String coords = stringBuilder.toString(); // add additional line data for (int i = 5; i < firstLine.size(); i++) { toReturn.add("'" + firstLine.get(i).replaceAll("'", "''") + "'"); } // delete last ',' and add GeoInformation as last column toReturn.add(GeoColumn.getGeoColumn(tableName) .getGeoInsertionSQL(coords.substring(0, coords.lastIndexOf(',')))); return toReturn; } }); List<String> toexecute = Lists.newArrayList(); for (Map.Entry<String, List<String>> entry : collapsedValues.entrySet()) { toexecute.add(String.format("insert into \"%s\" values (%s);", tableName, Joiner.on(",").join(entry.getValue()))); } sqlConnection.executeBatch(toexecute.toArray(new String[toexecute.size()])); }
From source file:com.sun.tools.hat.internal.server.RootsQuery.java
@Override public void run() { long id = parseHex(query); JavaHeapObject target = snapshot.findThing(id); if (target == null) { startHtml("Object not found for rootset"); error("object not found"); endHtml();/* www .jav a2 s .c o m*/ return; } if (includeWeak) { startHtml("Rootset references to " + target + " (includes weak refs)"); } else { startHtml("Rootset references to " + target + " (excludes weak refs)"); } out.flush(); out.print("<h1>References to "); printThing(target); out.println("</h1>"); // More interesting values are *higher* Multimap<Integer, ReferenceChain> refs = Multimaps.index(snapshot.rootsetReferencesTo(target, includeWeak), chain -> chain.getObj().getRoot().getType()); refs.asMap().entrySet().stream().sorted(Ordering.natural().reverse().onResultOf(entry -> entry.getKey())) .forEach(entry -> { out.print("<h2>"); print(Root.getTypeName(entry.getKey()) + " References"); out.println("</h2>"); entry.getValue().stream().sorted(Ordering.natural().onResultOf(ReferenceChain::getDepth)) .forEach(ref -> { Root root = ref.getObj().getRoot(); out.print("<h3>"); printRoot(root); if (root.getReferer() != null) { out.print("<small> (from "); printThingAnchorTag(root.getReferer().getId()); print(root.getReferer().toString()); out.print(")</a></small>"); } out.print(" :</h3>"); while (ref != null) { ReferenceChain next = ref.getNext(); JavaHeapObject obj = ref.getObj(); print("--> "); printThing(obj); if (next != null) { print(" (" + obj.describeReferenceTo(next.getObj(), snapshot) + ":)"); } out.println("<br>"); ref = next; } }); }); out.println("<h2>Other queries</h2>"); if (includeWeak) { printAnchorStart(); out.print("roots/"); printHex(id); out.print("\">"); out.println("Exclude weak refs</a><br>"); endHtml(); } if (!includeWeak) { printAnchorStart(); out.print("allRoots/"); printHex(id); out.print("\">"); out.println("Include weak refs</a><br>"); } }
From source file:com.nesscomputing.service.discovery.testing.client.MemoryDiscoveryClient.java
private void updateStateOfTheWorld() { Map<String, ConsistentRingGroup> newWorldOrder = Maps .transformValues(Multimaps.index(announcements, GET_SERVICE_NAME).asMap(), BUILD_RING_GROUP); getStateOfTheWorldHolder().setState(newWorldOrder); LOG.trace("Pushed out discovery update, new world order = %s", newWorldOrder); }
From source file:org.opencms.ade.sitemap.shared.CmsSitemapCategoryData.java
/** * Gets a multimap of the top-level entries, indexed by whether they are local categories or not.<p> * * A category counts as local if all of its parent categories are defined in the current sitemap. * * @return the multimap of entries/*w w w .jav a 2s . c o m*/ */ public Multimap<Boolean, CmsCategoryTreeEntry> getEntriesIndexedByLocality() { return ArrayListMultimap .create(Multimaps.index(m_categoryEntries, new Function<CmsCategoryTreeEntry, Boolean>() { @SuppressWarnings("synthetic-access") public Boolean apply(CmsCategoryTreeEntry entry) { return Boolean.valueOf(entry.getBasePath().equals(m_basePath)); } })); }