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

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

源代码1 项目: tracing-framework   文件: BagFiltered.java
@Override
public Object[][] unpack() {
    // Most of the filter logic is done in PACK.  We could do some checking here, but for now we won't bother
    List<Object[]> tuples = Lists.newArrayList();
    for (ByteString serialized : Iterables.concat(ACTIVE.get(bagId), ARCHIVE.get(bagId))) {
        try {
            Bag bag = Bag.parseFrom(serialized);
            if (bag.hasFilterBag()) {
                for (SimpleTuple tuple : bag.getFilterBag().getTupleList()) {
                    tuples.add(tuple.getValueList().toArray());
                }
            }
        } catch (InvalidProtocolBufferException e) {
        }
    }        
    return tuples.toArray(new Object[tuples.size()][]);
}
 
源代码2 项目: caffeine   文件: LoadingCacheTest.java
@CheckNoWriter
@Test(dataProvider = "caches")
@CacheSpec(loader = { Loader.NEGATIVE, Loader.BULK_NEGATIVE },
    population = { Population.SINGLETON, Population.PARTIAL, Population.FULL },
    removalListener = { Listener.DEFAULT, Listener.REJECTING })
public void getAll_duplicates(LoadingCache<Integer, Integer> cache, CacheContext context) {
  Set<Integer> absentKeys = ImmutableSet.copyOf(Iterables.limit(context.absentKeys(),
      Ints.saturatedCast(context.maximum().max() - context.initialSize())));
  Iterable<Integer> keys = Iterables.concat(absentKeys, absentKeys,
      context.original().keySet(), context.original().keySet());
  Map<Integer, Integer> result = cache.getAll(keys);

  assertThat(context, hasMissCount(absentKeys.size()));
  assertThat(context, hasHitCount(context.initialSize()));
  assertThat(result.keySet(), is(equalTo(ImmutableSet.copyOf(keys))));

  int loads = context.loader().isBulk() ? 1 : absentKeys.size();
  assertThat(context, both(hasLoadSuccessCount(loads)).and(hasLoadFailureCount(0)));
}
 
源代码3 项目: caffeine   文件: CacheTest.java
@CheckNoWriter
@Test(dataProvider = "caches")
@CacheSpec(population = { Population.SINGLETON, Population.PARTIAL, Population.FULL },
    removalListener = { Listener.DEFAULT, Listener.REJECTING },
    implementation = Implementation.Guava)
public void getAll_duplicates(Cache<Integer, Integer> cache, CacheContext context) {
  Set<Integer> absentKeys = ImmutableSet.copyOf(Iterables.limit(context.absentKeys(),
      Ints.saturatedCast(context.maximum().max() - context.initialSize())));
  Iterable<Integer> keys = Iterables.concat(absentKeys, absentKeys,
      context.original().keySet(), context.original().keySet());
  Map<Integer, Integer> result = cache.getAll(keys, bulkMappingFunction());

  assertThat(context, hasMissCount(absentKeys.size()));
  assertThat(context, hasHitCount(context.initialSize()));
  assertThat(result.keySet(), is(equalTo(ImmutableSet.copyOf(keys))));
  assertThat(context, both(hasLoadSuccessCount(1)).and(hasLoadFailureCount(0)));
}
 
源代码4 项目: titan1withtp3.1   文件: ManagementSystem.java
@Override
public <T extends RelationType> Iterable<T> getRelationTypes(Class<T> clazz) {
    Preconditions.checkNotNull(clazz);
    Iterable<? extends TitanVertex> types = null;
    if (PropertyKey.class.equals(clazz)) {
        types = QueryUtil.getVertices(transaction, BaseKey.SchemaCategory, TitanSchemaCategory.PROPERTYKEY);
    } else if (EdgeLabel.class.equals(clazz)) {
        types = QueryUtil.getVertices(transaction, BaseKey.SchemaCategory, TitanSchemaCategory.EDGELABEL);
    } else if (RelationType.class.equals(clazz)) {
        types = Iterables.concat(getRelationTypes(EdgeLabel.class), getRelationTypes(PropertyKey.class));
    } else throw new IllegalArgumentException("Unknown type class: " + clazz);
    return Iterables.filter(Iterables.filter(types, clazz), new Predicate<T>() {
        @Override
        public boolean apply(@Nullable T t) {
            //Filter out all relation type indexes
            return ((InternalRelationType) t).getBaseType() == null;
        }
    });
}
 
源代码5 项目: bazel   文件: PyCommon.java
/**
 * Returns true if any of this target's {@code deps} or {@code data} deps has a shared library
 * file (e.g. a {@code .so}) in its transitive dependency closure.
 *
 * <p>For targets with the py provider, we consult the {@code uses_shared_libraries} field. For
 * targets without this provider, we look for {@link CppFileTypes#SHARED_LIBRARY}-type files in
 * the filesToBuild.
 */
private static boolean initUsesSharedLibraries(RuleContext ruleContext) {
  Iterable<? extends TransitiveInfoCollection> targets;
  // The deps attribute must exist for all rule types that use PyCommon, but not necessarily the
  // data attribute.
  if (ruleContext.attributes().has("data")) {
    targets =
        Iterables.concat(
            ruleContext.getPrerequisites("deps", TransitionMode.TARGET),
            ruleContext.getPrerequisites("data", TransitionMode.DONT_CHECK));
  } else {
    targets = ruleContext.getPrerequisites("deps", TransitionMode.TARGET);
  }
  for (TransitiveInfoCollection target : targets) {
    try {
      if (PyProviderUtils.getUsesSharedLibraries(target)) {
        return true;
      }
    } catch (EvalException e) {
      ruleContext.ruleError(String.format("In dep '%s': %s", target.getLabel(), e.getMessage()));
    }
  }
  return false;
}
 
源代码6 项目: dremio-oss   文件: AndFunction.java
@Override
public FunctionRender render(FunctionRenderer renderer, RexCall call) {
  List<Iterable<NullReference>> refs = new ArrayList<>();

  List<String> operands = Lists.newArrayListWithCapacity(call.getOperands().size());
  for (RexNode childCall : call.getOperands()) {
    FunctionRender r = childCall.accept(renderer.getVisitor());
    operands.add(r.getScript());
    refs.add(r.getNulls());
  }

  return new FunctionRender("( " + Joiner.on(" " + elasticName + " ").join(operands) + " )", Iterables.concat(refs));
}
 
源代码7 项目: n4js   文件: TypeUtils.java
/**
 * Convenience method, returns directly declared super types (class, role, interface) of a classifier. May return an
 * empty list but never null. Order is always super class, super roles, super interfaces. For all non-classifiers
 * this method returns an empty list.
 */
public static Iterable<? extends ParameterizedTypeRef> declaredSuperTypes(final Type type) {
	if (type instanceof TClass) {
		final TClass c = (TClass) type;
		if (c.getSuperClassRef() != null) {
			return Iterables.concat(singletonList(c.getSuperClassRef()), c.getImplementedInterfaceRefs());
		} else {
			return c.getImplementedInterfaceRefs();
		}
	}
	if (type instanceof TInterface) {
		final TInterface r = (TInterface) type;
		return r.getSuperInterfaceRefs();
	}
	if (type instanceof PrimitiveType) {
		PrimitiveType assignmentCompatible = ((PrimitiveType) type).getAssignmentCompatible();
		if (assignmentCompatible != null) {
			ParameterizedTypeRef typeRef = TypeRefsFactory.eINSTANCE.createParameterizedTypeRef();
			typeRef.setDeclaredType(assignmentCompatible);
			return singletonList(typeRef);
		}
	}
	if (type instanceof TObjectPrototype) {
		// IDE-1221 string based enums: traversing super types for object prototypes as well
		TObjectPrototype tObjectPrototype = (TObjectPrototype) type;
		if (tObjectPrototype.getSuperType() != null) {
			return singletonList(tObjectPrototype.getSuperType());
		}
	}
	return Collections.emptyList();
}
 
源代码8 项目: xtext-eclipse   文件: DirtyStateManager.java
@Override
public Iterable<IEObjectDescription> getExportedObjects() {
	return Iterables.concat(Iterables.transform(managedResources.values(), new Function<IDirtyResource, Iterable<IEObjectDescription>>() {
		@Override
		public Iterable<IEObjectDescription> apply(IDirtyResource from) {
			if (from != null)
				return from.getDescription().getExportedObjects();
			return Collections.emptyList();
		}
	}));
}
 
源代码9 项目: n4js   文件: MemberMatrix.java
private Iterable<TMember> members(int source) {
	return hasSource(source) ? Iterables.concat(members(
			source, GETTER),
			members(source, SETTER),
			members(source, FIELD),
			members(source, METHOD)) : MemberList.emptyList();
}
 
源代码10 项目: xtext-extras   文件: SyntaxFilteredScope.java
@Override
public Iterable<IEObjectDescription> getAllElements() {
	return Iterables.concat(Iterables.transform(values, new Function<QualifiedName, Iterable<IEObjectDescription>>() {
		@Override
		public Iterable<IEObjectDescription> apply(QualifiedName input) {
			return parent.getElements(input);
		}
	}));
}
 
源代码11 项目: xtext-core   文件: XtextValidator.java
private Iterable<GeneratedMetamodel> getAllGeneratedMetamodels(Grammar grammar, Set<Grammar> visited) {
	Iterable<GeneratedMetamodel> result = Iterables.filter(grammar.getMetamodelDeclarations(),
			GeneratedMetamodel.class);
	for (Grammar gr : grammar.getUsedGrammars()) {
		if (visited.add(gr))
			result = Iterables.concat(result, getAllGeneratedMetamodels(gr, visited));
	}
	return result;
}
 
/**
 * Moves all given outputs from a root to another.
 *
 * <p>This is a support function to help with the implementation of {@link #copyOutputs(Path)}.
 *
 * @param outputs outputs to move as relative paths to a root
 * @param sourceRoot source directory from which to resolve outputs
 * @param targetRoot target directory to which to move the resolved outputs from the source
 * @throws IOException if any of the moves fails
 */
static void moveOutputs(SandboxOutputs outputs, Path sourceRoot, Path targetRoot)
    throws IOException {
  for (PathFragment output : Iterables.concat(outputs.files(), outputs.dirs())) {
    Path source = sourceRoot.getRelative(output);
    Path target = targetRoot.getRelative(output);
    if (source.isFile() || source.isSymbolicLink()) {
      // Ensure the target directory exists in the target. The directories for the action outputs
      // have already been created, but the spawn outputs may be different from the overall action
      // outputs. This is the case for test actions.
      target.getParentDirectory().createDirectoryAndParents();
      if (FileSystemUtils.moveFile(source, target).equals(MoveResult.FILE_COPIED)) {
        if (warnedAboutMovesBeingCopies.compareAndSet(false, true)) {
          logger.atWarning().log(
              "Moving files out of the sandbox (e.g. from %s to %s"
                  + ") had to be done with a file copy, which is detrimental to performance; are "
                  + " the two trees in different file systems?",
              source, target);
        }
      }
    } else if (source.isDirectory()) {
      try {
        source.renameTo(target);
      } catch (IOException e) {
        // Failed to move directory directly, thus move it recursively.
        target.createDirectory();
        FileSystemUtils.moveTreesBelow(source, target);
      }
    }
  }
}
 
源代码13 项目: dremio-oss   文件: SplitStageExecutor.java
private void transferOut() {
  // transfer intermediate outputs to the ValueVectorReadExpression
  // for other splits to read the output
  for(ExpressionSplit split : Iterables.concat(javaSplits, gandivaSplits)) {
    split.transferOut();
  }

  // transfer final output
  for(TransferPair tp : transferPairs) {
    tp.transfer();
  }
}
 
源代码14 项目: Elasticsearch   文件: PassThroughPagingIterator.java
@Override
public void merge(Iterable<? extends KeyIterable<TKey, TRow>> iterables) {
    Iterable<TRow> concat = Iterables.concat(iterables);

    if (repeatable) {
        this.iterables.addAll(iterables);
        this.storedForRepeat = null;
    }
    if (iterator.hasNext()) {
        iterator = Iterators.concat(iterator, concat.iterator());
    } else {
        iterator = concat.iterator();
    }
}
 
源代码15 项目: bazel   文件: ObjcCommon.java
/**
 * Returns effective compilation options that do not arise from the crosstool.
 */
static Iterable<String> getNonCrosstoolCopts(RuleContext ruleContext) {
  return Iterables.concat(
      ruleContext.getFragment(ObjcConfiguration.class).getCopts(),
      ruleContext.getExpander().withDataLocations().tokenized("copts"));
}
 
源代码16 项目: copybara   文件: UnionGlob.java
@Override
protected Iterable<String> getIncludes() {
  return Iterables.concat(lval.getIncludes(), rval.getIncludes());
}
 
源代码17 项目: immutables   文件: Encodings.java
Encoding(TypeElement type) {
  this.typeEncoding = type;
  if (type.getKind() != ElementKind.CLASS || type.getNestingKind() != NestingKind.TOP_LEVEL) {
    reporter.withElement(type).error("Encoding type '%s' should be top-level class", type.getSimpleName());
  }

  this.$$package = processing().getElementUtils().getPackageOf(type).getQualifiedName().toString();
  this.name = type.getSimpleName().toString();

  CharSequence source = SourceExtraction.extract(processing(), type);
  if (source.length() == 0) {
    reporter.withElement(type)
        .error("No source code can be extracted for @Encoding class. Unsupported compilation mode");
  }

  this.imports = SourceExtraction.importsFrom(source);
  this.sourceMapper = new SourceMapper(source);
  this.typesReader = new TypeExtractor(types, type);

  this.encodingSelfType = typesReader.get(type.asType());

  addTypeParameters(type);

  for (Element e : type.getEnclosedElements()) {
    processMember(e);
  }

  if (postValidate()) {
    provideSyntheticElements();
  }

  this.allElements = Iterables.concat(
      Arrays.asList(
          Iterables.filter(
              Arrays.asList(
                  impl,
                  from,
                  toString,
                  hashCode,
                  equals,
                  build,
                  isInit),
              Predicates.notNull()),
          fields,
          expose,
          copy,
          helpers,
          builderFields,
          builderHelpers,
          builderInits));

  this.linkage = new Linkage();
  this.generatedImports = generatedImports();
}
 
源代码18 项目: dsl-devkit   文件: BranchingScope.java
@Override
public Iterable<IEObjectDescription> getAllElements() {
  return Iterables.concat(contents.getAllElements(), parent.getAllElements());
}
 
源代码19 项目: HeyGirl   文件: DexBackedClassDef.java
@Nonnull
@Override
public Iterable<? extends DexBackedMethod> getMethods() {
    return Iterables.concat(getDirectMethods(), getVirtualMethods());
}
 
源代码20 项目: AppTroy   文件: DexWriter.java
private void writeDebugAndCodeItems(@Nonnull DexDataWriter offsetWriter,
                                    @Nonnull DeferredOutputStream temp) throws IOException {
    ByteArrayOutputStream ehBuf = new ByteArrayOutputStream();
    debugSectionOffset = offsetWriter.getPosition();
    DebugWriter<StringKey, TypeKey> debugWriter =
            new DebugWriter<StringKey, TypeKey>(stringSection, typeSection, offsetWriter);

    DexDataWriter codeWriter = new DexDataWriter(temp, 0);

    List<CodeItemOffset<MethodKey>> codeOffsets = Lists.newArrayList();

    for (ClassKey classKey: classSection.getSortedClasses()) {
        Collection<? extends MethodKey> directMethods = classSection.getSortedDirectMethods(classKey);
        Collection<? extends MethodKey> virtualMethods = classSection.getSortedVirtualMethods(classKey);

        Iterable<MethodKey> methods = Iterables.concat(directMethods, virtualMethods);

        for (MethodKey methodKey: methods) {
            List<? extends TryBlock<? extends ExceptionHandler>> tryBlocks =
                    classSection.getTryBlocks(methodKey);
            Iterable<? extends Instruction> instructions = classSection.getInstructions(methodKey);
            Iterable<? extends DebugItem> debugItems = classSection.getDebugItems(methodKey);

            if (instructions != null && stringSection.hasJumboIndexes()) {
                boolean needsFix = false;
                for (Instruction instruction: instructions) {
                    if (instruction.getOpcode() == Opcode.CONST_STRING) {
                        if (stringSection.getItemIndex(
                                (StringRef)((ReferenceInstruction)instruction).getReference()) >= 65536) {
                            needsFix = true;
                            break;
                        }
                    }
                }

                if (needsFix) {
                    MutableMethodImplementation mutableMethodImplementation =
                            classSection.makeMutableMethodImplementation(methodKey);
                    fixInstructions(mutableMethodImplementation);

                    instructions = mutableMethodImplementation.getInstructions();
                    tryBlocks = mutableMethodImplementation.getTryBlocks();
                    debugItems = mutableMethodImplementation.getDebugItems();
                }
            }

            int debugItemOffset = writeDebugItem(offsetWriter, debugWriter,
                    classSection.getParameterNames(methodKey), debugItems);
            int codeItemOffset = writeCodeItem(codeWriter, ehBuf, methodKey, tryBlocks, instructions, debugItemOffset);

            if (codeItemOffset != -1) {
                codeOffsets.add(new CodeItemOffset<MethodKey>(methodKey, codeItemOffset));
            }
        }
    }

    offsetWriter.align();
    codeSectionOffset = offsetWriter.getPosition();

    codeWriter.close();
    temp.writeTo(offsetWriter);
    temp.close();

    for (CodeItemOffset<MethodKey> codeOffset: codeOffsets) {
        classSection.setCodeItemOffset(codeOffset.method, codeSectionOffset + codeOffset.codeOffset);
    }
}