List of usage examples for com.google.common.collect ImmutableList size
int size();
From source file:com.todoroo.astrid.service.StartupService.java
private void removeDuplicateTagMetadata(String uuid) { Criterion fullCriterion = Criterion.and(Metadata.KEY.eq(TaskToTagMetadata.KEY), TaskToTagMetadata.TAG_UUID.eq(uuid), Metadata.DELETION_DATE.eq(0)); List<Metadata> metadatas = metadataDao.toList(fullCriterion); ImmutableListMultimap<Long, Metadata> metadataByTask = Multimaps.index(metadatas, Metadata::getTask); for (Long key : metadataByTask.keySet()) { ImmutableList<Metadata> tagData = metadataByTask.get(key); for (int i = 1; i < tagData.size(); i++) { metadataDao.delete(tagData.get(i).getId()); }/* w w w . j a va2 s. c o m*/ } }
From source file:org.prebake.service.plan.Recipe.java
void cookIngredients(ImmutableList<Ingredient> ingredients) { synchronized (this) { outstanding += ingredients.size(); }/* w w w . j a v a 2s. co m*/ for (final Ingredient ingredient : ingredients) { cook.cook(ingredient, new Function<Boolean, Void>() { public Void apply(Boolean success) { if (Boolean.TRUE.equals(success)) { final ImmutableList.Builder<Ingredient> readyToCook = ImmutableList.builder(); synchronized (nIngredientsNeeded) { for (Ingredient postReq : ingredient.postRequisites) { Integer nNeededInt = nIngredientsNeeded.get(postReq); int nNeeded = nNeededInt != null ? nNeededInt.intValue() : postReq.preRequisites.size(); if (nNeeded == 1) { nIngredientsNeeded.remove(postReq); readyToCook.add(postReq); } else { nIngredientsNeeded.put(postReq, nNeeded - 1); } } } cookIngredients(readyToCook.build()); } else { failed = true; } synchronized (this) { if (--outstanding != 0) { return null; } } cook.done(!failed); return null; } }); } }
From source file:com.publictransitanalytics.scoregenerator.walking.ForwardTimeTracker.java
@Override public boolean shouldReplace(final MovementPath currentPath, final LocalDateTime otherTime) { final ImmutableList<Movement> movements = currentPath.getMovements(); if (movements.isEmpty()) { return false; }/*from w w w . j a va 2s .co m*/ final Movement terminal = movements.get(movements.size() - 1); return otherTime.isBefore(terminal.getEndTime()); }
From source file:com.google.javascript.refactoring.FixingErrorManager.java
@Override public void report(CheckLevel level, JSError error) { super.report(level, error); if (!unfixableErrors.contains(error.getType())) { ImmutableList<SuggestedFix> fixes = ErrorToFixMapper.getFixesForJsError(error, compiler); if (fixes.size() == 1) { sureFixes.put(error, fixes.get(0)); } else {//from w ww .j a v a2s.c o m multiFixes.putAll(error, fixes); } } }
From source file:com.google.devtools.bazel.e4b.wizard.BazelTargetCompletionContentProposalProvider.java
@Override public IContentProposal[] getProposals(String contents, int position) { if (bazel == null) { return null; }//from w w w. j a v a 2 s. c om try { ImmutableList<String> completions = bazel.complete(contents.substring(0, position)); if (completions != null) { IContentProposal[] result = new IContentProposal[completions.size()]; int i = 0; for (String s : completions) { result[i] = new ContentProposal(s); i++; } return result; } } catch (IOException e) { Activator.error("Failed to run Bazel to get completion information", e); } catch (InterruptedException e) { Activator.error("Bazel was interrupted", e); } return null; }
From source file:com.palantir.atlasdb.keyvalue.impl.RemotingKeyValueService.java
@Override public ClosableIterator<RowResult<Value>> getRange(String tableName, RangeRequest range, long timestamp) { ClosableIterator<RowResult<Value>> it = super.getRange(tableName, range, timestamp); try {//w w w .ja va 2 s . c o m int pageSize = range.getBatchHint() != null ? range.getBatchHint() : 100; if (pageSize == 1) { pageSize = 2; } ImmutableList<RowResult<Value>> page = ImmutableList.copyOf(Iterators.limit(it, pageSize)); if (page.size() < pageSize) { return new RangeIterator(tableName, range, timestamp, false, page); } else { return new RangeIterator(tableName, range, timestamp, true, page.subList(0, pageSize - 1)); } } finally { it.close(); } }
From source file:org.gradle.api.internal.artifacts.ivyservice.modulecache.ModuleComponentResolveMetadataSerializer.java
private void writeOwners(Encoder encoder, ImmutableList<? extends ComponentIdentifier> platformOwners) throws IOException { encoder.writeSmallInt(platformOwners.size()); for (ComponentIdentifier platformOwner : platformOwners) { writeComponentIdentifier(encoder, (ModuleComponentIdentifier) platformOwner); }//from www .j av a 2s.c o m }
From source file:com.github.rinde.rinsim.central.GlobalStateObject.java
/** * Constructs a new {@link GlobalStateObject} using the routes specified. * @param routes The routes to use, this will replace any existing routes in * the vehicles. Exactly one route must be specified for each * vehicle.//from w w w.j a v a2 s. c o m * @return A newly constructed {@link GlobalStateObject} that only differs * from the current object in the vehicles' routes. */ public GlobalStateObject withRoutes(ImmutableList<ImmutableList<Parcel>> routes) { checkArgument(routes.size() == getVehicles().size()); final ImmutableList.Builder<VehicleStateObject> b = ImmutableList.builder(); for (int i = 0; i < getVehicles().size(); i++) { b.add(getVehicles().get(i).withRoute(routes.get(i))); } return create(getAvailableParcels(), b.build(), getTime(), getTimeUnit(), getSpeedUnit(), getDistUnit()); }
From source file:com.facebook.buck.cxx.AbstractNewPrebuiltCxxLibraryPaths.java
private <T> Optional<T> getParameter(String parameter, Optional<T> element, CxxPlatform cxxPlatform, Optional<PatternMatchedCollection<T>> platformElement, Optional<ImmutableMap<BuildTarget, Version>> selectedVersions, Optional<VersionMatchedCollection<T>> versionedElement) { if (element.isPresent()) { return element; }/* w w w . j a va2s . c o m*/ if (platformElement.isPresent()) { ImmutableList<T> matches = platformElement.get().getMatchingValues(cxxPlatform.getFlavor().toString()); if (matches.size() != 1) { throw new HumanReadableException("%s: %s: expected a single match for platform %s, but found %s", getTarget(), parameter, cxxPlatform.getFlavor(), matches); } return Optional.of(matches.get(0)); } if (selectedVersions.isPresent() && versionedElement.isPresent()) { return Optional.of( versionedElement.get().getOnlyMatchingValue(getTarget().toString(), selectedVersions.get())); } return Optional.empty(); }
From source file:org.locationtech.geogig.api.plumbing.merge.MergeFeaturesOp.java
@SuppressWarnings("unchecked") private Feature merge(RevFeature featureA, RevFeature featureB, RevFeature ancestor, RevFeatureType featureType) {/*from w w w . ja v a 2 s. co m*/ SimpleFeatureBuilder featureBuilder = new SimpleFeatureBuilder((SimpleFeatureType) featureType.type()); ImmutableList<Optional<Object>> valuesA = featureA.getValues(); ImmutableList<Optional<Object>> valuesB = featureB.getValues(); ImmutableList<Optional<Object>> valuesAncestor = ancestor.getValues(); ImmutableList<PropertyDescriptor> descriptors = featureType.sortedDescriptors(); for (int i = 0; i < descriptors.size(); i++) { PropertyDescriptor descriptor = descriptors.get(i); boolean isGeom = Geometry.class.isAssignableFrom(descriptor.getType().getBinding()); Name name = descriptor.getName(); Optional<Object> valueAncestor = valuesAncestor.get(i); Optional<Object> valueA = valuesA.get(i); Optional<Object> valueB = valuesB.get(i); if (!valueA.equals(valueAncestor)) { Optional<Object> merged = valueA; if (isGeom && !valueB.equals(valueAncestor)) { // true merge is only done with // geometries GeometryAttributeDiff diffB = new GeometryAttributeDiff( Optional.fromNullable((Geometry) valueAncestor.orNull()), Optional.fromNullable((Geometry) valueB.orNull())); merged = (Optional<Object>) diffB.applyOn(valueA); } featureBuilder.set(name, merged.orNull()); } else { featureBuilder.set(name, valueB.orNull()); } } return featureBuilder.buildFeature(nodeRefA.name()); }