Java 类java.util.function.Function 实例源码

项目:openjdk-jdk10    文件:SortedOpTest.java   
@Test(groups = { "serialization-hostile" })
public void testIntSequentialShortCircuitTerminal() {
    int[] a = new int[]{5, 4, 3, 2, 1};

    Function<Integer, IntStream> knownSize = i -> assertNCallsOnly(
            Arrays.stream(a).sorted(), (s, c) -> s.peek(c::accept), i);
    Function<Integer, IntStream> unknownSize = i -> assertNCallsOnly
            (unknownSizeIntStream(a).sorted(), (s, c) -> s.peek(c::accept), i);

    // Find
    assertEquals(knownSize.apply(1).findFirst(), OptionalInt.of(1));
    assertEquals(knownSize.apply(1).findAny(), OptionalInt.of(1));
    assertEquals(unknownSize.apply(1).findFirst(), OptionalInt.of(1));
    assertEquals(unknownSize.apply(1).findAny(), OptionalInt.of(1));

    // Match
    assertEquals(knownSize.apply(2).anyMatch(i -> i == 2), true);
    assertEquals(knownSize.apply(2).noneMatch(i -> i == 2), false);
    assertEquals(knownSize.apply(2).allMatch(i -> i == 2), false);
    assertEquals(unknownSize.apply(2).anyMatch(i -> i == 2), true);
    assertEquals(unknownSize.apply(2).noneMatch(i -> i == 2), false);
    assertEquals(unknownSize.apply(2).allMatch(i -> i == 2), false);
}
项目:verify-matching-service-adapter    文件:IssueInstantValidatorTest.java   
@Test
public void validationDoesNotOccurWhenNoInstantIsProvided() {
    Messages messages = messages();
    Function<Object, Instant> instantProvider = context -> null;
    IssueInstantValidator<Object> validator = new IssueInstantValidator<>(
        TTL_MESSAGE,
        INSTANT_IN_FUTURE_MESSAGE,
        instantProvider,
        TTL,
        CLOCK_DELTA
    );

    Messages returnedMessages = validator.validate(new Object(), messages);

    assertThat(returnedMessages, sameInstance(messages));
    assertThat(validator.getCondition(), notNullValue());
    assertThat(validator.getCondition().test(new Object()), is(false));

    assertThat(returnedMessages.hasErrorLike(TTL_MESSAGE), is(false));
    assertThat(returnedMessages.hasErrorLike(INSTANT_IN_FUTURE_MESSAGE), is(false));
}
项目:practical-functional-java    文件:StreamTest.java   
@Test
public void testFlatMap1() {
    ImmutablePerson fred = ImmutablePerson.of("Fred", "Flintstone");
    fred = fred.withNickNames("The Fredmeister", "Yabba Dabba Dude");

    ImmutablePerson barney = ImmutablePerson.of("Barney",  "Rubble");
    barney = barney.withNickNames("The Barnster", "Little Buddy");

    String expectedAllNickNames = "The Fredmeister,Yabba Dabba Dude,"
            + "The Barnster,Little Buddy";

    // (not so good) map each ImmutablePerson to a Stream<String> of nicknames,
    // then use flatMap for flatten
    String allNickNames = Stream.of(fred, barney)  // Stream<ImmutablePerson>
            .map(ImmutablePerson::nickNames)  // Stream<Stream<String>>
            .flatMap(Function.identity()) // Stream<String>
            .collect(Collectors.joining(","));

    assertThat(allNickNames).isEqualTo(expectedAllNickNames);
}
项目:travny    文件:AnyTest.java   
@Test
public void shouldWriteReadAny() throws IOException {
    OtherRecWithId rec = new OtherRecWithId().setInField(234).setStrField("string456");
    RecWithAny r = new RecWithAny().setIntField(123).setStringField("string123").setAnyField(new Any(rec));

    byte[] data = BinaryWriter.toBytes(r);
    RecWithAny deserializedCustom = BinaryReader.fromBytes(data, RecWithAny.class);
    Assert.assertEquals(r, deserializedCustom);
    Record deserializedGeneric = BinaryReader.fromBytes(data, RecWithAny.getRecordSchema());
    Assert.assertEquals(r, deserializedGeneric);

    Assert.assertEquals(rec, deserializedCustom.getAnyField().getCustom((Function) ID_TO_CLZ));
    Assert.assertEquals(rec, ((Any) deserializedGeneric.get("anyField")).getGeneric(ID_TO_SCHEMA));

    String json = JsonWriter.toString(r);
    RecWithAny jsonCustom = JsonReader.fromString(json, RecWithAny.class);
    Assert.assertEquals(r, jsonCustom);
    Record jsonGen = JsonReader.fromString(json, RecWithAny.getRecordSchema());
    Assert.assertEquals(r, jsonGen);

    Assert.assertEquals(rec, jsonCustom.getAnyField().getCustom((Function) ID_TO_CLZ));
    Assert.assertEquals(rec, ((Any) jsonGen.get("anyField")).getGeneric(ID_TO_SCHEMA));

}
项目:elasticsearch_my    文件:DiffableTestUtils.java   
/**
 * Tests making random changes to an object, calculating diffs for these changes, sending this
 * diffs over the wire and appling these diffs on the other side.
 */
public static <T extends Diffable<T>> void testDiffableSerialization(Supplier<T> testInstance,
                                                                     Function<T, T> modifier,
                                                                     NamedWriteableRegistry namedWriteableRegistry,
                                                                     Reader<T> reader,
                                                                     Reader<Diff<T>> diffReader) throws IOException {
    T remoteInstance = testInstance.get();
    T localInstance = assertSerialization(remoteInstance, namedWriteableRegistry, reader);
    for (int runs = 0; runs < NUMBER_OF_DIFF_TEST_RUNS; runs++) {
        T remoteChanges = modifier.apply(remoteInstance);
        Diff<T> remoteDiffs = remoteChanges.diff(remoteInstance);
        Diff<T> localDiffs = copyInstance(remoteDiffs, namedWriteableRegistry, diffReader);
        localInstance = assertDiffApplication(remoteChanges, localInstance, localDiffs);
        remoteInstance = remoteChanges;
    }
}
项目:360w17g1    文件:AbstractView.java   
/**
 * Displays a title for a numbered list of objects and prompts the user to make a selection from that list. Offers
 * alternative options.
 * 
 * @param theTitle the title of the list
 * @param thePrompt the prompt
 * @param theList the list
 * @param theToStringFunction a function that maps an object list to a string list
 * @param theAlternatives alternative options to the list (e.g. back)
 * @return the object selected from the array or null if an alternative option was chosen
 * @throws NullPointerException if any parameters are null
 */
protected <E> E getSelectionFromList(final String theTitle, final String thePrompt, final E[] theList,
        final Function<E, String> theToStringFunction, final String[] theAlternatives) {
    print(Objects.requireNonNull(theTitle));
    displayLine();
    final Stream<String> listAsStrings = Arrays.stream(Objects.requireNonNull(theList))
            .map(Objects.requireNonNull(theToStringFunction));
    displayNumberedList(Stream.concat(listAsStrings,
            Arrays.stream(Objects.requireNonNull(theAlternatives))).toArray(String[]::new));
    displayLine();
    final int index = getInteger(Objects.requireNonNull(thePrompt), 1, theList.length + 1);
    if (index == theList.length + 1) {
        return null;
    } else {
        return theList[index - 1];
    }
}
项目:syndesis    文件:ReflectiveSorterTest.java   
@Test
public void noParams() {
    ListResult<TestPersonInterface> toSort = new ListResult.Builder<TestPersonInterface>().items(getTestData()).totalCount(getTestData().size()).build();
    Function<ListResult<TestPersonInterface>, ListResult<TestPersonInterface>> operator =
        new ReflectiveSorter<>(TestPersonInterface.class, getOptions(null, null));
    ListResult<TestPersonInterface> sorted = operator.apply(toSort);

    String[] expectedNames = {
        "Schrödinger",
        "Heisenberg",
        "Feynman",
        "Maxwell",
    };

    for (int i = 0; i < expectedNames.length; i++) {
        assertEquals(sorted.getItems().get(i).getLastName(), expectedNames[i]);
    }
    assertEquals(getTestData().size(), sorted.getTotalCount());

}
项目:spoj    文件:MREPLBRC_Brute_Force.java   
public static void testManyCases(Function<String, Long> f) {
    test("()()()", f);
    test("()()?(", f);
    test("()()?)", f);
    test("()()??", f);
    test("(?([?)]?}?", f);
    test("(??)", f);
    test("????", f);
    test("??(?", f);
    test("?](?", f);
    test("{](?", f);
    test("((?)???)()", f);
    test("((?)???)?)", f);
    test("[(?)???)?)??", f);
    test("([{??}])", f);
    test("(((((??)))))", f);
    test("(((?((??))???)", f);
    test("?((?((???]})???)", f);
    test("?((?((???]})???)??())?", f);
}
项目:diorite-configs-java8    文件:ConfigPropertyTemplateImpl.java   
public ConfigPropertyTemplateImpl(ConfigTemplate<?> template, Class<T> rawType, Type genericType, String name, Function<Config, T> defaultValueSupplier,
                                  AnnotatedElement annotatedElement)
{
    this.template = template;
    this.rawType = rawType;
    this.genericType = genericType;
    this.defaultValueSupplier = defaultValueSupplier;
    this.annotatedElement = annotatedElement;
    this.originalName = name;
    Comment comment = this.annotatedElement.getAnnotation(Comment.class);
    if (this.annotatedElement.isAnnotationPresent(CustomKey.class))
    {
        this.name = this.annotatedElement.getAnnotation(CustomKey.class).value();
    }
    else if ((comment != null) && ! comment.name().isEmpty())
    {
        this.name = comment.name();
    }
    else
    {
        this.name = name;
    }
}
项目:openjdk-jdk10    文件:JdepsConfiguration.java   
/**
 * Returns the list of packages that split between resolved module and
 * unnamed module
 */
public Map<String, Set<String>> splitPackages() {
    Set<String> splitPkgs = packageToModule.keySet().stream()
                                   .filter(packageToUnnamedModule::containsKey)
                                   .collect(toSet());
    if (splitPkgs.isEmpty())
        return Collections.emptyMap();

    return splitPkgs.stream().collect(toMap(Function.identity(), (pn) -> {
        Set<String> sources = new LinkedHashSet<>();
        sources.add(packageToModule.get(pn).getModule().location().toString());
        packageToUnnamedModule.get(pn).stream()
            .map(Archive::getPathName)
            .forEach(sources::add);
        return sources;
    }));
}
项目:Reinickendorf_SER316    文件:ApiClient.java   
public <T> T sendRequest (Function <WebClient, T> request) {
    int retries = 0;
    do {
        try {
            WebClient webClientCopy = WebClient.fromClient(webClient);
            T response = request.apply(webClientCopy);
            webClientCopy.close();
            return response;
        }
        catch (NotAuthorizedException e) {
            if (retries < 5) {
                retries ++;
                authClient.refreshAuthenticationContext();
            }
            else throw e;
        }
    } 
    while (retries < 5);

    return null;
}
项目:jspare-vertx-ms-blueprint    文件:ConfigurationProviderVertxEBProxy.java   
private <T> List<T> convertList(List list) {
  if (list.isEmpty()) { 
        return (List<T>) list; 
      } 

  Object elem = list.get(0); 
  if (!(elem instanceof Map) && !(elem instanceof List)) { 
    return (List<T>) list; 
  } else { 
    Function<Object, T> converter; 
    if (elem instanceof List) { 
      converter = object -> (T) new JsonArray((List) object); 
    } else { 
      converter = object -> (T) new JsonObject((Map) object); 
    } 
    return (List<T>) list.stream().map(converter).collect(Collectors.toList()); 
  } 
}
项目:datarouter    文件:CollectorToolTests.java   
@Test
public void testToMap(){
    List<String> list = Arrays.asList("a2", "bb3", "bb9", "c", "ddd4", "eeee5");
    Function<String,String> keyMapper = key -> {
        return key.startsWith("e") ? null : key.charAt(0) + "";
    };
    Function<String,Integer> valueMapper = key -> {
        if(key.equals("c")){
            return null;
        }
        char lastChar = key.charAt(key.length() - 1);
        return Integer.parseInt(lastChar + "");
    };
    Map<String,Integer> map = list.stream().collect(CollectorTool.toMap(keyMapper, valueMapper));
    Iterator<Entry<String,Integer>> iterator = map.entrySet().iterator();
    Assert.assertEquals(nextIn(iterator), "a=2");
    Assert.assertEquals(nextIn(iterator), "b=9");
    Assert.assertEquals(nextIn(iterator), "c=null");
    Assert.assertEquals(nextIn(iterator), "d=4");
    Assert.assertEquals(nextIn(iterator), "null=5");
    Assert.assertFalse(iterator.hasNext());
}
项目:openjdk-jdk10    文件:NodeBuilderTest.java   
@Test(dataProvider = "Node.Builder<Double>")
public void testDoubleIteration(List<Double> l, Function<Integer, Node.Builder.OfDouble> m) {
    Node.Builder.OfDouble nb = m.apply(l.size());
    nb.begin(l.size());
    for (Double i : l) {
        nb.accept((double) i);
    }
    nb.end();

    Node.OfDouble n = nb.build();
    assertEquals(n.count(), l.size());

    {
        List<Double> _l = new ArrayList<>();
        n.forEach((DoubleConsumer) _l::add);

        assertContents(_l, l);
    }

}
项目:openjdk-jdk10    文件:ForEachOpTest.java   
@Test(groups = { "serialization-hostile" })
public void testIntForEachOrdered() {
    List<Integer> input = countTo(10000);
    TestData.OfInt data = TestData.Factory.ofIntSupplier("[1, 10000]",
                                                         () -> IntStream.range(1, 10001));

    Function<IntStream, List<Integer>> terminalFunc = s -> {
        List<Integer> l = new ArrayList<>();
        s.forEachOrdered(l::add);
        return l;
    };

    // Test head
    withData(data).
            terminal(terminalFunc).
            expectedResult(input).
            exercise();

    // Test multiple stages
    withData(data).
            terminal(s -> s.map(i -> i), terminalFunc).
            expectedResult(input).
            exercise();
}
项目:collectors-utils    文件:FlatMappingTest.java   
@Test
public void should_collect_flat_map_a_non_empty_stream_into_a_stream() {

    // Given
    Stream<String> strings = Stream.of("one", "two", "three");
    Function<String, Stream<Character>> streamMapper = string -> string.chars().mapToObj(letter -> (char)letter);

    Collector<String, ?, Stream<Character>> streamCollector = CollectorsUtils.flatMapping(streamMapper);

    // When
    List<Character> characters = strings.collect(streamCollector).collect(toList());

    // Then
    assertThat(characters.size()).isEqualTo(11);
    assertThat(characters).containsExactly('o', 'n', 'e', 't', 'w', 'o', 't', 'h', 'r', 'e', 'e');
}
项目:wall-t    文件:ApiModule.java   
@Provides
@Singleton
public Map<ApiVersion, Function<Build, BuildData>> buildByApiVersion( ) {
    return ImmutableMap.of(
            ApiVersion.API_6_0,
            build -> new BuildData( build.getId( ), build.getStatus( ),
                    build.isRunning( ) ? BuildState.running : BuildState.finished,
                    build.isRunning( ) ? build.getRunningInformation( ).getPercentageComplete( ) : 100,
                    Optional.ofNullable( build.getFinishDate( ) ),
                    build.isRunning( ) ? Duration.of( build.getRunningInformation( ).getEstimatedTotalTime( ) - build.getRunningInformation( ).getElapsedTime( ), ChronoUnit.SECONDS ) : Duration.ZERO ),


            ApiVersion.API_7_0,
            build -> new BuildData( build.getId( ), build.getStatus( ),
                    build.isRunning( ) ? BuildState.running : BuildState.finished,
                    build.isRunning( ) ? build.getRunningInformation( ).getPercentageComplete( ) : 100,
                    Optional.ofNullable( build.getFinishDate( ) ),
                    build.isRunning( ) ? Duration.of( build.getRunningInformation( ).getEstimatedTotalTime( ) - build.getRunningInformation( ).getElapsedTime( ), ChronoUnit.SECONDS ) : Duration.ZERO ),

            ApiVersion.API_8_0,
            build -> new BuildData( build.getId( ), build.getStatus( ),
                    build.isRunning( ) ? BuildState.running : BuildState.finished,
                    build.isRunning( ) ? build.getRunningInformation( ).getPercentageComplete( ) : 100,
                    Optional.ofNullable( build.getFinishDate( ) ),
                    build.isRunning( ) ? Duration.of( build.getRunningInformation( ).getEstimatedTotalTime( ) - build.getRunningInformation( ).getElapsedTime( ), ChronoUnit.SECONDS ) : Duration.ZERO ),

            ApiVersion.API_8_1,
            build -> new BuildData( build.getId( ), build.getStatus( ),
                    build.getState( ),
                    build.getState( ) == BuildState.running ? build.getRunningInformation( ).getPercentageComplete( ) : 100,
                    Optional.ofNullable( build.getFinishDate( ) ),
                    build.getState( ) == BuildState.running ? Duration.of( build.getRunningInformation( ).getEstimatedTotalTime( ) - build.getRunningInformation( ).getElapsedTime( ), ChronoUnit.SECONDS ) : Duration.ZERO )
    );
}
项目:flux-capacitor-client    文件:HandlerInspector.java   
private static <M> List<Function<M, Object>> getParameterSuppliers(Method method,
                                                                   List<ParameterResolver<M>> resolvers) {
    if (method.getParameterCount() == 0) {
        throw new IllegalStateException("Annotated method should contain at least one parameter");
    }
    return Arrays.stream(method.getParameters())
            .map(p -> resolvers.stream().map(r -> r.resolve(p)).filter(Objects::nonNull).findFirst()
                    .orElseThrow(() -> new IllegalStateException("Could not resolve parameter " + p)))
            .collect(toList());
}
项目:generator-thundr-gae-react    文件:ReferenceDataService.java   
@SuppressWarnings("unchecked")
private <T extends ReferenceData> Function<T, ReferenceDataDto> getTransformer(Class<T> referenceDataClass) {
    Optional transformer = customTransformers
        .entrySet()
        .stream()
        .filter(entry -> entry.getKey().isAssignableFrom(referenceDataClass))
        .map(Map.Entry::getValue)
        .findFirst();
    return (Function<T, ReferenceDataDto>) transformer.orElse(ReferenceData.TO_DTO_TRANSFORMER);
}
项目:ytk-learn    文件:DataUtils.java   
public static <T, R> void travel(Function<T, R> func, List<Iterator<T>> iterators) {
    for (Iterator<T> it : iterators) {
        while(it.hasNext()) {
            func.apply(it.next());
        }
    }

}
项目:ReactPropTypes-Plugin    文件:PropTypesHelper.java   
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
    Set<Object> seen = ConcurrentHashMap.newKeySet();
    return t -> seen.add(keyExtractor.apply(t));
}
项目:log4j2-elasticsearch    文件:BulkProcessorObjectFactory.java   
@Override
public Function<BulkRequest, Boolean> createFailureHandler(FailoverPolicy failover) {
    return new Function<BulkRequest, Boolean>() {

        private final BulkRequestIntrospector introspector = new BulkRequestIntrospector();

        @Override
        public Boolean apply(BulkRequest bulk) {
            introspector.items(bulk).forEach(failedItem -> failover.deliver(failedItem));
            return true;
        }

    };
}
项目:pipelines    文件:BeamFunctions.java   
/**
 * A wrapper to expose the given function suitable for a beam pipeline.
 * <em>It is the reponsibility of the user to ensure that appropriate serializers are registered in Beam</em>.
 *
 * @param source To wrap.
 * @param <IN> The type of input
 * @param <OUT> The type of output
 * @return A function suitable for calling in Beam.
 */
public static <IN,OUT> DoFn<IN, OUT> beamify(Function<IN, OUT> source) {
  return new DoFn<IN, OUT>() {

    @ProcessElement
    public void processElement(ProcessContext c)
      throws InvocationTargetException, IllegalAccessException, IntrospectionException {
      c.output(source.apply(c.element()));
    }
  };
}
项目:otus_java_2017_10    文件:DBServiceImpl.java   
private <R> R runInSession(Function<Session, R> function) {
    try (Session session = sessionFactory.openSession()) {
        Transaction transaction = session.beginTransaction();
        R result = function.apply(session);
        transaction.commit();
        return result;
    }
}
项目:sporticus    文件:LoggerImplLog4j.java   
private <T> void log(Level level, T[] items, Function<T, String> func) {
    try {
        if (logger.isEnabledFor(level)) {
            Arrays.stream(items).forEach(t -> logger.log(level, func.apply(t)));
        }
    } catch (Exception e) {
        logger.warn("log statement failed", e);
    }
}
项目:pbt-junit-quickcheck    文件:GreatestCommonDivisorCalculator.java   
public long primeFactors(final long a, final long b)
{
    final PrimeFactorCalculator pfc = new PrimeFactorCalculator();
    final Map<Long, Long> factorsA = pfc.factor(a).stream()
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
    final Map<Long, Long> factorsB = pfc.factor(b).stream()
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
    final Stream<Long> factorsBoth = factorsA.entrySet().stream().map(e -> e.getKey())
            .filter(k -> factorsB.containsKey(k));
    return factorsBoth.map(f -> (long) Math.pow(f, Math.min(factorsA.get(f), factorsB.get(f))))
            .reduce(1L, (f1, f2) -> f1 * f2);
}
项目:streamingpool-core    文件:ErrorDeflector.java   
public <S, T> io.reactivex.functions.Function<S, Optional<T>> emptyOnException(Function<S, T> function) {
    return val -> {
        try {
            return Optional.of(function.apply(val));
        } catch (Exception e) {
            deflectOperationIncomingError(function, val, e);
            return Optional.empty();
        }
    };
}
项目:teemo    文件:WebviewValueSwitcherTest.java   
private Function<IBasicContextSwitcher<Object>, String> getValueGetter() {
    return new Function<IBasicContextSwitcher<Object>, String>() {
        @Override
        public String apply(IBasicContextSwitcher<Object> t) {
            // current/url/current
            String c = t.currentContextOrWindow();
            return c + "/url/" + c;
        }
    };
}
项目:Unified-World-Units    文件:MassUnit.java   
public MassUnit(String symbol, String singularName, String pluralName,
        Function<BigDecimalAmount, BigDecimalAmount> translationToCanonical,
        Function<BigDecimalAmount, BigDecimalAmount> translationFromCanonical) {

    super(2, symbol, singularName, pluralName, translationToCanonical, translationFromCanonical);

    unitCounter = new UnitCounter(this);
}
项目:jdk8u-jdk    文件:LongNodeTest.java   
private Node.OfLong tree(List<Long> l, Function<List<Long>, Node.OfLong> m) {
    if (l.size() < 3) {
        return m.apply(l);
    }
    else {
        return new Nodes.ConcNode.OfLong(
                tree(l.subList(0, l.size() / 2), m),
                tree(l.subList(l.size() / 2, l.size()), m));
    }
}
项目:qpp-conversion-tool    文件:Registry.java   
/**
 * Creates a function that will return new instances of the handlerClass
 *
 * @param handlerClass The class of which to create new instances
 * @return A function that returns instances of the handlerClass when supplied with a context
 */
private Function<Context, Object> createHandler(Class<?> handlerClass) {
    try {
        return createHandlerConstructor(handlerClass);
    } catch (NoSuchMethodException | IllegalAccessException e) {
        DEV_LOG.warn("Unable to create constructor handle", e);
        return ignore -> null;
    }
}
项目:tascalate-concurrent    文件:CallbackRegistry.java   
@Override
protected State<S> addCallbacks(Function<? super Callable<?>, ? extends Runnable> targetSetup,
                                Function<? super S, ?> successCallback, 
                                Function<Throwable, ?> failureCallback, 
                                Executor executor) {

    callbacks.add(new CallbackHolder<>(targetSetup, successCallback, failureCallback, executor));
    return this;
}
项目:soabase-stages    文件:StagedFutureImpl.java   
@Override
public <U> StagedFutureTimeout<U> thenIf(Function<T, Optional<U>> proc) {
    Objects.requireNonNull(proc, "proc cannot be null");

    // don't burn a thread if the optional is empty
    CompletionStage<Optional<U>> nextStage = future.thenCompose(optional -> {
        if (optional.isPresent()) {
            Function<T, Optional<U>> tracedProc = tracingProc(tracing, proc);
            return future.thenApplyAsync(__ -> tracedProc.apply(optional.get()), executor);
        }
        return CompletableFuture.completedFuture(Optional.empty());
    });
    return new StagedFutureImpl<>(executor, nextStage, tracing);
}
项目:stroom-stats    文件:QueryApiHelper.java   
/**
 * Get all values for a named field, converted into the chosen type
 */
public static <T> List<T> getTypedFieldValues(final FlatResult flatResult,
                                              final String fieldName,
                                              final Class<T> valueType) {

    if (flatResult == null || flatResult.getValues() == null || flatResult.getValues().isEmpty()) {
        return Collections.emptyList();
    }

    int fieldIndex = getFieldIndex(flatResult.getStructure(), fieldName);
    if (fieldIndex == -1) {
        throw new RuntimeException(String.format("Field %s does not exist in the FlatResult, possible fields: %s",
                fieldName, flatResult.getStructure().stream().map(Field::getName).collect(Collectors.joining(","))));
    }

    Function<String, T> conversionFunc = str -> {
        Object val = conversionMap.get(valueType).apply(str);
        try {
            return (T) val;
        } catch (ClassCastException e) {
            throw new RuntimeException(String.format("Unable to cast field %s to type %s", fieldName, valueType.getName()), e);
        }
    };

    //
    return flatResult.getValues().stream()
            .map(values -> values.get(fieldIndex))
            .map(obj -> {
                if (obj.getClass().equals(valueType)) {
                    return (T) obj;
                } else {
                    return conversionFunc.apply(convertValueToStr(obj));
                }
            })
            .collect(Collectors.toList());
}
项目:koryphe    文件:FunctionTest.java   
@Test
public void shouldEqualsWhenSameObject() {
    // Given
    final Function instance = getInstance();

    // Then
    assertEquals(instance, instance);
    assertEquals(instance.hashCode(), instance.hashCode());
}
项目:ARCLib    文件:Utils.java   
public static <T, U> Set<U> map(Set<T> objects, Function<T, U> func) {
    if (objects != null) {
        return objects.stream()
                      .map(func)
                      .collect(Collectors.toSet());
    } else {
        return null;
    }
}
项目:reasonml-idea-plugin    文件:InferredTypes.java   
@NotNull
private static Function<PsiLet, LogicalPosition> letExpressionToLogicalPosition(Editor selectedTextEditor) {
    return letStatement -> {
        PsiElement letName = letStatement.getNameIdentifier();
        if (letName == null) {
            return null;
        }

        int nameOffset = letName.getTextOffset();
        return selectedTextEditor.offsetToLogicalPosition(nameOffset);
    };
}
项目:openjdk-jdk10    文件:ByteBufferViews.java   
@DataProvider
public static Object[][] shortViewProvider() {
    List<Map.Entry<String, Function<ByteBuffer, ShortBuffer>>> bfs = List.of(
            Map.entry("bb.asShortBuffer()",
                      bb -> bb.asShortBuffer()),
            Map.entry("bb.asShortBuffer().slice()",
                      bb -> bb.asShortBuffer().slice()),
            Map.entry("bb.asShortBuffer().slice().duplicate()",
                      bb -> bb.asShortBuffer().slice().duplicate())
    );

    return product(BYTE_BUFFER_FUNCTIONS, bfs);
}
项目:vertx-jooq-async    文件:AsyncJooqSQLClientImpl.java   
@Override
public <P> CompletableFuture<P> fetchOne(Query query, Function<JsonObject, P> mapper){
    return getConnection().thenCompose(sqlConnection -> {
        CompletableFuture<P> cf = new VertxCompletableFuture<P>(vertx);
        sqlConnection.queryWithParams(query.getSQL(), getBindValues(query), executeAndClose(rs -> {
            Optional<P> optional = rs.getRows().stream().findFirst().map(mapper);
            return optional.orElseGet(() -> null);
        }, sqlConnection, cf));
        return cf;
    });
}
项目:springmock    文件:MockAttachingTestExecutionListener.java   
private Optional<Object> tryToGetBean(ApplicationContext applicationContext, DoubleDefinition doubleDefinition) {
    final Function<String, String> beanNameResolver = isFactoryBean(doubleDefinition.getDoubleClass())
            ? FactoryBeanRecognizer::getFactoryBeanName
            : Function.identity();

    return Stream
            .concat(
                    Stream.of(doubleDefinition.getName()),
                    doubleDefinition.getAliases().stream())
            .map(beanNameResolver)
            .map(nameOrAlias -> tryToGetBean(applicationContext, nameOrAlias))
            .filter(Optional::isPresent)
            .findFirst()
            .orElse(Optional.empty());
}