List of usage examples for com.google.common.collect ListMultimap get
@Override List<V> get(@Nullable K key);
Because the values for a given key may have duplicates and follow the insertion ordering, this method returns a List , instead of the java.util.Collection specified in the Multimap interface.
From source file:eu.esdihumboldt.hale.io.xtraserver.writer.handler.FormattedStringHandler.java
/** * @see eu.esdihumboldt.hale.io.xtraserver.writer.handler.TransformationHandler#handle(eu.esdihumboldt.hale.common.align.model.Cell) *///from ww w . ja v a2 s . c o m @Override public Optional<MappingValue> doHandle(final Cell propertyCell, final Property targetProperty) { // Get the formatted string from parameters final ListMultimap<String, ParameterValue> parameters = propertyCell.getTransformationParameters(); final List<ParameterValue> patterns = parameters.get("pattern"); if (patterns == null || patterns.isEmpty() || patterns.get(0).isEmpty()) { mappingContext.getReporter().warn("Formatted string was ignored, no pattern set."); return Optional.empty(); } final String pattern = patterns.get(0).as(String.class); final StringBuilder formattedStr = new StringBuilder(mappingContext.resolveProjectVars(pattern)); if (propertyCell.getSource() != null && !propertyCell.getSource().asMap().get("var").isEmpty()) { final List<String> variables = propertyCell.getSource().asMap().get("var").stream() .map(var -> propertyName(var.getDefinition().getPropertyPath())).collect(Collectors.toList()); final List<int[]> startEndList = new ArrayList<int[]>(); final List<String> varList = new ArrayList<String>(); final Matcher m = VARIABLE_PATTERN.matcher(formattedStr); while (m.find()) { int[] startEnd = new int[2]; startEnd[0] = m.start(); // index of '{' character startEnd[1] = m.end(); // index of '}' character startEndList.add(startEnd); varList.add(m.group(1)); // the variable name, without curly braces } List<String> missingVars = varList.stream().filter(var -> !variables.contains(var)) .collect(Collectors.toList()); if (!missingVars.isEmpty()) { mappingContext.getReporter().warn("Formatted string was ignored. Variables \"" + missingVars + "\" were used in pattern, but do not exist in source properties."); return Optional.empty(); } final StringBuilder varBuilder = new StringBuilder(); int idxOffset = 0; // Add ' if string does not start with a variable definition if (startEndList.get(0)[0] != 0) { formattedStr.insert(0, '\''); varBuilder.append(XS_CONCAT_LEFT_STR); idxOffset++; } int firstStartIdx = startEndList.get(0)[0] + idxOffset; int firstEndIdx = startEndList.get(0)[1] + idxOffset; varBuilder.append(XS_VAR_PREFIX); varBuilder.append(varList.get(0)); if (firstEndIdx - idxOffset != pattern.length()) { rightConcat(varBuilder, 0, startEndList); if (varList.size() == 1) { formattedStr.append('\''); } } formattedStr.replace(firstStartIdx, firstEndIdx, varBuilder.toString()); idxOffset += varBuilder.length() - firstEndIdx + firstStartIdx; varBuilder.setLength(0); if (varList.size() > 1) { for (int i = 1; i < startEndList.size(); i++) { final int startIdx = startEndList.get(i)[0] + idxOffset; final int endIdx = startEndList.get(i)[1] + idxOffset; leftConcat(varBuilder, i, startEndList); varBuilder.append(XS_VAR_PREFIX); varBuilder.append(varList.get(i)); rightConcat(varBuilder, i, startEndList); formattedStr.replace(startIdx, endIdx, varBuilder.toString()); idxOffset += varBuilder.length() - endIdx + startIdx; varBuilder.setLength(0); } // Remove || ' after the last variable or append ' after the last string if (startEndList.get(startEndList.size() - 1)[1] == pattern.length()) { formattedStr.setLength(formattedStr.length() - XS_CONCAT_RIGHT_STR.length()); } else { formattedStr.append(XS_CONCAT_LEFT_STR); } } } else { formattedStr.insert(0, '\''); // Simple string without formatting formattedStr.append('\''); } final MappingValue mappingValue = new MappingValueBuilder().expression() .qualifiedTargetPath(buildPath(targetProperty.getDefinition().getPropertyPath())) .value(formattedStr.toString()).build(); return Optional.of(mappingValue); }
From source file:edu.upenn.mkse212.pennbook.server.UserServiceImpl.java
@Override public Map<String, ArrayList<String>> login(String email, String password) { String query = String.format("SELECT * FROM %s WHERE %s='%s'", DB_DOMAIN, EMAIL_ATTR, email); String userAsJson = ""; List<ListMultimap<String, String>> userAttrs = store.selectMulti(query); Map<String, ArrayList<String>> convAttrs = null; for (ListMultimap<String, String> userMap : userAttrs) { String salt = userMap.get(SALT_ATTR).get(0); String receivedPasswordHash; try {/* w ww . java2 s . c om*/ receivedPasswordHash = Credentials.hashPassword(password, salt); String dbPasswordHash = userMap.get(PASSWORD_HASH_ATTR).get(0); if (dbPasswordHash.equals(receivedPasswordHash)) { convAttrs = MapUtil.convertMultimap(userMap); } } catch (Exception e) { e.printStackTrace(); } } return convAttrs; }
From source file:org.onosproject.layout.LayoutAlgorithm.java
private String count(ListMultimap<String, ? extends ElementId> categories) { StringBuilder sb = new StringBuilder("[ "); categories.keySet().forEach(k -> sb.append(k).append("=").append(categories.get(k).size()).append(" ")); return sb.append("]").toString(); }
From source file:org.envirocar.server.mongo.MongoDB.java
@SuppressWarnings("unchecked") protected <T> Iterable<T> deref(Class<T> clazz, List<Key<T>> keys) { if (keys == null || keys.isEmpty()) { return Collections.emptyList(); }/* w w w. j a v a 2 s. com*/ ListMultimap<String, Key<T>> kindMap = getKindMap(clazz, keys); List<Iterable<T>> fetched = Lists.newLinkedList(); for (String kind : kindMap.keySet()) { List<Key<T>> kindKeys = kindMap.get(kind); List<Object> objIds = new ArrayList<Object>(kindKeys.size()); Class<T> kindClass = clazz == null ? (Class<T>) kindKeys.get(0).getKindClass() : clazz; for (Key<T> key : kindKeys) { objIds.add(key.getId()); } fetched.add(getDatastore().find(kind, kindClass).disableValidation().field(Mapper.ID_KEY).in(objIds) .fetch()); } return Iterables.concat(fetched); }
From source file:eu.esdihumboldt.hale.ui.functions.groovy.SourceViewerPage.java
@Override public void setParameter(Set<FunctionParameterDefinition> params, ListMultimap<String, ParameterValue> initialValues) { if (initialValues != null) { List<ParameterValue> val = initialValues.get(parameterName); if (val != null && !val.isEmpty()) { // try text value Text text = val.get(0).as(Text.class); if (text != null && text.getText() != null) { initialValue = text.getText(); } else { // try string value initialValue = val.get(0).as(String.class, initialValue); }/* w ww . j av a2 s . c om*/ } } }
From source file:eu.esdihumboldt.cst.functions.geometric.OrdinatesToPoint.java
/** * @see eu.esdihumboldt.hale.common.align.transformation.function.impl.AbstractPropertyTransformation#evaluate(java.lang.String, * eu.esdihumboldt.hale.common.align.transformation.engine.TransformationEngine, * com.google.common.collect.ListMultimap, * com.google.common.collect.ListMultimap, java.util.Map, * eu.esdihumboldt.hale.common.align.transformation.report.TransformationLog) *///from ww w . j a va 2s . c o m @Override protected Object evaluate(String transformationIdentifier, TransformationEngine engine, ListMultimap<String, PropertyValue> variables, String resultName, PropertyEntityDefinition resultProperty, Map<String, String> executionParameters, TransformationLog log) throws TransformationException { // get x, y and z properties PropertyValue x = variables.get("x").get(0); PropertyValue y = variables.get("y").get(0); PropertyValue z = null; if (!variables.get("z").isEmpty()) z = variables.get("z").get(0); // get crs definition if srs is specified CRSDefinition crsDef = null; String srs = getOptionalParameter(PARAMETER_REFERENCE_SYSTEM, null).as(String.class); if (srs != null) crsDef = new CodeDefinition(srs, null); // convert values to double and create a point double xValue = x.getValueAs(Double.class); double yValue = y.getValueAs(Double.class); Point resultPoint; GeometryFactory geomFactory = new GeometryFactory(); if (z == null) resultPoint = geomFactory.createPoint(new Coordinate(xValue, yValue)); else resultPoint = geomFactory.createPoint(new Coordinate(xValue, yValue, z.getValueAs(Double.class))); // pack result into geometry property and return it GeometryProperty<Point> result = new DefaultGeometryProperty<Point>(crsDef, resultPoint); return result; }
From source file:com.google.gerrit.server.change.AbandonUtil.java
public void abandonInactiveOpenChanges() { if (cfg.getAbandonAfter() <= 0) { return;//from w w w.j av a 2 s . co m } try { String query = "status:new age:" + TimeUnit.MILLISECONDS.toMinutes(cfg.getAbandonAfter()) + "m"; if (!cfg.getAbandonIfMergeable()) { query += " -is:mergeable"; } List<ChangeData> changesToAbandon = queryProcessor.enforceVisibility(false) .query(queryBuilder.parse(query)).entities(); ImmutableListMultimap.Builder<Project.NameKey, ChangeControl> builder = ImmutableListMultimap.builder(); for (ChangeData cd : changesToAbandon) { ChangeControl control = cd.changeControl(internalUser); builder.put(control.getProject().getNameKey(), control); } int count = 0; ListMultimap<Project.NameKey, ChangeControl> abandons = builder.build(); String message = cfg.getAbandonMessage(); for (Project.NameKey project : abandons.keySet()) { Collection<ChangeControl> changes = getValidChanges(abandons.get(project), query); try { abandon.batchAbandon(project, internalUser, changes, message); count += changes.size(); } catch (Throwable e) { StringBuilder msg = new StringBuilder("Failed to auto-abandon inactive change(s):"); for (ChangeControl change : changes) { msg.append(" ").append(change.getId().get()); } msg.append("."); log.error(msg.toString(), e); } } log.info(String.format("Auto-Abandoned %d of %d changes.", count, changesToAbandon.size())); } catch (QueryParseException | OrmException e) { log.error("Failed to query inactive open changes for auto-abandoning.", e); } }
From source file:org.fim.internal.StateComparator.java
private List<FileState> findFilesWithSameHash(FileState search, ListMultimap<FileHash, FileState> fileStates) { return fileStates.get(search.getFileHash()); }
From source file:io.prestosql.cost.UnionStatsRule.java
private PlanNodeStatsEstimate mapToOutputSymbols(PlanNodeStatsEstimate estimate, ListMultimap<Symbol, Symbol> mapping, int index) { PlanNodeStatsEstimate.Builder mapped = PlanNodeStatsEstimate.builder() .setOutputRowCount(estimate.getOutputRowCount()); mapping.keySet().stream().forEach(symbol -> mapped.addSymbolStatistics(symbol, estimate.getSymbolStatistics(mapping.get(symbol).get(index)))); return mapped.build(); }
From source file:org.sonar.server.startup.RegisterNewProfiles.java
public void start() { TimeProfiler profiler = new TimeProfiler(LOGGER).start("Register Quality Profiles"); session = sessionFactory.getSession(); ListMultimap<String, RulesProfile> profilesByLanguage = loadDefinitions(); for (String language : profilesByLanguage.keySet()) { List<RulesProfile> profiles = profilesByLanguage.get(language); verifyLanguage(language, profiles); for (Map.Entry<String, Collection<RulesProfile>> entry : groupByName(profiles).entrySet()) { String name = entry.getKey(); if (shouldRegister(language, name)) { register(language, name, entry.getValue()); }/*from w w w . java 2 s .co m*/ } setDefault(language, profiles); } session.commit(); profiler.stop(); }