List of usage examples for com.google.common.collect ImmutableList size
int size();
From source file:com.facebook.buck.js.JsBundleGenrule.java
@Override public ImmutableList<Step> getBuildSteps(BuildContext context, BuildableContext buildableContext) { SourcePathResolver sourcePathResolver = context.getSourcePathResolver(); ImmutableList<Step> buildSteps = super.getBuildSteps(context, buildableContext); OptionalInt lastRmStep = IntStream.range(0, buildSteps.size()).map(x -> buildSteps.size() - 1 - x) .filter(i -> buildSteps.get(i) instanceof RmStep).findFirst(); Preconditions.checkState(lastRmStep.isPresent(), "Genrule is expected to have at least on RmDir step"); ImmutableList.Builder<Step> builder = ImmutableList.<Step>builder() // First, all Genrule steps including the last RmDir step are added .addAll(buildSteps.subList(0, lastRmStep.getAsInt() + 1)) // Our MkdirStep must run after all RmSteps created by Genrule to prevent immediate // deletion of the directory. It must, however, run before the genrule command itself // runs. .add(MkdirStep.of(BuildCellRelativePath.fromCellRelativePath(context.getBuildCellRootPath(), getProjectFilesystem(), sourcePathResolver.getRelativePath(getSourcePathToOutput())))); if (rewriteSourcemap) { // If the genrule rewrites the source map, we have to create the parent dir, and record // the build artifact SourcePath sourcePathToSourceMap = getSourcePathToSourceMap(); buildableContext.recordArtifact(sourcePathResolver.getRelativePath(sourcePathToSourceMap)); builder.add(MkdirStep.of(BuildCellRelativePath.fromCellRelativePath(context.getBuildCellRootPath(), getProjectFilesystem(),//from w w w .j a v a 2s. c o m sourcePathResolver.getRelativePath(sourcePathToSourceMap).getParent()))); } if (rewriteMisc) { // If the genrule rewrites the misc folder, we have to create the corresponding dir, and // record its contents SourcePath miscDirPath = getSourcePathToMisc(); buildableContext.recordArtifact(sourcePathResolver.getRelativePath(miscDirPath)); builder.add(MkdirStep.of(BuildCellRelativePath.fromCellRelativePath(context.getBuildCellRootPath(), getProjectFilesystem(), sourcePathResolver.getRelativePath(miscDirPath)))); } // Last, we add all remaining genrule commands after the last RmStep return builder.addAll(buildSteps.subList(lastRmStep.getAsInt() + 1, buildSteps.size())).build(); }
From source file:com.facebook.buck.rules.coercer.CxxGenruleFilterAndTargetsMacroTypeCoercer.java
@Override public M coerce(CellPathResolver cellRoots, ProjectFilesystem filesystem, Path pathRelativeToProjectRoot, TargetConfiguration targetConfiguration, ImmutableList<String> args) throws CoerceFailedException { if (args.isEmpty() && patternTypeCoercer.isPresent()) { throw new CoerceFailedException( String.format("expected at least one argument (found %d)", args.size())); }/*from ww w . j a v a 2 s . com*/ Queue<String> mArgs = new ArrayDeque<>(args); // Parse filter arg. Optional<Pattern> filter = Optional.empty(); if (patternTypeCoercer.isPresent()) { filter = Optional.of(patternTypeCoercer.get().coerce(cellRoots, filesystem, pathRelativeToProjectRoot, targetConfiguration, mArgs.remove())); } // Parse build target args. ImmutableList<BuildTarget> targets = buildTargetsTypeCoercer.coerce(cellRoots, filesystem, pathRelativeToProjectRoot, targetConfiguration, mArgs); return factory.apply(filter, targets); }
From source file:com.google.javascript.jscomp.newtypes.JSTypes.java
public JSType getArrayInstance(JSType t) { if (arrayType == null) { return JSType.UNKNOWN; }//from w w w.j av a 2s . co m ImmutableList<String> typeParams = arrayType.getTypeParameters(); JSType result = arrayType.getInstanceAsJSType(); if (typeParams.size() == 1) { String typeParam = Iterables.getOnlyElement(typeParams); result = result.substituteGenerics(ImmutableMap.of(typeParam, t)); } return result; }
From source file:com.facebook.buck.query.DepsFunction.java
/** * Evaluates to the dependencies of the argument. * Breadth first search from the given argument until there are no more unvisited nodes in the * transitive closure or the maximum depth (if supplied) is reached. */// w ww. j av a2 s. c om @Override public Set<QueryTarget> eval(QueryEnvironment env, ImmutableList<Argument> args, ListeningExecutorService executor) throws QueryException, InterruptedException { Set<QueryTarget> argumentSet = args.get(0).getExpression().eval(env, executor); int depthBound = args.size() > 1 ? args.get(1).getInteger() : Integer.MAX_VALUE; env.buildTransitiveClosure(argumentSet, depthBound, executor); // LinkedHashSet preserves the order of insertion when iterating over the values. // The order by which we traverse the result is meaningful because the dependencies are // traversed level-by-level. Set<QueryTarget> result = new LinkedHashSet<>(); Set<QueryTarget> current = argumentSet; // Iterating depthBound+1 times because the first one processes the given argument set. for (int i = 0; i <= depthBound; i++) { Set<QueryTarget> next = env.getFwdDeps(Iterables.filter(current, Predicates.not(result::contains))); result.addAll(current); if (next.isEmpty()) { break; } current = next; } return result; }
From source file:com.google.errorprone.refaster.BlockTemplate.java
@Override public Fix replace(BlockTemplateMatch match) { checkNotNull(match);//from w w w.jav a 2s. c o m SuggestedFix.Builder fix = SuggestedFix.builder(); Inliner inliner = match.createInliner(); Context context = inliner.getContext(); if (annotations().containsKey(UseImportPolicy.class)) { ImportPolicy.bind(context, annotations().getInstance(UseImportPolicy.class).value()); } else { ImportPolicy.bind(context, ImportPolicy.IMPORT_TOP_LEVEL); } ImmutableList<JCStatement> targetStatements = match.getStatements(); try { ImmutableList.Builder<JCStatement> inlinedStatementsBuilder = ImmutableList.builder(); for (UStatement statement : templateStatements()) { inlinedStatementsBuilder.addAll(statement.inlineStatements(inliner)); } ImmutableList<JCStatement> inlinedStatements = inlinedStatementsBuilder.build(); int nInlined = inlinedStatements.size(); int nTargets = targetStatements.size(); if (nInlined <= nTargets) { for (int i = 0; i < nInlined; i++) { fix.replace(targetStatements.get(i), printStatement(context, inlinedStatements.get(i))); } for (int i = nInlined; i < nTargets; i++) { fix.delete(targetStatements.get(i)); } } else { for (int i = 0; i < nTargets - 1; i++) { fix.replace(targetStatements.get(i), printStatement(context, inlinedStatements.get(i))); } int last = nTargets - 1; ImmutableList<JCStatement> remainingInlined = inlinedStatements.subList(last, nInlined); fix.replace(targetStatements.get(last), CharMatcher.whitespace().trimTrailingFrom(printStatements(context, remainingInlined))); } } catch (CouldNotResolveImportException e) { logger.log(SEVERE, "Failure to resolve import in replacement", e); } return addImports(inliner, fix); }
From source file:org.jclouds.cloudsigma2.compute.functions.TemplateOptionsToStatementWithoutPublicKey.java
@Override public Statement apply(TemplateOptions options) { ImmutableList.Builder<Statement> builder = ImmutableList.builder(); if (options.getRunScript() != null) { builder.add(options.getRunScript()); }//from w w w. j a v a 2 s.c om if (options.getPrivateKey() != null) { builder.add(new InstallRSAPrivateKey(options.getPrivateKey())); } ImmutableList<Statement> bootstrap = builder.build(); if (bootstrap.isEmpty()) { return null; } if (options.getTaskName() == null && !(options.getRunScript() instanceof InitScript)) { options.nameTask("bootstrap"); } return bootstrap.size() == 1 ? bootstrap.get(0) : new StatementList(bootstrap); }
From source file:com.facebook.presto.cli.AlignedTuplePrinter.java
@Override public void printRows(List<List<?>> rows, boolean complete) throws IOException { rowCount += rows.size();/*from w ww. j a va 2 s . c o m*/ int columns = fieldNames.size(); int[] maxWidth = new int[columns]; for (int i = 0; i < columns; i++) { maxWidth[i] = max(1, fieldNames.get(i).length()); } for (List<?> row : rows) { for (int i = 0; i < row.size(); i++) { String s = formatValue(row.get(i)); maxWidth[i] = max(maxWidth[i], maxLineLength(s)); } } if (!headerOutput) { headerOutput = true; for (int i = 0; i < columns; i++) { if (i > 0) { writer.append('|'); } String name = fieldNames.get(i); writer.append(center(name, maxWidth[i], 1)); } writer.append('\n'); for (int i = 0; i < columns; i++) { if (i > 0) { writer.append('+'); } writer.append(repeat("-", maxWidth[i] + 2)); } writer.append('\n'); } for (List<?> row : rows) { List<List<String>> columnLines = new ArrayList<>(columns); int maxLines = 1; for (int i = 0; i < columns; i++) { String s = formatValue(row.get(i)); ImmutableList<String> lines = ImmutableList.copyOf(LINE_SPLITTER.split(s)); columnLines.add(lines); maxLines = max(maxLines, lines.size()); } for (int line = 0; line < maxLines; line++) { for (int column = 0; column < columns; column++) { if (column > 0) { writer.append('|'); } List<String> lines = columnLines.get(column); String s = (line < lines.size()) ? lines.get(line) : ""; boolean numeric = row.get(column) instanceof Number; String out = align(s, maxWidth[column], 1, numeric); if ((!complete || (rowCount > 1)) && ((line + 1) < lines.size())) { out = out.substring(0, out.length() - 1) + "+"; } writer.append(out); } writer.append('\n'); } } writer.flush(); }
From source file:com.facebook.buck.remoteexecution.util.MultiThreadedBlobUploader.java
private void processUploads() { processMissing();//from w w w .j av a 2 s. c om ImmutableMap.Builder<String, PendingUpload> dataBuilder = ImmutableMap.builder(); int size = 0; while (size < uploadSizeLimit && !waitingUploads.isEmpty()) { PendingUpload data = waitingUploads.poll(); if (data == null) { break; } dataBuilder.put(data.getHash(), data); size += data.uploadData.digest.getSize(); } ImmutableMap<String, PendingUpload> data = dataBuilder.build(); if (!data.isEmpty()) { try { ImmutableList.Builder<UploadData> blobsBuilder = ImmutableList.builder(); for (PendingUpload entry : data.values()) { blobsBuilder.add(entry.uploadData); } ImmutableList<UploadData> blobs = data.values().stream().map(e -> e.uploadData) .collect(ImmutableList.toImmutableList()); ImmutableList<UploadResult> results = asyncBlobUploader.batchUpdateBlobs(blobs); Preconditions.checkState(results.size() == blobs.size()); results.forEach(result -> { PendingUpload pendingUpload = Objects.requireNonNull(data.get(result.digest.getHash())); if (result.status == 0) { pendingUpload.future.set(null); } else { pendingUpload.future.setException(new IOException( String.format("Failed uploading with message: %s. When uploading blob: %s.", result.message, pendingUpload.uploadData.data.describe()))); } }); data.forEach((k, pending) -> pending.future.setException(new RuntimeException("idk"))); } catch (Exception e) { data.forEach((k, pending) -> pending.future.setException(e)); } } if (!waitingMissingCheck.isEmpty() || !waitingUploads.isEmpty()) { uploadService.submit(this::processUploads); } }
From source file:de.metanome.backend.input.sql.ResultSetTwoLinesFixture.java
public ResultSet getTestData() throws SQLException { ResultSet resultSet = mock(ResultSet.class); ResultSetMetaData resultSetMetaData = mock(ResultSetMetaData.class); // Expected values // Expected column count when(resultSetMetaData.getColumnCount()).thenReturn(numberOfColumns()); // Simulate SQLException when starting count at 0. when(resultSetMetaData.getTableName(0)).thenThrow(new SQLException()); when(resultSetMetaData.getTableName(1)).thenReturn(getExpectedRelationName()); ImmutableList<String> expectedColumnNames = getExpectedColumnNames(); // Simulate SQLException when starting count at 0. when(resultSetMetaData.getColumnName(0)).thenThrow(new SQLException()); for (int i = 0; i < expectedColumnNames.size(); i++) { when(resultSetMetaData.getColumnLabel(i + 1)).thenReturn(expectedColumnNames.get(i)); }//from w ww . j ava 2 s. c o m // Expected values when calling getMetaData when(resultSet.getMetaData()).thenReturn(resultSetMetaData); // Expected values when calling next when(resultSet.next()).thenReturn(getFirstExpectedNextValue(), getExpectedNextValuesExceptFirstAsArray()); List<ImmutableList<String>> expectedRecords = getExpectedRecords(); // Simulate SQLException when starting count at 0. when(resultSet.getString(0)).thenThrow(new SQLException()); // Expected values when calling getString for (int columnIndex = 0; columnIndex < numberOfColumns(); columnIndex++) { when(resultSet.getString(columnIndex + 1)).thenReturn(expectedRecords.get(0).get(columnIndex)) .thenReturn(expectedRecords.get(1).get(columnIndex)); } return resultSet; }
From source file:com.facebook.buck.cxx.toolchain.elf.ElfVerDef.java
public ElfVerDef compact() { return new ElfVerDef(RichStream.from(MoreIterables.enumerate(this.entries)).map(vdp -> { int verdefIndex = vdp.getFirst(); Verdef verdef = vdp.getSecond().getFirst(); ImmutableList<Verdaux> verdauxes = vdp.getSecond().getSecond(); return new Pair<>( new Verdef(verdef.vd_version, verdef.vd_flags, verdef.vd_ndx, verdauxes.size(), verdef.vd_hash, verdauxes.isEmpty() ? 0 : Verdef.BYTES, verdefIndex == entries.size() - 1 ? 0 : Verdef.BYTES + Verdaux.BYTES * verdauxes.size()), RichStream.from(MoreIterables.enumerate(verdauxes)) .map(vdxp -> new Verdaux(vdxp.getSecond().vda_name, vdxp.getFirst() == verdauxes.size() - 1 ? 0 : Verdaux.BYTES)) .toImmutableList()); }).toImmutableList());/*from w ww .jav a 2s . c o m*/ }