List of usage examples for org.apache.commons.lang3.tuple Triple of
public static <L, M, R> Triple<L, M, R> of(final L left, final M middle, final R right)
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.
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"); }