Example usage for com.google.common.collect ImmutableList.Builder add

List of usage examples for com.google.common.collect ImmutableList.Builder add

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableList.Builder add.

Prototype

boolean add(E e);

Source Link

Document

Appends the specified element to the end of this list (optional operation).

Usage

From source file:com.google.devtools.build.lib.bazel.rules.android.ndkcrosstools.r17.AndroidNdkCrosstoolsR17.java

private static ImmutableList<DefaultCpuToolchain> getDefaultCpuToolchains(StlImpl stlImpl,
        String clangVersion) {/* w w w  .ja va2 s . c  o  m*/
    // TODO(bazel-team): It would be better to auto-generate this somehow.

    ImmutableMap<String, String> defaultCpus = ImmutableMap.<String, String>builder()
            // arm
            .put("armeabi-v7a", "arm-linux-androideabi-clang" + clangVersion + "-v7a")
            .put("arm64-v8a", "aarch64-linux-android-clang" + clangVersion)

            // x86
            .put("x86", "x86-clang" + clangVersion).put("x86_64", "x86_64-clang" + clangVersion).build();

    ImmutableList.Builder<DefaultCpuToolchain> defaultCpuToolchains = ImmutableList.builder();
    for (Map.Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
        defaultCpuToolchains.add(DefaultCpuToolchain.newBuilder().setCpu(defaultCpu.getKey())
                .setToolchainIdentifier(defaultCpu.getValue() + "-" + stlImpl.getName()).build());
    }
    return defaultCpuToolchains.build();
}

From source file:com.google.devtools.build.lib.skylarkdebug.server.DebuggerSerialization.java

private static ImmutableList<Value> getArrayChildren(Object array) {
    ImmutableList.Builder<Value> builder = ImmutableList.builder();
    int index = 0;
    for (int i = 0; i < Array.getLength(array); i++) {
        builder.add(getValueProto(String.format("[%d]", index++), Array.get(array, i)));
    }//from w  w w  .j a va 2  s. c  om
    return builder.build();
}

From source file:com.torodb.torod.db.backends.query.processors.InProcessor.java

@Nullable
private static ProcessedQueryCriteria getProcessedQuery(InQueryCriteria criteria,
        Multimap<ScalarType, ScalarValue<?>> byTypeValues, ScalarType type) {
    Collection<ScalarValue<?>> values = byTypeValues.get(type);
    if (values.isEmpty()) {
        return null;
    }/*from w  w  w.  ja  v a2 s  . com*/
    ImmutableList.Builder<ScalarValue<?>> newInBuilder = new ImmutableList.Builder();
    for (ScalarValue<?> value : values) {
        newInBuilder.add(value);
    }

    return new ProcessedQueryCriteria(new TypeIsQueryCriteria(criteria.getAttributeReference(), type),
            new InQueryCriteria(criteria.getAttributeReference(), newInBuilder.build()));
}

From source file:io.flutter.bazel.PluginConfig.java

private static @Nullable List<Pattern> compilePatterns(@Nullable Iterable<String> patterns) {
    if (patterns == null)
        return null;

    final ImmutableList.Builder<Pattern> result = ImmutableList.builder();
    for (String regexp : patterns) {
        result.add(Pattern.compile(regexp));
    }/*from w  ww . ja v  a  2  s  .c om*/
    return result.build();
}

From source file:net.hydromatic.optiq.util.graph.Graphs.java

/** Returns a map of the shortest paths between any pair of nodes. */
public static <V, E extends DefaultEdge> FrozenGraph<V, E> makeImmutable(DirectedGraph<V, E> graph) {
    DefaultDirectedGraph<V, E> graph1 = (DefaultDirectedGraph<V, E>) graph;
    Map<Pair<V, V>, List<V>> shortestPaths = new HashMap<Pair<V, V>, List<V>>();
    for (DefaultDirectedGraph.VertexInfo<V, E> arc : graph1.vertexMap.values()) {
        for (E edge : arc.outEdges) {
            final V source = graph1.source(edge);
            final V target = graph1.target(edge);
            shortestPaths.put(Pair.of(source, target), ImmutableList.of(source, target));
        }//from  w ww  .j  a v a  2 s.  c o m
    }
    while (true) {
        // Take a copy of the map's keys to avoid
        // ConcurrentModificationExceptions.
        final List<Pair<V, V>> previous = ImmutableList.copyOf(shortestPaths.keySet());
        int changeCount = 0;
        for (E edge : graph.edgeSet()) {
            for (Pair<V, V> edge2 : previous) {
                if (edge.target.equals(edge2.left)) {
                    final Pair<V, V> key = Pair.of(graph1.source(edge), edge2.right);
                    List<V> bestPath = shortestPaths.get(key);
                    List<V> arc2Path = shortestPaths.get(edge2);
                    if ((bestPath == null) || (bestPath.size() > (arc2Path.size() + 1))) {
                        ImmutableList.Builder<V> newPath = ImmutableList.builder();
                        newPath.add(graph1.source(edge));
                        newPath.addAll(arc2Path);
                        shortestPaths.put(key, newPath.build());
                        changeCount++;
                    }
                }
            }
        }
        if (changeCount == 0) {
            break;
        }
    }
    return new FrozenGraph<V, E>(graph1, shortestPaths);
}

From source file:se.kth.climate.fast.netcdf.aligner.VariableAlignment.java

public static VariableAlignment of(List<Pair<VariableAssignment, VariableFit>> vavfs) {
    final ImmutableList.Builder<VariableAssignment> vas = ImmutableList.builder();
    final ImmutableList.Builder<VariableFit> vfs = ImmutableList.builder();
    vavfs.forEach((vavf) -> {//  w  w  w  .j  a  v a2s .co  m
        vas.add(vavf.getValue0());
        vfs.add(vavf.getValue1());
    });
    return new VariableAlignment(vas.build(), vfs.build());
}

From source file:com.android.builder.core.BootClasspathBuilder.java

@NonNull
public static ImmutableList<File> computeFullBootClasspath(@NonNull IAndroidTarget target,
        @NonNull File annotationsJar) {
    Preconditions.checkNotNull(target);/*from w  ww . jav  a  2 s .co  m*/
    Preconditions.checkNotNull(annotationsJar);

    ImmutableList.Builder<File> classpath = ImmutableList.builder();

    for (String p : target.getBootClasspath()) {
        classpath.add(new File(p));
    }

    // add additional libraries if any
    List<IAndroidTarget.OptionalLibrary> libs = target.getAdditionalLibraries();
    for (IAndroidTarget.OptionalLibrary lib : libs) {
        File jar = lib.getJar();
        Verify.verify(jar != null, "Jar missing from additional library %s.", lib.getName());
        classpath.add(jar);
    }

    // add optional libraries if any
    List<IAndroidTarget.OptionalLibrary> optionalLibraries = target.getOptionalLibraries();
    for (IAndroidTarget.OptionalLibrary lib : optionalLibraries) {
        File jar = lib.getJar();
        Verify.verify(jar != null, "Jar missing from optional library %s.", lib.getName());
        classpath.add(jar);
    }

    // add annotations.jar if needed.
    if (target.getVersion().getApiLevel() <= 15) {
        classpath.add(annotationsJar);
    }

    return classpath.build();
}

From source file:dk.ilios.spanner.benchmark.Parameter.java

private static ImmutableList<String> findDefaults(Field field) {
    String[] defaultsAsStrings = field.getAnnotation(Param.class).value();
    if (defaultsAsStrings.length > 0) {
        return ImmutableList.copyOf(defaultsAsStrings);
    }/*w w w.j a v a  2 s .co m*/

    Class<?> type = field.getType();
    if (type == boolean.class) {
        return ALL_BOOLEANS;
    }

    if (type.isEnum()) {
        ImmutableList.Builder<String> builder = ImmutableList.builder();
        for (Object enumConstant : type.getEnumConstants()) {
            builder.add(enumConstant.toString());
        }
        return builder.build();
    }
    return ImmutableList.of();
}

From source file:com.google.devtools.build.lib.bazel.rules.android.ndkcrosstools.r12.AndroidNdkCrosstoolsR12.java

private static ImmutableList<DefaultCpuToolchain> getDefaultCpuToolchains(StlImpl stlImpl) {
    // TODO(bazel-team): It would be better to auto-generate this somehow.

    ImmutableMap<String, String> defaultCpus = ImmutableMap.<String, String>builder()
            // arm
            .put("armeabi", "arm-linux-androideabi-4.9").put("armeabi-v7a", "arm-linux-androideabi-4.9-v7a")
            .put("arm64-v8a", "aarch64-linux-android-4.9")

            // mips
            .put("mips", "mipsel-linux-android-4.9").put("mips64", "mips64el-linux-android-4.9")

            // x86
            .put("x86", "x86-4.9").put("x86_64", "x86_64-4.9").build();

    ImmutableList.Builder<DefaultCpuToolchain> defaultCpuToolchains = ImmutableList.builder();
    for (Entry<String, String> defaultCpu : defaultCpus.entrySet()) {
        defaultCpuToolchains.add(DefaultCpuToolchain.newBuilder().setCpu(defaultCpu.getKey())
                .setToolchainIdentifier(defaultCpu.getValue() + "-" + stlImpl.getName()).build());
    }/*www. ja  v  a2  s  . c  om*/
    return defaultCpuToolchains.build();
}

From source file:io.prestosql.sql.gen.VarArgsToArrayAdapterGenerator.java

public static MethodHandleAndConstructor generateVarArgsToArrayAdapter(Class<?> returnType, Class<?> javaType,
        int argsLength, MethodHandle function, MethodHandle userStateFactory) {
    requireNonNull(returnType, "returnType is null");
    requireNonNull(javaType, "javaType is null");
    requireNonNull(function, "function is null");
    requireNonNull(userStateFactory, "userStateFactory is null");

    checkCondition(argsLength <= 253, NOT_SUPPORTED, "Too many arguments for vararg function");

    MethodType methodType = function.type();
    Class<?> javaArrayType = toArrayClass(javaType);
    checkArgument(methodType.returnType() == returnType, "returnType does not match");
    checkArgument(methodType.parameterList().equals(ImmutableList.of(Object.class, javaArrayType)),
            "parameter types do not match");

    CallSiteBinder callSiteBinder = new CallSiteBinder();
    ClassDefinition classDefinition = new ClassDefinition(a(PUBLIC, FINAL),
            makeClassName("VarArgsToListAdapter"), type(Object.class));
    classDefinition.declareDefaultConstructor(a(PRIVATE));

    // generate userState constructor
    MethodDefinition stateFactoryDefinition = classDefinition.declareMethod(a(PUBLIC, STATIC), "createState",
            type(VarArgsToArrayAdapterState.class));

    stateFactoryDefinition.getBody().comment("create userState for current instance").append(newInstance(
            VarArgsToArrayAdapterState.class, loadConstant(callSiteBinder, userStateFactory, MethodHandle.class)
                    .invoke("invokeExact", Object.class),
            newArray(type(javaArrayType), argsLength).cast(Object.class)).ret());

    // generate adapter method
    ImmutableList.Builder<Parameter> parameterListBuilder = ImmutableList.builder();
    parameterListBuilder.add(arg("userState", VarArgsToArrayAdapterState.class));
    for (int i = 0; i < argsLength; i++) {
        parameterListBuilder.add(arg("input_" + i, javaType));
    }/*from   w  w w .ja  v a  2s .  c o  m*/
    ImmutableList<Parameter> parameterList = parameterListBuilder.build();

    MethodDefinition methodDefinition = classDefinition.declareMethod(a(PUBLIC, STATIC), "varArgsToArray",
            type(returnType), parameterList);
    BytecodeBlock body = methodDefinition.getBody();

    BytecodeExpression userState = parameterList.get(0).getField("userState", Object.class);
    BytecodeExpression args = parameterList.get(0).getField("args", Object.class).cast(javaArrayType);
    for (int i = 0; i < argsLength; i++) {
        body.append(args.setElement(i, parameterList.get(i + 1)));
    }

    body.append(loadConstant(callSiteBinder, function, MethodHandle.class)
            .invoke("invokeExact", returnType, userState, args).ret());

    // define class
    Class<?> generatedClass = defineClass(classDefinition, Object.class, callSiteBinder.getBindings(),
            VarArgsToArrayAdapterGenerator.class.getClassLoader());
    return new MethodHandleAndConstructor(
            Reflection.methodHandle(generatedClass, "varArgsToArray",
                    ImmutableList.builder().add(VarArgsToArrayAdapterState.class)
                            .addAll(nCopies(argsLength, javaType)).build().toArray(new Class<?>[argsLength])),
            Reflection.methodHandle(generatedClass, "createState"));
}