Example usage for com.google.common.collect ImmutableListMultimap builder

List of usage examples for com.google.common.collect ImmutableListMultimap builder

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableListMultimap builder.

Prototype

public static <K, V> Builder<K, V> builder() 

Source Link

Document

Returns a new builder.

Usage

From source file:co.paralleluniverse.comsat.webactors.servlet.ServletHttpRequest.java

@Override
public ListMultimap<String, String> getHeaders() {
    if (headers == null) {
        ImmutableListMultimap.Builder<String, String> mm = ImmutableListMultimap.builder();// LinkedHashMultimap.create();
        for (Enumeration<String> hs = request.getHeaderNames(); hs.hasMoreElements();) {
            String h = hs.nextElement();
            for (Enumeration<String> hv = request.getHeaders(h); hv.hasMoreElements();)
                mm.put(h, hv.nextElement());
        }/*  w ww  . ja  v  a2s.  c  o m*/
        this.headers = mm.build();
    }
    return headers;
}

From source file:co.paralleluniverse.comsat.webactors.servlet.HttpRequestWrapper.java

@Override
public final ListMultimap<String, String> getHeaders() {
    if (headers == null) {
        final ImmutableListMultimap.Builder<String, String> mm = ImmutableListMultimap.builder();// LinkedHashMultimap.create();
        for (final Enumeration<String> hs = request.getHeaderNames(); hs.hasMoreElements();) {
            final String h = hs.nextElement();
            for (final Enumeration<String> hv = request.getHeaders(h); hv.hasMoreElements();)
                // Normalize header names by their conversion to lower case
                mm.put(h.toLowerCase(Locale.ENGLISH), hv.nextElement());
        }/*from w  ww .j a  v a2 s .  c  om*/
        this.headers = mm.build();
    }
    return headers;
}

From source file:com.facebook.presto.tpch.TpchIndexedData.java

private static IndexedTable indexTable(TpchTable table, double scaleFactor, final List<String> outputColumns,
        List<String> keyColumns) {
    List<Integer> keyPositions = FluentIterable.from(keyColumns).transform(new Function<String, Integer>() {
        @Override//from   ww  w .  j a  va 2s  . c  o m
        public Integer apply(String columnName) {
            int position = outputColumns.indexOf(columnName);
            checkState(position != -1);
            return position;
        }
    }).toList();

    RecordSet recordSet = getRecordSet(table, scaleFactor, outputColumns);

    ImmutableListMultimap.Builder<MaterializedTuple, MaterializedTuple> indexedValuesBuilder = ImmutableListMultimap
            .builder();

    List<Type> outputTypes = recordSet.getColumnTypes();
    List<Type> keyTypes = extractPositionValues(outputTypes, keyPositions);

    RecordCursor cursor = recordSet.cursor();
    while (cursor.advanceNextPosition()) {
        List<Object> values = extractValues(cursor, outputTypes);
        List<Object> keyValues = extractPositionValues(values, keyPositions);

        indexedValuesBuilder.put(new MaterializedTuple(keyValues), new MaterializedTuple(values));
    }

    return new IndexedTable(keyColumns, keyTypes, outputColumns, outputTypes, indexedValuesBuilder.build());
}

From source file:org.janusgraph.graphdb.types.vertices.JanusGraphSchemaVertex.java

@Override
public Iterable<Entry> getRelated(TypeDefinitionCategory def, Direction dir) {
    assert dir == Direction.OUT || dir == Direction.IN;
    ListMultimap<TypeDefinitionCategory, Entry> rels = dir == Direction.OUT ? outRelations : inRelations;
    if (rels == null) {
        ImmutableListMultimap.Builder<TypeDefinitionCategory, Entry> b = ImmutableListMultimap.builder();
        Iterable<JanusGraphEdge> edges;
        if (isLoaded()) {
            StandardJanusGraphTx tx = tx();
            edges = (Iterable) RelationConstructor.readRelation(this, tx.getGraph().getSchemaCache()
                    .getSchemaRelations(longId(), BaseLabel.SchemaDefinitionEdge, dir), tx);
        } else {//  w w w  .j  a v a2  s  .  c  om
            edges = query().type(BaseLabel.SchemaDefinitionEdge).direction(dir).edges();
        }
        for (JanusGraphEdge edge : edges) {
            JanusGraphVertex oth = edge.vertex(dir.opposite());
            assert oth instanceof JanusGraphSchemaVertex;
            TypeDefinitionDescription desc = edge.valueOrNull(BaseKey.SchemaDefinitionDesc);
            Object modifier = null;
            if (desc.getCategory().hasDataType()) {
                assert desc.getModifier() != null
                        && desc.getModifier().getClass().equals(desc.getCategory().getDataType());
                modifier = desc.getModifier();
            }
            b.put(desc.getCategory(), new Entry((JanusGraphSchemaVertex) oth, modifier));
        }
        rels = b.build();
        if (dir == Direction.OUT)
            outRelations = rels;
        else
            inRelations = rels;
    }
    assert rels != null;
    return rels.get(def);
}

From source file:org.eclipse.xtext.xtext.RuleNames.java

public RuleNames(Grammar grammar, boolean installAdapter) {
    this.contextGrammar = grammar;
    Adapter adapter = new Adapter(this);
    if (installAdapter) {
        installAdapterIfMissing(adapter, grammar);
    }/*  ww  w . j ava 2  s. co m*/
    List<AbstractRule> allRules = GrammarUtil.allRules(grammar);
    ImmutableListMultimap.Builder<String, AbstractRule> simpleNameToRulesBuilder = ImmutableListMultimap
            .builder();
    ImmutableMap.Builder<String, AbstractRule> qualifiedNameToRuleBuilder = ImmutableMap.builder();
    ImmutableBiMap.Builder<String, AbstractRule> uniqueNameToRuleBuilder = ImmutableBiMap.builder();
    ImmutableBiMap.Builder<String, AbstractRule> antlrNameToRuleBuilder = ImmutableBiMap.builder();

    Map<String, AbstractRule> names = Maps.newHashMap();
    Set<String> usedAntlrNames = Sets.newHashSet();
    Set<String> usedUniqueNames = Sets.newHashSet();
    for (AbstractRule rule : allRules) {
        String name = rule.getName();
        simpleNameToRulesBuilder.put(name, rule);
        String qualifiedName = getQualifiedName(rule);
        qualifiedNameToRuleBuilder.put(qualifiedName, rule);
        String uniqueName = name;
        String antlrRuleName;
        if (names.containsKey(name)) {
            name = qualifiedName;
            uniqueName = getInheritedUniqueName(rule, usedUniqueNames);
            antlrRuleName = getInheritedAntlrRuleName(rule, usedAntlrNames);
        } else {
            antlrRuleName = getDefaultAntlrRuleName(rule);
        }
        names.put(name, rule);
        if (!usedUniqueNames.add(uniqueName)) {
            throw new IllegalStateException(uniqueName);
        }
        uniqueNameToRuleBuilder.put(uniqueName, rule);
        if (!usedAntlrNames.add(antlrRuleName)) {
            throw new IllegalStateException(antlrRuleName);
        }
        antlrNameToRuleBuilder.put(antlrRuleName, rule);
        if (installAdapter) {
            installAdapterIfMissing(adapter, rule);
        }
    }
    simpleNameToRules = simpleNameToRulesBuilder.build();
    qualifiedNameToRule = qualifiedNameToRuleBuilder.build();
    nameToRule = ImmutableBiMap.copyOf(names);
    uniqueNameToRule = uniqueNameToRuleBuilder.build();
    antlrNameToRule = antlrNameToRuleBuilder.build();
    this.allRules = ImmutableList.copyOf(allRules);
}

From source file:rx.transformer.GuavaTransformers.java

/**
 * Returns a Transformer&lt;T,ImmutableListMultimap&lt;K,V&gt;&gt that maps an Observable&lt;T&gt; to an Observable&lt;ImmutableListMultimap&lt;K,V&gt;&gt><br><br>
 * with a given Func1&lt;T,K&gt; keyMapper and Func1&lt;T,V&gt; valueMapper
 *//*from www. ja  va  2 s.  com*/
public static <T, K, V> Observable.Transformer<T, ImmutableListMultimap<K, V>> toImmutableListMultimap(
        final Func1<T, K> keyMapper, final Func1<T, V> valueMapper) {
    return new Observable.Transformer<T, ImmutableListMultimap<K, V>>() {
        @Override
        public Observable<ImmutableListMultimap<K, V>> call(Observable<T> observable) {
            return observable.collect(new Func0<ImmutableListMultimap.Builder<K, V>>() {
                @Override
                public ImmutableListMultimap.Builder<K, V> call() {
                    return ImmutableListMultimap.builder();
                }
            }, new Action2<ImmutableListMultimap.Builder<K, V>, T>() {
                @Override
                public void call(ImmutableListMultimap.Builder<K, V> builder, T t) {
                    builder.put(keyMapper.call(t), valueMapper.call(t));
                }
            }).map(new Func1<ImmutableListMultimap.Builder<K, V>, ImmutableListMultimap<K, V>>() {
                @Override
                public ImmutableListMultimap<K, V> call(ImmutableListMultimap.Builder<K, V> builder) {
                    return builder.build();
                }
            });
        }
    };
}

From source file:io.airlift.jaxrs.testing.JaxrsTestingHttpProcessor.java

@Override
public Response handle(Request request) throws Exception {
    // prepare request to jax-rs resource
    MultivaluedMap<String, Object> requestHeaders = new MultivaluedHashMap<>();
    for (Map.Entry<String, String> entry : request.getHeaders().entries()) {
        requestHeaders.add(entry.getKey(), entry.getValue());
    }//from   w w w.  java  2s.com
    Invocation.Builder invocationBuilder = client.target(request.getUri()).request().headers(requestHeaders);
    Invocation invocation;
    if (request.getBodyGenerator() == null) {
        invocation = invocationBuilder.build(request.getMethod());
    } else {
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        request.getBodyGenerator().write(byteArrayOutputStream);
        byteArrayOutputStream.close();
        byte[] bytes = byteArrayOutputStream.toByteArray();
        Entity<byte[]> entity = Entity.entity(bytes,
                (String) getOnlyElement(requestHeaders.get("Content-Type")));
        invocation = invocationBuilder.build(request.getMethod(), entity);
    }

    // issue request, and handle exceptions
    javax.ws.rs.core.Response result;
    try {
        result = invocation.invoke(javax.ws.rs.core.Response.class);
    } catch (ProcessingException exception) {
        if (trace) {
            log.warn(exception.getCause(), "%-8s %s -> Exception", request.getMethod(), request.getUri());
        }
        // Peel out the exception we threw in jax-rs resource implementation
        // to facilitate testing exceptional paths
        if (exception.getCause() instanceof Exception) {
            throw (Exception) exception.getCause();
        }
        throw exception;
    } catch (Throwable throwable) {
        if (trace) {
            log.warn(throwable, "%-8s %s -> Fail", request.getMethod(), request.getUri());
        }
        throw throwable;
    }

    // process response from jax-rs resource
    ImmutableListMultimap.Builder<String, String> responseHeaders = ImmutableListMultimap.builder();
    for (Map.Entry<String, List<String>> headerEntry : result.getStringHeaders().entrySet()) {
        for (String value : headerEntry.getValue()) {
            responseHeaders.put(headerEntry.getKey(), value);
        }
    }

    if (trace) {
        log.warn("%-8s %s -> OK", request.getMethod(), request.getUri());
    }
    return new TestingResponse(HttpStatus.fromStatusCode(result.getStatus()), responseHeaders.build(),
            result.readEntity(byte[].class));
}

From source file:auto.cursor.processor.AbstractMethodExtractor.java

ImmutableListMultimap<String, String> abstractMethods(JavaTokenizer tokenizer, String packageName) {
    ImmutableListMultimap.Builder<String, String> abstractMethods = ImmutableListMultimap.builder();
    Deque<String> classStack = new ArrayDeque<String>();
    classStack.addLast(packageName);//from  www  .j  ava2 s.c  om
    int braceDepth = 1;
    boolean sawAbstract = false;
    String className = null;
    for (String previousToken = "", token = tokenizer
            .nextToken(); token != null; previousToken = token, token = tokenizer.nextToken()) {
        boolean topLevel = (braceDepth == classStack.size());
        if (className != null) {
            if (Character.isJavaIdentifierStart(className.charAt(0)) && !className.equals("instanceof")) {
                String container = classStack.getLast();
                // container might be empty in the case of a packageless class
                classStack.add(container.isEmpty() ? className : container + "." + className);
            }
            className = null;
        }
        if (token.equals("{")) {
            braceDepth++;
            sawAbstract = false;
        } else if (token.equals("}")) {
            braceDepth--;
            if (topLevel) {
                classStack.removeLast();
            }
        } else if (topLevel) {
            if (token.equals("class") || token.equals("interface")) {
                className = tokenizer.nextToken();
            } else if (token.equals("abstract")) {
                sawAbstract = true;
            } else if (token.equals("(")) {
                if (sawAbstract && Character.isJavaIdentifierStart(previousToken.charAt(0))) {
                    abstractMethods.put(classStack.getLast(), previousToken);
                }
                sawAbstract = false;
            }
        }
    }
    return abstractMethods.build();
}

From source file:co.paralleluniverse.comsat.webactors.servlet.ServletHttpRequest.java

@Override
public Multimap<String, String> getParameters() {
    if (params == null) {
        ImmutableListMultimap.Builder<String, String> mm = ImmutableListMultimap.builder();
        for (Enumeration<String> ps = request.getParameterNames(); ps.hasMoreElements();) {
            String p = ps.nextElement();
            String[] pvs = request.getParameterValues(p);
            if (pvs != null) {
                for (String pv : pvs)
                    mm.put(p, pv);//  w  w  w  .j ava  2  s . c  om
            }
        }
        this.params = mm.build();
    }
    return params;
}

From source file:com.google.auto.value.processor.AbstractMethodExtractor.java

ImmutableListMultimap<String, String> abstractMethods(EclipseHackTokenizer tokenizer, String packageName) {
    ImmutableListMultimap.Builder<String, String> abstractMethods = ImmutableListMultimap.builder();
    Deque<String> classStack = new ArrayDeque<String>();
    classStack.addLast(packageName);//from   w w  w  .  j  a  v  a  2 s.  c o m
    int braceDepth = 1;
    boolean sawAbstract = false;
    String className = null;
    for (String previousToken = "", token = tokenizer
            .nextToken(); token != null; previousToken = token, token = tokenizer.nextToken()) {
        boolean topLevel = (braceDepth == classStack.size());
        if (className != null) {
            if (Character.isJavaIdentifierStart(className.charAt(0)) && !className.equals("instanceof")) {
                String container = classStack.getLast();
                // container might be empty in the case of a packageless class
                classStack.add(container.isEmpty() ? className : container + "." + className);
            }
            className = null;
        }
        if (token.equals("{")) {
            braceDepth++;
            sawAbstract = false;
        } else if (token.equals("}")) {
            braceDepth--;
            if (topLevel) {
                classStack.removeLast();
            }
        } else if (topLevel) {
            if (token.equals("class") || token.equals("interface")) {
                className = tokenizer.nextToken();
            } else if (token.equals("abstract")) {
                sawAbstract = true;
            } else if (token.equals("(")) {
                if (sawAbstract && Character.isJavaIdentifierStart(previousToken.charAt(0))) {
                    abstractMethods.put(classStack.getLast(), previousToken);
                }
                sawAbstract = false;
            }
        }
    }
    return abstractMethods.build();
}