com.google.common.collect.Iterables#isEmpty ( )源码实例Demo

下面列出了com.google.common.collect.Iterables#isEmpty ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: dremio-oss   文件: DependencyManager.java
public void setDependencies(final ReflectionId reflectionId, ExtractedDependencies extracted) throws DependencyException {
  Preconditions.checkState(!extracted.isEmpty(), "expected non empty dependencies");

  Set<DependencyEntry> dependencies = extracted.getPlanDependencies();

  if (Iterables.isEmpty(dependencies)) {
    // no plan dependencies found, use decision dependencies instead
    graph.setDependencies(reflectionId, extracted.getDecisionDependencies());
    return;
  }

  // if P > R1 > R2 and R2 is either FAILED or DEPRECATED we should exclude it from the dependencies and include
  // all datasets instead. We do this to avoid never refreshing R2 again if R1 is never refreshed
  // Note that even though delete(R1) will also update R2 dependencies, it may not be enough if R2 was refreshing
  // while the update happens as setDependencies(R2, ...) would overwrite the update, that's why we include all the datasets
  if (Iterables.any(dependencies, isDeletedReflection)) {
    // filter out deleted reflections, and include all dataset dependencies
    dependencies = FluentIterable.from(dependencies)
      .filter(not(isDeletedReflection))
      .append(extracted.getDecisionDependencies())
      .toSet();
  }

  graph.setDependencies(reflectionId, dependencies);
}
 
源代码2 项目: dremio-oss   文件: AccelerationStoragePlugin.java
private void deleteOwnedRefreshes(Materialization materialization, SchemaConfig schemaConfig) {
  Iterable<Refresh> refreshes = materializationStore.getRefreshesExclusivelyOwnedBy(materialization);
  if (Iterables.isEmpty(refreshes)) {
    logger.debug("deleted materialization {} has no associated refresh");
    return;
  }

  for (Refresh r : refreshes) {
    try {
      //TODO once DX-10850 is fixed we should no longer need to split the refresh path into separate components
      final List<String> tableSchemaPath = ImmutableList.<String>builder()
        .add(ReflectionServiceImpl.ACCELERATOR_STORAGEPLUGIN_NAME)
        .addAll(PathUtils.toPathComponents(r.getPath()))
        .build();
      logger.debug("deleting refresh {}", tableSchemaPath);
      super.dropTable(tableSchemaPath, false, schemaConfig);
    } catch (Exception e) {
      logger.warn("Couldn't delete refresh {}", r.getId().getId(), e);
    } finally {
      materializationStore.delete(r.getId());
    }
  }
}
 
源代码3 项目: immutables   文件: Inliner.java
private void addBodyIfNecessary(
    ForStatement.Builder builder,
    List<Trees.Expression> params,
    Iterable<? extends Trees.TemplatePart> bodyParts) {
  // body goes as one special parameter, don't handle other mismatches
  if (Iterables.isEmpty(bodyParts)) {
    return;
  }

  Preconditions.checkState(inlinable.declaration().parameters().size() == params.size() + 1);

  Trees.Parameter lastParameter = Iterables.getLast(inlinable.declaration().parameters());

  LetStatement.Builder letBuilder = LetStatement.builder()
      .addAllParts(bodyParts)
      .declaration(InvokableDeclaration.builder()
          .name(remappedIdentifier(lastParameter.name()))
          .build());

  remapped.add(lastParameter.name());
  builder.addParts(letBuilder.build());
}
 
源代码4 项目: bazel   文件: VanillaJavaBuilder.java
/** Sets the compilation search paths and output directories. */
private static void setLocations(
    OptionsParser optionsParser, StandardJavaFileManager fileManager, Path nativeHeaderDir)
    throws IOException {
  fileManager.setLocation(StandardLocation.CLASS_PATH, toFiles(optionsParser.getClassPath()));
  Iterable<File> bootClassPath = toFiles(optionsParser.getBootClassPath());
  // The bootclasspath may legitimately be empty if --release is being used.
  if (!Iterables.isEmpty(bootClassPath)) {
    fileManager.setLocation(StandardLocation.PLATFORM_CLASS_PATH, bootClassPath);
  }
  fileManager.setLocation(
      StandardLocation.ANNOTATION_PROCESSOR_PATH, toFiles(optionsParser.getProcessorPath()));
  if (optionsParser.getSourceGenDir() != null) {
    setOutputLocation(
        fileManager, StandardLocation.SOURCE_OUTPUT, Paths.get(optionsParser.getSourceGenDir()));
  }
  if (optionsParser.getNativeHeaderOutput() != null) {
    setOutputLocation(fileManager, StandardLocation.NATIVE_HEADER_OUTPUT, nativeHeaderDir);
  }
  setOutputLocation(
      fileManager, StandardLocation.CLASS_OUTPUT, Paths.get(optionsParser.getClassDir()));
}
 
源代码5 项目: endpoints-java   文件: ApiConfigValidator.java
/**
 * Validates all configurations for a single API.  Makes sure the API-level configuration matches
 * for all classes and that the contained configuration is valid and can be turned into a *.api
 * file.  Only checks for swarm-specific validity.  Apiary FE may still dislike a config for its
 * own reasons.
 *
 * @throws ApiConfigInvalidException on any invalid API-wide configuration.
 * @throws ApiClassConfigInvalidException on any invalid API class configuration.
 * @throws ApiMethodConfigInvalidException on any invalid API method configuration.
 * @throws ApiParameterConfigInvalidException on any invalid API parameter configuration.
 */
public void validate(Iterable<? extends ApiConfig> apiConfigs)
    throws ApiConfigInvalidException, ApiClassConfigInvalidException,
    ApiMethodConfigInvalidException, ApiParameterConfigInvalidException {
  if (Iterables.isEmpty(apiConfigs)) {
    return;
  }

  Map<String, ApiMethodConfig> restfulSignatures = Maps.newHashMap();

  Iterator<? extends ApiConfig> i = apiConfigs.iterator();
  ApiConfig first = i.next();
  validate(first, restfulSignatures);

  while (i.hasNext()) {
    ApiConfig config = i.next();
    Iterable<ApiConfigInconsistency<Object>> inconsistencies =
        config.getConfigurationInconsistencies(first);
    if (!Iterables.isEmpty(inconsistencies)) {
      throw new InconsistentApiConfigurationException(config, first, inconsistencies);
    }
    validate(config, restfulSignatures);
  }
}
 
@Override
public Map<PackageIdentifier, Package> bulkGetPackages(Iterable<PackageIdentifier> pkgIds)
    throws NoSuchPackageException, InterruptedException {
  Set<SkyKey> pkgKeys = ImmutableSet.copyOf(PackageValue.keys(pkgIds));

  ImmutableMap.Builder<PackageIdentifier, Package> pkgResults = ImmutableMap.builder();
  Map<SkyKey, SkyValue> packages = graph.getSuccessfulValues(pkgKeys);
  for (Map.Entry<SkyKey, SkyValue> pkgEntry : packages.entrySet()) {
    PackageIdentifier pkgId = (PackageIdentifier) pkgEntry.getKey().argument();
    PackageValue pkgValue = (PackageValue) pkgEntry.getValue();
    pkgResults.put(pkgId, Preconditions.checkNotNull(pkgValue.getPackage(), pkgId));
  }

  SetView<SkyKey> unknownKeys = Sets.difference(pkgKeys, packages.keySet());
  if (!Iterables.isEmpty(unknownKeys)) {
    logger.atWarning().log(
        "Unable to find %s in the batch lookup of %s. Successfully looked up %s",
        unknownKeys, pkgKeys, packages.keySet());
  }
  for (Map.Entry<SkyKey, Exception> missingOrExceptionEntry :
      graph.getMissingAndExceptions(unknownKeys).entrySet()) {
    PackageIdentifier pkgIdentifier =
        (PackageIdentifier) missingOrExceptionEntry.getKey().argument();
    Exception exception = missingOrExceptionEntry.getValue();
    if (exception == null) {
      // If the package key does not exist in the graph, then it must not correspond to any
      // package, because the SkyQuery environment has already loaded the universe.
      throw new BuildFileNotFoundException(pkgIdentifier, "Package not found");
    }
    Throwables.propagateIfInstanceOf(exception, NoSuchPackageException.class);
    Throwables.propagate(exception);
  }
  return pkgResults.build();
}
 
源代码7 项目: bazel   文件: BuildEventStreamer.java
@SuppressWarnings("GuardedBy")
void flush() {
  List<BuildEvent> updateEvents = null;
  synchronized (this) {
    Iterable<String> allOut = ImmutableList.of();
    Iterable<String> allErr = ImmutableList.of();
    if (outErrProvider != null) {
      allOut = orEmpty(outErrProvider.getOut());
      allErr = orEmpty(outErrProvider.getErr());
    }
    if (Iterables.isEmpty(allOut) && Iterables.isEmpty(allErr)) {
      // Nothing to flush; avoid generating an unneeded progress event.
      return;
    }
    if (announcedEvents != null) {
      updateEvents = new ArrayList<>();
      List<BuildEvent> finalUpdateEvents = updateEvents;
      consumeAsPairsofStrings(
          allOut, allErr, (s1, s2) -> finalUpdateEvents.add(flushStdoutStderrEvent(s1, s2)));
    } else {
      consumeAsPairsofStrings(
          allOut, allErr, (s1, s2) -> bufferedStdoutStderrPairs.add(Pair.of(s1, s2)));
    }
  }
  if (updateEvents != null) {
    for (BuildEvent updateEvent : updateEvents) {
      for (BuildEventTransport transport : transports) {
        transport.sendBuildEvent(updateEvent);
      }
    }
  }
}
 
源代码8 项目: binnavi   文件: CDebugEventNotifier.java
private void internalReceivedReply(final AnyBreakpointRemovedReply reply) {
  final Iterable<Pair<RelocatedAddress, Integer>> failedAddresses = Collections2.filter(
      reply.getAddresses(), new Predicate<Pair<RelocatedAddress, Integer>>() {
        @Override
        public boolean apply(final Pair<RelocatedAddress, Integer> item) {
          return item.second().intValue() != 0;
        }
      });
  if (!Iterables.isEmpty(failedAddresses)) {
    CBreakpointRemovalDialog.show(m_parent, failedAddresses);
  }
}
 
源代码9 项目: yangtools   文件: LeafRefPath.java
/**
 * Create a child path based on concatenation of this path and a relative path.
 *
 * @param relative Relative path
 * @return A new child path
 */
public LeafRefPath createChild(final Iterable<QNameWithPredicate> relative) {
    if (Iterables.isEmpty(relative)) {
        return this;
    }

    LeafRefPath newParent = this;
    for (QNameWithPredicate relativeQname : relative) {
        newParent = newParent.createInstance(newParent, relativeQname);
    }

    return newParent;
}
 
private CssPropertyValueNode rebuildFont(
    Iterable<CssValueNode> prefix,
    CssValueNode splitPoint,
    Iterable<CssValueNode> families,
    CssPriorityNode priority,
    final Map<CssValueNode, FontProperty> properties,
    CssPropertyValueNode n) {
  TreeMap<FontProperty, CssValueNode> parts =
      Maps.newTreeMap();
  for (Map.Entry<CssValueNode, FontProperty> p : properties.entrySet()) {
    parts.put(p.getValue(), p.getKey());
  }
  List<CssValueNode> preFamily = Lists.newArrayList();
  Iterables.addAll(preFamily, prefix);
  if (parts.containsKey(FontProperty.SIZE)) {
    preFamily.add(parts.get(FontProperty.SIZE));
  }
  if (parts.containsKey(FontProperty.LINE_HEIGHT)) {
    CssValueNode lineHeight = parts.get(FontProperty.LINE_HEIGHT);
    preFamily.add(new CssLiteralNode("/", getSourceCodeLocation(lineHeight)));
    preFamily.add(lineHeight);
  }
  List<CssValueNode> tail =
      Iterables.isEmpty(families)
      ? ImmutableList.<CssValueNode>of()
      : ImmutableList.<CssValueNode>of(reparseFamilies(
          families,
          SourceCodeLocation.merge(families)));
  ImmutableList.Builder<CssValueNode> resultNodes = ImmutableList.builder();
  resultNodes.addAll(Iterables.concat(preFamily, tail));
  if (priority != null) {
    resultNodes.add(priority);
  }
  CssPropertyValueNode result = new CssPropertyValueNode(resultNodes.build());
  return result.deepCopy();
}
 
源代码11 项目: yangtools   文件: YangInstanceIdentifier.java
public static @NonNull YangInstanceIdentifier create(final Iterable<? extends PathArgument> path) {
    if (Iterables.isEmpty(path)) {
        return empty();
    }

    final HashCodeBuilder<PathArgument> hash = new HashCodeBuilder<>();
    for (PathArgument a : path) {
        hash.addArgument(a);
    }

    return FixedYangInstanceIdentifier.create(path, hash.build());
}
 
源代码12 项目: nexus-public   文件: ComponentEntityAdapter.java
/**
 * Check for the existence of a component with {@code group}, {@code name}, and {@code version} in {@code bucket}.
 *
 * @since 3.8
 */
public boolean exists(final ODatabaseDocumentTx db,
                      @Nullable final String group,
                      final String name,
                      @Nullable final String version,
                      final Bucket bucket)
{
  Map<String, Object> params = Maps.newHashMap();
  params.put(P_GROUP, group);
  params.put(P_NAME, checkNotNull(name));
  params.put(P_VERSION, version);
  params.put(P_BUCKET, recordIdentity(id(checkNotNull(bucket))));
  OSQLSynchQuery<ODocument> query = new OSQLSynchQuery<>(EXISTS_QUERY_STRING, 1);
  return !Iterables.isEmpty(db.command(query).<Iterable<ODocument>>execute(params));
}
 
源代码13 项目: brooklyn-server   文件: BasicStartableImpl.java
@Override
public void start(Collection<? extends Location> locations) {
    try {
        ServiceStateLogic.setExpectedState(this, Lifecycle.STARTING);

        // Opportunity to block startup until other dependent components are available
        Object val = config().get(START_LATCH);
        if (val != null) log.debug("{} finished waiting for start-latch; continuing...", this);

        addLocations(locations);
        locations = Locations.getLocationsCheckingAncestors(locations, this);
        log.info("Starting entity "+this+" at "+locations);

        // essentially does StartableMethods.start(this, locations),
        // but optionally filters locations for each child

        Locations.LocationsFilter filter = getConfig(LOCATIONS_FILTER);
        Iterable<Entity> startables = filterStartableManagedEntities(getChildren());
        if (!Iterables.isEmpty(startables)) {
            List<Task<?>> tasks = Lists.newArrayListWithCapacity(Iterables.size(startables));
            for (final Entity entity : startables) {
                Collection<? extends Location> l2 = locations;
                if (filter != null) {
                    l2 = filter.filterForContext(new ArrayList<Location>(locations), entity);
                    log.debug("Child " + entity + " of " + this + " being started in filtered location list: " + l2);
                }
                tasks.add(Entities.invokeEffectorWithArgs(this, entity, Startable.START, l2));
            }
            for (Task<?> t : tasks) {
                t.getUnchecked();
            }
        }
        sensors().set(Attributes.SERVICE_UP, true);
    } finally {
        ServiceStateLogic.setExpectedState(this, Lifecycle.RUNNING);
    }
}
 
源代码14 项目: metron   文件: EnrichmentLookup.java
@Override
public Iterable<Boolean> exists(Iterable<KeyWithContext<EnrichmentKey, HBaseContext>> key, boolean logAccess) throws IOException {
  List<Boolean> ret = new ArrayList<>();
  if(Iterables.isEmpty(key)) {
    return Collections.emptyList();
  }
  Table table = Iterables.getFirst(key, null).getContext().getTable();
  for(boolean b : table.existsAll(keysToGets(key))) {
    ret.add(b);
  }
  return ret;
}
 
源代码15 项目: spoofax   文件: LanguageIdentifierService.java
@Override public boolean available(ILanguageImpl impl) {
    final Iterable<IdentificationFacet> facets = impl.facets(IdentificationFacet.class);
    if(Iterables.isEmpty(facets)) {
        return false;
    }
    return true;
}
 
源代码16 项目: buck   文件: GoCompileStep.java
@Override
protected ImmutableList<String> getShellCommandInternal(ExecutionContext context) {
  ArrayList<String> pathStrings = new ArrayList<>();
  for (Path path : srcs) {
    pathStrings.add(path.toString());
  }
  if (pathStrings.size() > 0) {
    ImmutableList.Builder<String> commandBuilder =
        ImmutableList.<String>builder()
            .addAll(compilerCommandPrefix)
            .add("-p", packageName.toString())
            .add("-pack")
            .add("-trimpath", workingDirectory.toString())
            .add("-nolocalimports")
            .addAll(flags)
            .add("-o", output.toString());

    if (asmSymabisPath.isPresent() && !Iterables.isEmpty(asmSrcs)) {
      commandBuilder.add("-symabis", asmSymabisPath.get().toString());
    }

    for (Path dir : includeDirectories) {
      commandBuilder.add("-I", dir.toString());
    }

    for (Map.Entry<Path, Path> entry : importPathMap.entrySet()) {
      commandBuilder.add("-importmap", entry.getKey() + "=" + entry.getValue());
    }

    if (asmHeaderPath.isPresent()) {
      commandBuilder.add("-asmhdr", asmHeaderPath.get().toString());
    }

    if (!allowExternalReferences) {
      // -complete means the package does not use any non Go code, so external functions
      // (e.g. Cgo, asm) aren't allowed.
      commandBuilder.add("-complete");
    }

    commandBuilder.addAll(pathStrings);

    return commandBuilder.build();
  } else {
    LOG.warn("No source files found in " + workingDirectory);
    return ImmutableList.of();
  }
}
 
源代码17 项目: DotCi   文件: GithubChangeLogSet.java
@Override
public boolean isEmptySet() {
    return logEntries == null || Iterables.isEmpty(logEntries);
}
 
/**
 * Creates a new {@link DelegatingScope} with the given elements as delegates.
 *
 * @param id
 *          Human-readable name of the scope, typically used to identify where the scope was created. Useful for debugging.
 * @param parent
 *          parent scope of new scope
 * @param delegates
 *          delegate objects
 * @param type
 *          context type of originating scope
 * @param scopeName
 *          the scope name
 * @param originalResource
 *          the original Resource this scope provider belongs to
 * @return resulting scope
 */
protected IScope newDelegateScope(final String id, final IScope parent, final Iterable<? extends EObject> delegates, final EClass type, final String scopeName, final Resource originalResource) {
  if (delegates == null) {
    return parent;
  }
  final Iterable<? extends EObject> contexts = EObjectUtil.filterProxies(delegates);
  if (Iterables.isEmpty(contexts)) {
    return parent;
  }
  final IContextSupplier func = new IContextSupplier() {
    @Override
    public Iterable<? extends EObject> get() {
      return contexts;
    }
  };
  return new DelegatingScope(id, this, parent, func, type, scopeName, originalResource);
}
 
源代码19 项目: tracecompass   文件: FileOffsetMapper.java
/**
 * Generate the callsite from a given binary file and address offset.
 *
 * Due to function inlining, it is possible for one offset to actually have
 * multiple call sites. We will return the most precise one (inner-most) we
 * have available.
 *
 * @param file
 *            The binary file to look at
 * @param buildId
 *            The expected buildId of the binary file (is not verified at
 *            the moment)
 * @param offset
 *            The memory offset in the file
 * @return The corresponding call site
 */
public static @Nullable TmfCallsite getCallsiteFromOffset(File file, @Nullable String buildId, long offset) {
   Iterable<Addr2lineInfo> output = getAddr2lineInfo(file, buildId, offset);
   if (output == null || Iterables.isEmpty(output)) {
       return null;
   }
   Addr2lineInfo info = Iterables.getLast(output);
   String sourceFile = info.fSourceFileName;
   Long sourceLine = info.fSourceLineNumber;

   if (sourceFile == null) {
       /* Not enough information to provide a callsite */
       return null;
   }
   return new TmfCallsite(sourceFile, sourceLine);
}
 
源代码20 项目: dremio-oss   文件: CatalogImpl.java
@Override
public boolean containerExists(NamespaceKey path) {
  final SchemaType type = getType(path, false);
  if(type == SchemaType.UNKNOWN) {
    return false;
  }

  try {
    List<NameSpaceContainer> containers = userNamespaceService.getEntities(ImmutableList.of(path));
    NameSpaceContainer c = containers.get(0);
    if(c != null &&
      (
        (c.getType() == NameSpaceContainer.Type.FOLDER && type != SchemaType.SOURCE) // DX-10186. Bad behavior in tryCreatePhysicalDataset causes problems with extra phantom folders.
          || c.getType() == NameSpaceContainer.Type.HOME
          || c.getType() == NameSpaceContainer.Type.SPACE
          || c.getType() == NameSpaceContainer.Type.SOURCE)) {
      return true;
    }

    if(type != SchemaType.SOURCE) {
      return false;
    }

    // For some sources, some folders aren't automatically existing in namespace, let's be more invasive...

    // let's check for a dataset in this path. We're looking for a dataset who either has this path as the schema of it or has a schema that starts with this path.
    if(!Iterables.isEmpty(userNamespaceService.find(new LegacyFindByCondition().setCondition(
      SearchQueryUtils.and(
        SearchQueryUtils.newTermQuery(NamespaceIndexKeys.ENTITY_TYPE.getIndexFieldName(), NameSpaceContainer.Type.DATASET.getNumber()),
        SearchQueryUtils.or(
          SearchQueryUtils.newTermQuery(DatasetIndexKeys.UNQUOTED_LC_SCHEMA, path.asLowerCase().toUnescapedString()),
          SearchQueryUtils.newPrefixQuery(DatasetIndexKeys.UNQUOTED_LC_SCHEMA.getIndexFieldName(),
            path.asLowerCase().toUnescapedString() + ".")
        )
      )
    )))) {
      return true;
    }

    // could be a filesystem, let's check the source directly (most expensive).
    ManagedStoragePlugin plugin = pluginRetriever.getPlugin(path.getRoot(), false);
    if(plugin == null) {
      // possible race condition where this plugin is no longer still registered.
      return false;
    }

    return plugin.unwrap(StoragePlugin.class).containerExists(new EntityPath(path.getPathComponents()));
  } catch(NamespaceException ex) {
    return false;
  }
}