Example usage for org.apache.commons.lang3.tuple Triple of

List of usage examples for org.apache.commons.lang3.tuple Triple of

Introduction

In this page you can find the example usage for org.apache.commons.lang3.tuple Triple of.

Prototype

public static <L, M, R> Triple<L, M, R> of(final L left, final M middle, final R right) 

Source Link

Document

Obtains an immutable triple of from three objects inferring the generic types.

This factory allows the triple to be created using inference to obtain the generic types.

Usage

From source file:gobblin.ingestion.google.webmaster.UrlTriePrefixGrouperTest.java

@Test
public void testGroupToPagesWithContainsOperator2() {
    List<String> pages = Arrays.asList(_property + "13", _property + "14", _property + "1", _property + "1");
    UrlTrie trie = new UrlTrie(_property, pages);
    ArrayList<String> actual = UrlTriePrefixGrouper
            .groupToPages(Triple.of(_property, FilterOperator.CONTAINS, trie.getRoot()));
    Assert.assertEquals(actual.toArray(), new String[] { _property + "13", _property + "14", _property + "1" });
}

From source file:alfio.manager.support.CustomMessageManager.java

public void sendMessages(String eventName, Optional<Integer> categoryId, List<MessageModification> input,
        String username) {/*from w  w w . j av  a2s  . co m*/

    Event event = eventManager.getSingleEvent(eventName, username);
    preview(event, input, username);//dry run for checking the syntax
    Organization organization = eventManager.loadOrganizer(event, username);
    AtomicInteger counter = new AtomicInteger();
    Map<String, List<MessageModification>> byLanguage = input.stream()
            .collect(Collectors.groupingBy(m -> m.getLocale().getLanguage()));

    sendMessagesExecutor.execute(() -> {
        categoryId.map(id -> ticketRepository.findConfirmedByCategoryId(event.getId(), id))
                .orElseGet(() -> ticketRepository.findAllConfirmed(event.getId())).stream()
                .filter(t -> isNotBlank(t.getFullName()) && isNotBlank(t.getEmail())).parallel().map(t -> {
                    Model model = new ExtendedModelMap();
                    model.addAttribute("eventName", eventName);
                    model.addAttribute("fullName", t.getFullName());
                    model.addAttribute("organizationName", organization.getName());
                    model.addAttribute("organizationEmail", organization.getEmail());
                    model.addAttribute("reservationURL",
                            ticketReservationManager.reservationUrl(t.getTicketsReservationId(), event));
                    model.addAttribute("reservationID",
                            ticketReservationManager.getShortReservationID(event, t.getTicketsReservationId()));
                    model.addAttribute("ticketURL",
                            ticketReservationManager.ticketUpdateUrl(event, t.getUuid()));
                    return Triple.of(t, t.getEmail(), model);
                }).forEach(triple -> {
                    Ticket ticket = triple.getLeft();
                    MessageModification m = Optional.ofNullable(byLanguage.get(ticket.getUserLanguage()))
                            .orElseGet(() -> byLanguage.get(byLanguage.keySet().stream().findFirst()
                                    .orElseThrow(IllegalStateException::new)))
                            .get(0);
                    Model model = triple.getRight();
                    String subject = renderResource(m.getSubject(), model, m.getLocale(), templateManager);
                    String text = renderResource(m.getText(), model, m.getLocale(), templateManager);
                    List<Mailer.Attachment> attachments = new ArrayList<>();
                    if (m.isAttachTicket()) {
                        ticketReservationManager.findById(ticket.getTicketsReservationId())
                                .ifPresent(reservation -> {
                                    ticketCategoryRepository.getByIdAndActive(ticket.getCategoryId())
                                            .ifPresent(ticketCategory -> {
                                                attachments.add(generateTicketAttachment(ticket, reservation,
                                                        ticketCategory, organization));
                                            });
                                });
                    }
                    counter.incrementAndGet();
                    notificationManager.sendSimpleEmail(event, triple.getMiddle(), subject, () -> text,
                            attachments);
                });
    });

}

From source file:com.microsoft.azure.keyvault.cryptography.RsaKey.java

@Override
public ListenableFuture<Triple<byte[], byte[], String>> encryptAsync(final byte[] plaintext, final byte[] iv,
        final byte[] authenticationData, final String algorithm) throws NoSuchAlgorithmException {

    if (plaintext == null) {
        throw new IllegalArgumentException("plaintext");
    }/*from   w w  w  .  jav a2  s . co m*/

    // Interpret the requested algorithm
    String algorithmName = (Strings.isNullOrWhiteSpace(algorithm) ? getDefaultEncryptionAlgorithm()
            : algorithm);
    Algorithm baseAlgorithm = AlgorithmResolver.Default.get(algorithmName);

    if (baseAlgorithm == null || !(baseAlgorithm instanceof AsymmetricEncryptionAlgorithm)) {
        throw new NoSuchAlgorithmException(algorithmName);
    }

    AsymmetricEncryptionAlgorithm algo = (AsymmetricEncryptionAlgorithm) baseAlgorithm;

    ICryptoTransform transform;
    ListenableFuture<Triple<byte[], byte[], String>> result;

    try {
        transform = algo.CreateEncryptor(_keyPair, _provider);
        result = Futures.immediateFuture(Triple.of(transform.doFinal(plaintext), (byte[]) null, algorithmName));
    } catch (Exception e) {
        result = Futures.immediateFailedFuture(e);
    }

    return result;
}

From source file:com.spotify.heroic.http.query.QueryResource.java

@POST
@Path("batch")
public void metrics(@Suspended final AsyncResponse response, @QueryParam("backend") String group,
        @Context final HttpServletRequest servletReq, final QueryBatch query) {
    final HttpContext httpContext = CoreHttpContextFactory.create(servletReq);
    final QueryManager.Group g = this.query.useOptionalGroup(Optional.ofNullable(group));

    final List<AsyncFuture<Triple<String, QueryContext, QueryResult>>> futures = new ArrayList<>();

    query.getQueries().ifPresent(queries -> {
        for (final Map.Entry<String, QueryMetrics> e : queries.entrySet()) {
            final String queryKey = e.getKey();
            final QueryMetrics qm = e.getValue();
            final Query q = qm.toQueryBuilder(this.query::newQueryFromString).rangeIfAbsent(query.getRange())
                    .build();//  w w w . j av  a  2s  .  co m

            final QueryContext queryContext = QueryContext.create(qm.getClientContext(), httpContext);
            queryLogger.logHttpQueryJson(queryContext, qm);

            futures.add(g.query(q, queryContext).directTransform(r -> Triple.of(queryKey, queryContext, r)));
        }
    });

    final AsyncFuture<QueryBatchResponse> future = async.collect(futures).directTransform(entries -> {
        final ImmutableMap.Builder<String, QueryMetricsResponse> results = ImmutableMap.builder();

        for (final Triple<String, QueryContext, QueryResult> e : entries) {
            final String queryKey = e.getLeft();
            final QueryContext queryContext = e.getMiddle();
            final QueryResult r = e.getRight();
            final QueryMetricsResponse qmr = new QueryMetricsResponse(queryContext.getQueryId(), r.getRange(),
                    r.getGroups(), r.getErrors(), r.getTrace(), r.getLimits(),
                    Optional.of(r.getPreAggregationSampleSize()), r.getCache());

            queryLogger.logFinalResponse(queryContext, qmr);

            results.put(queryKey, qmr);
        }

        return new QueryBatchResponse(results.build());
    });

    response.setTimeout(300, TimeUnit.SECONDS);

    httpAsync.bind(response, future);
}

From source file:gobblin.ingestion.google.webmaster.UrlTriePrefixGrouperTest.java

@Test
public void testGroupToPagesWithEqualsOperator() {
    List<String> pages = Arrays.asList(_property + "13", _property + "14");
    UrlTrie trie1 = new UrlTrie(_property, pages);
    ArrayList<String> actual1 = UrlTriePrefixGrouper
            .groupToPages(Triple.of(_property, FilterOperator.EQUALS, trie1.getRoot()));
    Assert.assertEquals(actual1.size(), 0);

    List<String> pagesWithRoot = new ArrayList<>();
    pagesWithRoot.addAll(pages);/*w  w  w  .  j  a v a  2  s. com*/
    pagesWithRoot.add(_property);
    UrlTrie trie2 = new UrlTrie(_property, pagesWithRoot);
    ArrayList<String> actual2 = UrlTriePrefixGrouper
            .groupToPages(Triple.of(_property, FilterOperator.EQUALS, trie2.getRoot()));
    Assert.assertEquals(actual2.toArray(), new String[] { _property });
}

From source file:com.linkedin.pinot.common.response.ServerInstance.java

public static ServerInstance forHostPort(String name, int port) {
    if (nameToInstanceInfo.containsKey(name)) {
        Triple<String, String, InetAddress> instanceInfo = nameToInstanceInfo.get(name);
        return new ServerInstance(instanceInfo.getLeft(), instanceInfo.getMiddle(), instanceInfo.getRight(),
                port, 0);//w w  w .j a  v  a2s .  c o m
    } else {
        ServerInstance newInstance = new ServerInstance(name, port);

        nameToInstanceInfo.putIfAbsent(name, Triple.of(newInstance.getHostname(),
                newInstance.getShortHostName(), newInstance.getIpAddress()));

        return newInstance;
    }
}

From source file:net.minecraftforge.common.model.animation.AnimationStateMachine.java

public Pair<IModelState, Iterable<Event>> apply(float time) {
    if (lastPollTime == Float.NEGATIVE_INFINITY) {
        lastPollTime = time;/*from   w  ww . ja v a2 s  . c  o  m*/
    }
    Pair<IModelState, Iterable<Event>> pair = clipCache
            .getUnchecked(Triple.of(currentState, lastPollTime, time));
    lastPollTime = time;
    boolean shouldFilter = false;
    if (shouldHandleSpecialEvents) {
        for (Event event : ImmutableList.copyOf(pair.getRight()).reverse()) {
            if (event.event().startsWith("!")) {
                shouldFilter = true;
                if (event.event().startsWith("!transition:")) {
                    String newState = event.event().substring("!transition:".length());
                    transition(newState);
                } else {
                    System.out.println("Unknown special event \"" + event.event() + "\", ignoring");
                }
            }
        }
    }
    if (!shouldFilter) {
        return pair;
    }
    return Pair.of(pair.getLeft(), Iterables.filter(pair.getRight(), new Predicate<Event>() {
        public boolean apply(Event event) {
            return !event.event().startsWith("!");
        }
    }));
}

From source file:alfio.controller.api.ReservationApiController.java

@RequestMapping(value = "/event/{eventName}/reservation/{reservationId}/vat-validation", method = RequestMethod.POST)
@Transactional//from www  .  j a va  2  s.  c  o  m
public ResponseEntity<VatDetail> validateEUVat(@PathVariable("eventName") String eventName,
        @PathVariable("reservationId") String reservationId, PaymentForm paymentForm, Locale locale,
        HttpServletRequest request) {

    String country = paymentForm.getVatCountryCode();
    Optional<Triple<Event, TicketReservation, VatDetail>> vatDetail = eventRepository
            .findOptionalByShortName(eventName)
            .flatMap(e -> ticketReservationRepository.findOptionalReservationById(reservationId)
                    .map(r -> Pair.of(e, r)))
            .filter(e -> EnumSet.of(INCLUDED, NOT_INCLUDED).contains(e.getKey().getVatStatus()))
            .filter(e -> vatChecker.isVatCheckingEnabledFor(e.getKey().getOrganizationId()))
            .flatMap(e -> vatChecker.checkVat(paymentForm.getVatNr(), country, e.getKey().getOrganizationId())
                    .map(vd -> Triple.of(e.getLeft(), e.getRight(), vd)));

    vatDetail.filter(t -> t.getRight().isValid()).ifPresent(t -> {
        VatDetail vd = t.getRight();
        String billingAddress = vd.getName() + "\n" + vd.getAddress();
        PriceContainer.VatStatus vatStatus = determineVatStatus(t.getLeft().getVatStatus(),
                t.getRight().isVatExempt());
        ticketReservationRepository.updateBillingData(vatStatus, vd.getVatNr(), country,
                paymentForm.isInvoiceRequested(), reservationId);
        OrderSummary orderSummary = ticketReservationManager.orderSummaryForReservationId(reservationId,
                t.getLeft(), Locale.forLanguageTag(t.getMiddle().getUserLanguage()));
        ticketReservationRepository.addReservationInvoiceOrReceiptModel(reservationId,
                Json.toJson(orderSummary));
        ticketReservationRepository.updateTicketReservation(reservationId, t.getMiddle().getStatus().name(),
                paymentForm.getEmail(), paymentForm.getFullName(), paymentForm.getFirstName(),
                paymentForm.getLastName(), locale.getLanguage(), billingAddress, null,
                Optional.ofNullable(paymentForm.getPaymentMethod()).map(PaymentProxy::name).orElse(null));
        paymentForm.getTickets().forEach((ticketId, owner) -> {
            if (isNotEmpty(owner.getEmail())
                    && ((isNotEmpty(owner.getFirstName()) && isNotEmpty(owner.getLastName()))
                            || isNotEmpty(owner.getFullName()))) {
                ticketHelper.preAssignTicket(eventName, reservationId, ticketId, owner, Optional.empty(),
                        request, (tr) -> {
                        }, Optional.empty());
            }
        });
    });

    return vatDetail.map(Triple::getRight).map(vd -> {
        if (vd.isValid()) {
            return ResponseEntity.ok(vd);
        } else {
            return new ResponseEntity<VatDetail>(HttpStatus.BAD_REQUEST);
        }
    }).orElseGet(() -> new ResponseEntity<>(HttpStatus.NOT_FOUND));
}

From source file:com.netflix.genie.agent.execution.statemachine.StateMachineAutoConfiguration.java

/**
 * Provide a lazy bean definition for the event driven transitions within the state machine.
 *
 * @return A collection of transitions based on source state, event, destination state
 *///from  www .j av a  2s .  co m
@Bean
@Lazy
public Collection<Triple<States, Events, States>> eventDrivenTransitions() {
    return Arrays.asList(
            // Regular execution
            Triple.of(States.READY, Events.START, States.INITIALIZE),
            Triple.of(States.INITIALIZE, Events.INITIALIZE_COMPLETE, States.CONFIGURE_AGENT),
            Triple.of(States.CONFIGURE_AGENT, Events.CONFIGURE_AGENT_COMPLETE,
                    States.RESOLVE_JOB_SPECIFICATION),
            Triple.of(States.RESOLVE_JOB_SPECIFICATION, Events.RESOLVE_JOB_SPECIFICATION_COMPLETE,
                    States.SETUP_JOB),
            Triple.of(States.SETUP_JOB, Events.SETUP_JOB_COMPLETE, States.LAUNCH_JOB),
            Triple.of(States.LAUNCH_JOB, Events.LAUNCH_JOB_COMPLETE, States.MONITOR_JOB),
            Triple.of(States.MONITOR_JOB, Events.MONITOR_JOB_COMPLETE, States.CLEANUP_JOB),
            Triple.of(States.CLEANUP_JOB, Events.CLEANUP_JOB_COMPLETE, States.SHUTDOWN),
            Triple.of(States.SHUTDOWN, Events.SHUTDOWN_COMPLETE, States.END),
            // Job cancellation
            Triple.of(States.READY, Events.CANCEL_JOB_LAUNCH, States.CLEANUP_JOB),
            Triple.of(States.INITIALIZE, Events.CANCEL_JOB_LAUNCH, States.CLEANUP_JOB),
            Triple.of(States.CONFIGURE_AGENT, Events.CANCEL_JOB_LAUNCH, States.CLEANUP_JOB),
            Triple.of(States.RESOLVE_JOB_SPECIFICATION, Events.CANCEL_JOB_LAUNCH, States.CLEANUP_JOB),
            Triple.of(States.SETUP_JOB, Events.CANCEL_JOB_LAUNCH, States.CLEANUP_JOB));
}

From source file:com.formkiq.core.service.sign.SigningServiceImpl.java

@Override
public Triple<DocSignQueueMessage, ArchiveDTO, QueueMessage> findAssets(final String document,
        final String stoken) throws IOException {

    QueueMessage msg = this.queueService.findMessage(stoken);

    if (msg != null) {

        DocSignQueueMessage dmsg = this.jsonService.readValue(msg.getMessage(), DocSignQueueMessage.class);

        if (dmsg.getFormid().equals(document)) {

            byte[] data = this.assetService.findAsset(dmsg.getFolderid(), dmsg.getAssetid());

            ArchiveDTO adto = this.archiveService.extractJSONFromZipFile(data);
            return Triple.of(dmsg, adto, msg);
        }//from w w  w  .  jav a2  s . c o m
    }

    throw new FormNotFoundException("Document not found");
}