List of usage examples for org.apache.commons.lang3.tuple Pair getValue
@Override
public R getValue()
Gets the value from this pair.
This method implements the Map.Entry interface returning the right element as the value.
From source file:alfio.manager.EventManagerIntegrationTest.java
@Test public void testDecreaseEventSeatsWithABoundedCategory() { List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", 10, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", true, null, null, null, null, null)); Pair<Event, String> pair = initEvent(categories, organizationRepository, userManager, eventManager, eventRepository);/* w w w . j a v a 2 s . c o m*/ Event event = pair.getKey(); EventModification update = new EventModification(event.getId(), Event.EventType.INTERNAL, null, null, null, null, null, null, null, event.getOrganizationId(), null, "0.0", "0.0", ZoneId.systemDefault().getId(), null, DateTimeModification.fromZonedDateTime(event.getBegin()), DateTimeModification.fromZonedDateTime(event.getEnd()), event.getRegularPrice(), event.getCurrency(), 10, event.getVat(), event.isVatIncluded(), event.getAllowedPaymentProxies(), null, event.isFreeOfCharge(), null, 7, null, null); eventManager.updateEventPrices(event, update, pair.getValue()); List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId()); assertNotNull(tickets); assertFalse(tickets.isEmpty()); assertEquals(10, tickets.size()); assertTrue(tickets.stream().allMatch(t -> t.getCategoryId() != null)); }
From source file:alfio.manager.EventManagerIntegrationTest.java
@Test public void testIncreaseEventSeatsWithABoundedCategory() { List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", 10, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", true, null, null, null, null, null)); Pair<Event, String> pair = initEvent(categories, organizationRepository, userManager, eventManager, eventRepository);//w w w. ja v a 2 s .c om Event event = pair.getKey(); EventModification update = new EventModification(event.getId(), Event.EventType.INTERNAL, null, null, null, null, null, null, null, event.getOrganizationId(), null, "0.0", "0.0", ZoneId.systemDefault().getId(), null, DateTimeModification.fromZonedDateTime(event.getBegin()), DateTimeModification.fromZonedDateTime(event.getEnd()), event.getRegularPrice(), event.getCurrency(), 40, event.getVat(), event.isVatIncluded(), event.getAllowedPaymentProxies(), null, event.isFreeOfCharge(), null, 7, null, null); eventManager.updateEventPrices(event, update, pair.getValue()); List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId()); assertNotNull(tickets); assertFalse(tickets.isEmpty()); assertEquals(20, tickets.size()); assertEquals(20, ticketRepository.countReleasedUnboundedTickets(event.getId()).intValue()); assertEquals(10, tickets.stream().filter(t -> t.getCategoryId() != null).count()); }
From source file:alfio.manager.EventManagerIntegrationTest.java
@Test public void testIncreaseEventSeatsWithAnUnboundedCategory() { List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", 10, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", false, null, null, null, null, null)); Pair<Event, String> pair = initEvent(categories, organizationRepository, userManager, eventManager, eventRepository);//from ww w. j ava2s. c o m Event event = pair.getKey(); EventModification update = new EventModification(event.getId(), Event.EventType.INTERNAL, null, null, null, null, null, null, null, event.getOrganizationId(), null, "0.0", "0.0", ZoneId.systemDefault().getId(), null, DateTimeModification.fromZonedDateTime(event.getBegin()), DateTimeModification.fromZonedDateTime(event.getEnd()), event.getRegularPrice(), event.getCurrency(), 40, event.getVat(), event.isVatIncluded(), event.getAllowedPaymentProxies(), null, event.isFreeOfCharge(), null, 7, null, null); eventManager.updateEventPrices(event, update, pair.getValue()); List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId()); assertNotNull(tickets); assertFalse(tickets.isEmpty()); assertEquals(20, tickets.size()); assertEquals(20, ticketRepository.countReleasedUnboundedTickets(event.getId()).intValue()); waitingQueueSubscriptionProcessor.distributeAvailableSeats(event); tickets = ticketRepository.findFreeByEventId(event.getId()); assertEquals(40, tickets.size()); assertEquals(40, tickets.stream().filter(t -> t.getCategoryId() == null).count()); }
From source file:alfio.manager.system.DataMigratorIntegrationTest.java
@Test public void testMigrationWithExistingRecord() { List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", AVAILABLE_SEATS, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", false, null, null, null, null, null)); Pair<Event, String> eventUsername = initEvent(categories); Event event = eventUsername.getKey(); try {//from ww w.j a va 2s . c om eventMigrationRepository.insertMigrationData(event.getId(), "1.4", ZonedDateTime.now(ZoneId.of("UTC")).minusDays(1), EventMigration.Status.COMPLETE.toString()); eventRepository.updatePrices("CHF", 40, false, BigDecimal.ONE, "STRIPE", event.getId(), PriceContainer.VatStatus.NOT_INCLUDED, 1000); dataMigrator.migrateEventsToCurrentVersion(); EventMigration eventMigration = eventMigrationRepository.loadEventMigration(event.getId()); assertNotNull(eventMigration); //assertEquals(buildTimestamp, eventMigration.getBuildTimestamp().toString()); assertEquals(currentVersion, eventMigration.getCurrentVersion()); List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId()); assertNotNull(tickets); assertFalse(tickets.isEmpty()); assertEquals(20, tickets.size()); assertTrue(tickets.stream().allMatch(t -> t.getCategoryId() == null)); } finally { eventManager.deleteEvent(event.getId(), eventUsername.getValue()); } }
From source file:de.ks.flatadocdb.metamodel.Parser.java
public EntityDescriptor parse(Class<?> clazz) throws ParseException { Entity annotation = checkEntityAnnotation(clazz); EntityPersister persister = getInstance(annotation.persister()); FileGenerator fileGenerator = getInstance(annotation.fileGenerator()); FolderGenerator folderGenerator = getInstance(annotation.folderGenerator()); LuceneDocumentExtractor luceneDocumentExtractor = getInstance(annotation.luceneDocExtractor()); @SuppressWarnings("unchecked") Set<Field> allFields = ReflectionUtils.getAllFields(clazz, this::filterField); MethodHandle idGetterHandle = resolveIdFieldGetter(clazz, allFields); MethodHandle idSetterHandle = resolveIdFieldSetter(clazz, allFields); MethodHandle versionGetterHandle = resolveVersionFieldGetter(clazz, allFields); MethodHandle versionSetterHandle = resolveVersionFieldSetter(clazz, allFields); MethodHandle naturalIdHandle = resolveNaturalIdField(clazz, allFields); Pair<MethodHandle, MethodHandle> pathInRepo = resolvePathInRepoField(clazz, allFields); Map<Field, PropertyPersister> propertyPersisters = resolvePropertyPersisters(allFields); Map<LifeCycle, Set<MethodHandle>> lifecycleMethods = new LifeCycleParser().parseMethods(clazz); RelationParser relationParser = new RelationParser(); QueryParser queryParser = new QueryParser(); EntityDescriptor.Builder builder = EntityDescriptor.Builder.create(); builder.entity(clazz);/*from w w w. j a v a2 s . c om*/ builder.id(idGetterHandle, idSetterHandle); builder.version(versionGetterHandle, versionSetterHandle); builder.natural(naturalIdHandle); builder.persister(persister); builder.extractor(luceneDocumentExtractor); builder.fileGenerator(fileGenerator); builder.folderGenerator(folderGenerator); builder.properties(propertyPersisters); builder.lifecycle(lifecycleMethods); builder.toOnes(relationParser.parseToOneRelations(clazz)); builder.toMany(relationParser.parseToManyRelations(clazz)); builder.toOneChild(relationParser.parseToOneChildRelations(clazz)); builder.toManyChild(relationParser.parseToManyChildRelations(clazz)); builder.queries(queryParser.getQueries(clazz)); if (pathInRepo != null) { builder.pathInRepo(pathInRepo.getKey(), pathInRepo.getValue()); } return builder.build(); }
From source file:alfio.manager.EventManagerIntegrationTest.java
private Pair<Event, String> generateAndEditEvent(int newEventSize) { List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", 10, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", true, null, null, null, null, null)); Pair<Event, String> pair = initEvent(categories, organizationRepository, userManager, eventManager, eventRepository);// ww w . j a v a 2 s . c o m Event event = pair.getKey(); if (newEventSize != AVAILABLE_SEATS) { EventModification update = new EventModification(event.getId(), Event.EventType.INTERNAL, null, null, null, null, null, null, null, event.getOrganizationId(), null, null, null, event.getZoneId().toString(), Collections.emptyMap(), DateTimeModification.fromZonedDateTime(event.getBegin()), DateTimeModification.fromZonedDateTime(event.getEnd()), event.getRegularPrice(), event.getCurrency(), newEventSize, event.getVat(), event.isVatIncluded(), event.getAllowedPaymentProxies(), null, event.isFreeOfCharge(), null, 7, null, null); eventManager.updateEventPrices(event, update, pair.getValue()); } List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId()); assertNotNull(tickets); assertFalse(tickets.isEmpty()); assertEquals(AVAILABLE_SEATS, tickets.size()); if (newEventSize > AVAILABLE_SEATS) { assertEquals(newEventSize - AVAILABLE_SEATS, ticketRepository.countReleasedUnboundedTickets(event.getId()).intValue()); } assertEquals(10, tickets.stream().filter(t -> t.getCategoryId() != null).count()); return Pair.of(eventRepository.findById(event.getId()), pair.getRight()); }
From source file:alfio.manager.system.DataMigratorIntegrationTest.java
@Test public void testAlreadyMigratedEvent() { List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", AVAILABLE_SEATS, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", false, null, null, null, null, null)); Pair<Event, String> eventUsername = initEvent(categories); Event event = eventUsername.getKey(); try {/*from w ww .j a v a 2s .co m*/ ZonedDateTime migrationTs = ZonedDateTime.now(ZoneId.of("UTC")); eventMigrationRepository.insertMigrationData(event.getId(), currentVersion, migrationTs, EventMigration.Status.COMPLETE.toString()); eventRepository.updatePrices("CHF", 40, false, BigDecimal.ONE, "STRIPE", event.getId(), PriceContainer.VatStatus.NOT_INCLUDED, 1000); dataMigrator.migrateEventsToCurrentVersion(); EventMigration eventMigration = eventMigrationRepository.loadEventMigration(event.getId()); assertNotNull(eventMigration); //assertEquals(migrationTs.toString(), eventMigration.getBuildTimestamp().toString()); assertEquals(currentVersion, eventMigration.getCurrentVersion()); List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId()); assertNotNull(tickets); assertFalse(tickets.isEmpty()); assertEquals(AVAILABLE_SEATS, tickets.size());//<-- the migration has not been done assertTrue(tickets.stream().allMatch(t -> t.getCategoryId() == null)); } finally { eventManager.deleteEvent(event.getId(), eventUsername.getValue()); } }
From source file:alfio.manager.WaitingQueueManagerIntegrationTest.java
@Test public void testNoPublicCategoryAvailable() { LocalDateTime start = LocalDateTime.now().minusHours(1); LocalDateTime end = LocalDateTime.now().plusHours(1); List<TicketCategoryModification> categories = Arrays.asList( new TicketCategoryModification(null, "default", 2, new DateTimeModification(start.toLocalDate(), start.toLocalTime()), new DateTimeModification(end.toLocalDate(), end.toLocalTime()), DESCRIPTION, BigDecimal.TEN, false, "", true, null, null, null, null, null), new TicketCategoryModification(null, "default2", 10, new DateTimeModification(start.toLocalDate(), start.toLocalTime()), new DateTimeModification(end.toLocalDate(), end.toLocalTime()), DESCRIPTION, BigDecimal.TEN, true, "", true, null, null, null, null, null)); configurationManager.saveSystemConfiguration(ConfigurationKeys.ENABLE_WAITING_QUEUE, "true"); Pair<Event, String> eventAndUsername = initEvent(categories, organizationRepository, userManager, eventManager, eventRepository); Event event = eventAndUsername.getKey(); List<TicketCategory> ticketCategories = ticketCategoryRepository.findByEventId(event.getId()); TicketCategory first = ticketCategories.stream().filter(tc -> !tc.isAccessRestricted()).findFirst() .orElseThrow(IllegalStateException::new); reserveTickets(event, first, 2);//from w w w . ja va 2 s.com assertTrue( waitingQueueManager.subscribe(event, customerJohnDoe(event), "john@doe.com", null, Locale.ENGLISH)); assertTrue(waitingQueueManager.subscribe(event, new CustomerName("John Doe 2", "John", "Doe 2", event), "john@doe2.com", null, Locale.ENGLISH)); ZoneId zoneId = event.getZoneId(); Result<TicketCategory> ticketCategoryResult = eventManager.updateCategory(first.getId(), event, new TicketCategoryModification(first.getId(), first.getName(), 3, fromZonedDateTime(first.getInception(zoneId)), fromZonedDateTime(first.getExpiration(zoneId)), Collections.emptyMap(), first.getPrice(), false, "", true, null, null, null, null, null), eventAndUsername.getValue()); assertTrue(ticketCategoryResult.isSuccess()); assertEquals(1, ticketRepository.countReleasedTicketInCategory(event.getId(), first.getId()).intValue()); //now we should have an extra available ticket List<Triple<WaitingQueueSubscription, TicketReservationWithOptionalCodeModification, ZonedDateTime>> subscriptions = waitingQueueManager .distributeSeats(event).collect(Collectors.toList()); assertEquals(1, subscriptions.size()); }
From source file:it.anyplace.sync.bep.BlockExchangeConnectionHandler.java
private void startMessageListenerService() { inExecutorService.submit(new Runnable() { @Override// w w w . j av a2s . c o m public void run() { try { while (!Thread.interrupted()) { final Pair<BlockExchageProtos.MessageType, GeneratedMessage> message = receiveMessage(); logger.debug("received message type = {} {}", message.getLeft(), getIdForMessage(message.getRight())); logger.trace("received message = {}", message.getRight()); messageProcessingService.submit(new Runnable() { @Override public void run() { logger.debug("processing message type = {} {}", message.getLeft(), getIdForMessage(message.getRight())); try { switch (message.getLeft()) { case INDEX: eventBus.post(new IndexMessageReceivedEvent((Index) message.getValue())); break; case INDEX_UPDATE: eventBus.post(new IndexUpdateMessageReceivedEvent( (IndexUpdate) message.getValue())); break; case REQUEST: eventBus.post( new RequestMessageReceivedEvent((Request) message.getValue())); break; case RESPONSE: eventBus.post( new ResponseMessageReceivedEvent((Response) message.getValue())); break; case PING: logger.debug("ping message received"); break; case CLOSE: logger.info("received close message = {}", message.getValue()); closeBg(); break; case CLUSTER_CONFIG: { checkArgument(clusterConfigInfo == null, "received cluster config message twice!"); clusterConfigInfo = new ClusterConfigInfo(); ClusterConfig clusterConfig = (ClusterConfig) message.getValue(); for (Folder folder : firstNonNull(clusterConfig.getFoldersList(), Collections.<Folder>emptyList())) { ClusterConfigFolderInfo.Builder builder = ClusterConfigFolderInfo .newBuilder().setFolder(folder.getId()) .setLabel(folder.getLabel()); Map<String, Device> devicesById = Maps.uniqueIndex( firstNonNull(folder.getDevicesList(), Collections.<Device>emptyList()), new Function<Device, String>() { @Override public String apply(Device input) { return hashDataToDeviceIdString( input.getId().toByteArray()); } }); Device otherDevice = devicesById.get(address.getDeviceId()), ourDevice = devicesById.get(configuration.getDeviceId()); if (otherDevice != null) { builder.setAnnounced(true); } final ClusterConfigFolderInfo folderInfo; if (ourDevice != null) { folderInfo = builder.setShared(true).build(); logger.info("folder shared from device = {} folder = {}", address.getDeviceId(), folderInfo); if (!configuration.getFolderNames() .contains(folderInfo.getFolder())) { configuration.edit().addFolders(new FolderInfo( folderInfo.getFolder(), folderInfo.getLabel())); logger.info("new folder shared = {}", folderInfo); eventBus.post(new NewFolderSharedEvent() { @Override public String getFolder() { return folderInfo.getFolder(); } }); } } else { folderInfo = builder.build(); logger.info("folder not shared from device = {} folder = {}", address.getDeviceId(), folderInfo); } clusterConfigInfo.putFolderInfo(folderInfo); configuration.edit() .addPeers( Iterables .filter(Iterables.transform( firstNonNull(folder.getDevicesList(), Collections .<Device>emptyList()), new Function<Device, DeviceInfo>() { @Override public DeviceInfo apply( Device device) { String deviceId = hashDataToDeviceIdString( device.getId() .toByteArray()), name = device.hasName() ? device.getName() : null; return new DeviceInfo(deviceId, name); } }), new Predicate<DeviceInfo>() { @Override public boolean apply(DeviceInfo s) { return !equal(s.getDeviceId(), configuration .getDeviceId()); } })); } configuration.edit().persistLater(); eventBus.post(new ClusterConfigMessageProcessedEvent(clusterConfig)); } break; } } catch (Exception ex) { if (messageProcessingService.isShutdown()) { return; } logger.error("error processing message", ex); closeBg(); throw ex; } } }); } } catch (Exception ex) { if (inExecutorService.isShutdown()) { return; } logger.error("error receiving message", ex); closeBg(); } } }); }
From source file:com.evolveum.midpoint.schema.util.WfContextUtil.java
@NotNull private static TriggerType createTrigger(XMLGregorianCalendar triggerTime, WorkItemActionsType actions, Pair<Duration, AbstractWorkItemActionType> notifyInfo, PrismContext prismContext, @Nullable String workItemId, @NotNull String handlerUri) throws SchemaException { TriggerType trigger = new TriggerType(prismContext); trigger.setTimestamp(triggerTime);//from w ww . ja v a 2 s. c o m trigger.setHandlerUri(handlerUri); ExtensionType extension = new ExtensionType(prismContext); trigger.setExtension(extension); SchemaRegistry schemaRegistry = prismContext.getSchemaRegistry(); if (workItemId != null) { // work item id @SuppressWarnings("unchecked") @NotNull PrismPropertyDefinition<String> workItemIdDef = prismContext.getSchemaRegistry() .findPropertyDefinitionByElementName(SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ID); PrismProperty<String> workItemIdProp = workItemIdDef.instantiate(); workItemIdProp.addRealValue(workItemId); trigger.getExtension().asPrismContainerValue().add(workItemIdProp); } // actions if (actions != null) { @NotNull PrismContainerDefinition<WorkItemActionsType> workItemActionsDef = schemaRegistry .findContainerDefinitionByElementName(SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ACTIONS); PrismContainer<WorkItemActionsType> workItemActionsCont = workItemActionsDef.instantiate(); workItemActionsCont.add(actions.asPrismContainerValue().clone()); extension.asPrismContainerValue().add(workItemActionsCont); } // time before + action if (notifyInfo != null) { @NotNull PrismContainerDefinition<AbstractWorkItemActionType> workItemActionDef = schemaRegistry .findContainerDefinitionByElementName(SchemaConstants.MODEL_EXTENSION_WORK_ITEM_ACTION); PrismContainer<AbstractWorkItemActionType> workItemActionCont = workItemActionDef.instantiate(); workItemActionCont.add(notifyInfo.getValue().asPrismContainerValue().clone()); extension.asPrismContainerValue().add(workItemActionCont); @SuppressWarnings("unchecked") @NotNull PrismPropertyDefinition<Duration> timeBeforeActionDef = schemaRegistry .findPropertyDefinitionByElementName(SchemaConstants.MODEL_EXTENSION_TIME_BEFORE_ACTION); PrismProperty<Duration> timeBeforeActionProp = timeBeforeActionDef.instantiate(); timeBeforeActionProp.addRealValue(notifyInfo.getKey()); extension.asPrismContainerValue().add(timeBeforeActionProp); } return trigger; }