Example usage for org.apache.commons.lang3.tuple MutablePair MutablePair

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

Introduction

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

Prototype

public MutablePair() 

Source Link

Document

Create a new pair instance of two nulls.

Usage

From source file:io.cloudslang.lang.compiler.caching.CachedPrecompileServiceImplTest.java

@Test
public void testCacheValueSuccess() {
    String myPath = "aaa";
    ExecutableModellingResult executableModellingResult = mock(ExecutableModellingResult.class);
    SlangSource slangSource = mock(SlangSource.class);

    final MutablePair<CacheValue, Boolean> pair = new MutablePair<>();
    doAnswer(new Answer() {
        @Override/* w  w w  .j a v  a 2  s .  com*/
        public Object answer(InvocationOnMock invocation) throws Throwable {
            pair.setLeft((CacheValue) invocation.getArguments()[1]);
            return null;
        }
    }).when(cache).put(anyString(), any(CacheValue.class));

    // Tested call
    cachedPrecompileServiceImpl.cacheValue(myPath, executableModellingResult, slangSource);
    verify(cache).put(eq(myPath), same(pair.getLeft()));
}

From source file:io.cloudslang.lang.compiler.caching.CachedPrecompileServiceImplTest.java

@Test
public void testCacheValueDoesNothingForNull() {
    String myPath = null;//from   w w  w .j av  a2 s  .  c om
    ExecutableModellingResult executableModellingResult = mock(ExecutableModellingResult.class);
    SlangSource slangSource = mock(SlangSource.class);

    final MutablePair<CacheValue, Boolean> pair = new MutablePair<>();
    doAnswer(new Answer() {
        @Override
        public Object answer(InvocationOnMock invocation) throws Throwable {
            pair.setLeft((CacheValue) invocation.getArguments()[1]);
            return null;
        }
    }).when(cache).put(anyString(), any(CacheValue.class));

    // Tested call
    cachedPrecompileServiceImpl.cacheValue(myPath, executableModellingResult, slangSource);
    verify(cache, never()).put(anyString(), any(CacheValue.class));
}

From source file:com.yahoo.pulsar.broker.service.Consumer.java

/**
 * Dispatch a list of entries to the consumer.
 *
 * @return a promise that can be use to track when all the data has been written into the socket
 *//*from w  ww  .  ja  v a2 s  . co  m*/
public Pair<ChannelPromise, Integer> sendMessages(final List<Entry> entries) {
    final ChannelHandlerContext ctx = cnx.ctx();
    final MutablePair<ChannelPromise, Integer> sentMessages = new MutablePair<ChannelPromise, Integer>();
    final ChannelPromise writePromise = ctx.newPromise();
    sentMessages.setLeft(writePromise);
    if (entries.isEmpty()) {
        if (log.isDebugEnabled()) {
            log.debug("[{}] List of messages is empty, triggering write future immediately for consumerId {}",
                    subscription, consumerId);
        }
        writePromise.setSuccess();
        sentMessages.setRight(0);
        return sentMessages;
    }

    sentMessages.setRight(updatePermitsAndPendingAcks(entries));

    ctx.channel().eventLoop().execute(() -> {
        for (int i = 0; i < entries.size(); i++) {
            Entry entry = entries.get(i);
            PositionImpl pos = (PositionImpl) entry.getPosition();
            MessageIdData.Builder messageIdBuilder = MessageIdData.newBuilder();
            MessageIdData messageId = messageIdBuilder.setLedgerId(pos.getLedgerId())
                    .setEntryId(pos.getEntryId()).build();

            ByteBuf metadataAndPayload = entry.getDataBuffer();

            // skip checksum by incrementing reader-index if consumer-client doesn't support checksum verification
            if (cnx.getRemoteEndpointProtocolVersion() < ProtocolVersion.v6.getNumber()) {
                readChecksum(metadataAndPayload);
            }

            // stats
            msgOut.recordEvent(metadataAndPayload.readableBytes());

            if (log.isDebugEnabled()) {
                log.debug("[{}] Sending message to consumerId {}, entry id {}", subscription, consumerId,
                        pos.getEntryId());
            }

            // We only want to pass the "real" promise on the last entry written
            ChannelPromise promise = ctx.voidPromise();
            if (i == (entries.size() - 1)) {
                promise = writePromise;
            }
            ctx.write(Commands.newMessage(consumerId, messageId, metadataAndPayload), promise);
            messageId.recycle();
            messageIdBuilder.recycle();
        }

        ctx.flush();
    });

    return sentMessages;
}

From source file:com.datatorrent.lib.db.jdbc.AbstractJdbcPollInputOperator.java

public AbstractJdbcPollInputOperator() {
    currentWindowRecoveryState = new MutablePair<>();
    windowManager = new FSWindowDataManager();
}

From source file:io.cloudslang.lang.tools.build.tester.parallel.report.SlangTestCaseRunReportGeneratorServiceTest.java

@Test
public void generateTestCaseReportTable() throws IOException {
    HtmlCanvas canvas = mock(HtmlCanvas.class);
    IRunTestResults runTestResults = mock(IRunTestResults.class);

    final HtmlCanvas mockTable = mock(HtmlCanvas.class);
    HtmlCanvas mockTr = mock(HtmlCanvas.class);
    final MutablePair<Integer, Object> pair = new MutablePair<>();

    doAnswer(new Answer() {
        @Override//ww w .  j  a v  a 2  s  . c o m
        public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
            pair.setLeft(0);
            pair.setRight(invocationOnMock.getArguments()[0]);
            return mockTable;
        }
    }).when(canvas).table(any(HtmlAttributes.class));
    doReturn(mockTr).when(mockTable).tr();
    doReturn(mockTr).when(mockTr).th();
    doReturn(mockTr).when(mockTr).content(anyString());

    doReturn(mockTr).when(mockTr).th(any(CharactersWriteable.class));
    doReturn(new HtmlCanvas()).when(mockTr)._tr();

    doNothing().when(reportGeneratorService).appendTestRuns(any(HtmlCanvas.class), anyMap(), anyString());
    Map<String, TestRun> success = mock(Map.class);
    Map<String, TestRun> failed = mock(Map.class);
    Map<String, TestRun> skipped = mock(Map.class);

    doReturn(success).when(runTestResults).getPassedTests();
    doReturn(failed).when(runTestResults).getFailedTests();
    doReturn(skipped).when(runTestResults).getSkippedTests();

    reportGeneratorService.generateTestCaseReportTable(canvas, runTestResults);
    verify(canvas).table(eq((CharactersWriteable) pair.getRight()));

    verify(mockTable).tr();
    InOrder mockTableInOrder = inOrder(mockTr);

    mockTableInOrder.verify(mockTr).th();
    mockTableInOrder.verify(mockTr).content(eq(TEST_NAME));
    mockTableInOrder.verify(mockTr).th(any(HtmlAttributes.class));
    mockTableInOrder.verify(mockTr).content(TEST_SUITE);

    mockTableInOrder.verify(mockTr).th(any(HtmlAttributes.class));
    mockTableInOrder.verify(mockTr).content(TEST_STATUS);
    mockTableInOrder.verify(mockTr).th();
    mockTableInOrder.verify(mockTr).content(TEST_FLOW_PATH);
    mockTableInOrder.verify(mockTr).th();
    mockTableInOrder.verify(mockTr).content(TEST_DESCRIPTION);
    mockTableInOrder.verify(mockTr).th();
    mockTableInOrder.verify(mockTr).content(OUTPUTS);
    mockTableInOrder.verify(mockTr).th();
    mockTableInOrder.verify(mockTr).content(EXCEPTION_OR_MESSAGE);

    mockTableInOrder.verify(mockTr)._tr();
    mockTableInOrder.verifyNoMoreInteractions();

    verify(reportGeneratorService).appendTestRuns(eq(mockTable), eq(success), eq(PASSED));
    verify(reportGeneratorService).appendTestRuns(eq(mockTable), eq(failed), eq(FAILED));
    verify(reportGeneratorService).appendTestRuns(eq(mockTable), eq(skipped), eq(SKIPPED));
}

From source file:org.apache.pulsar.broker.service.Consumer.java

/**
 * Dispatch a list of entries to the consumer. <br/>
 * <b>It is also responsible to release entries data and recycle entries object.</b>
 *
 * @return a promise that can be use to track when all the data has been written into the socket
 *///from  w  w w  .  j  a  v a 2s.com
public Pair<ChannelPromise, Integer> sendMessages(final List<Entry> entries) {
    final ChannelHandlerContext ctx = cnx.ctx();
    final MutablePair<ChannelPromise, Integer> sentMessages = new MutablePair<ChannelPromise, Integer>();
    final ChannelPromise writePromise = ctx.newPromise();
    sentMessages.setLeft(writePromise);
    if (entries.isEmpty()) {
        if (log.isDebugEnabled()) {
            log.debug("[{}] List of messages is empty, triggering write future immediately for consumerId {}",
                    subscription, consumerId);
        }
        writePromise.setSuccess();
        sentMessages.setRight(0);
        return sentMessages;
    }

    try {
        sentMessages.setRight(updatePermitsAndPendingAcks(entries));
    } catch (PulsarServerException pe) {
        log.warn("[{}] [{}] consumer doesn't support batch-message {}", subscription, consumerId,
                cnx.getRemoteEndpointProtocolVersion());

        subscription.markTopicWithBatchMessagePublished();
        sentMessages.setRight(0);
        // disconnect consumer: it will update dispatcher's availablePermits and resend pendingAck-messages of this
        // consumer to other consumer
        disconnect();
        return sentMessages;
    }

    ctx.channel().eventLoop().execute(() -> {
        for (int i = 0; i < entries.size(); i++) {
            Entry entry = entries.get(i);
            PositionImpl pos = (PositionImpl) entry.getPosition();
            MessageIdData.Builder messageIdBuilder = MessageIdData.newBuilder();
            MessageIdData messageId = messageIdBuilder.setLedgerId(pos.getLedgerId())
                    .setEntryId(pos.getEntryId()).build();

            ByteBuf metadataAndPayload = entry.getDataBuffer();
            // increment ref-count of data and release at the end of process: so, we can get chance to call entry.release
            metadataAndPayload.retain();
            // skip checksum by incrementing reader-index if consumer-client doesn't support checksum verification
            if (cnx.getRemoteEndpointProtocolVersion() < ProtocolVersion.v6.getNumber()) {
                readChecksum(metadataAndPayload);
            }

            if (log.isDebugEnabled()) {
                log.debug("[{}] Sending message to consumerId {}, entry id {}", subscription, consumerId,
                        pos.getEntryId());
            }

            // We only want to pass the "real" promise on the last entry written
            ChannelPromise promise = ctx.voidPromise();
            if (i == (entries.size() - 1)) {
                promise = writePromise;
            }
            ctx.write(Commands.newMessage(consumerId, messageId, metadataAndPayload), promise);
            messageId.recycle();
            messageIdBuilder.recycle();
            entry.release();
        }

        ctx.flush();
    });

    return sentMessages;
}

From source file:org.jsweet.input.typescriptdef.ast.Scanner.java

protected Pair<TypeDeclaration, FunctionDeclaration> findSuperMethod(TypeDeclaration declaringType,
        FunctionDeclaration method) {/*  www  . j a  va  2s  .  co m*/
    MutablePair<TypeDeclaration, FunctionDeclaration> superMethodInfos = new MutablePair<>();
    applyToSuperMethod(declaringType, method, (superType, superMethod) -> {
        superMethodInfos.setLeft(superType);
        superMethodInfos.setRight(superMethod);
    });

    return superMethodInfos.getRight() == null ? null : superMethodInfos;
}

From source file:org.opendaylight.openflowplugin.impl.util.BarrierUtil.java

/**
 * chain a barrier message - regardless of previous result and use given {@link Function} to combine
 * original result and barrier result//  ww w. j a  va 2  s.c om
 *
 * @param <T>                type of input future
 * @param input              future to chain barrier to
 * @param nodeRef            target device
 * @param transactionService barrier service
 * @param compositeTransform
 * @return future holding both results (input and of the barrier)
 */
public static <T> ListenableFuture<RpcResult<T>> chainBarrier(final ListenableFuture<RpcResult<T>> input,
        final NodeRef nodeRef, final FlowCapableTransactionService transactionService,
        final Function<Pair<RpcResult<T>, RpcResult<Void>>, RpcResult<T>> compositeTransform) {
    final MutablePair<RpcResult<T>, RpcResult<Void>> resultPair = new MutablePair<>();

    // store input result and append barrier
    final ListenableFuture<RpcResult<Void>> barrierResult = Futures.transform(input,
            new AsyncFunction<RpcResult<T>, RpcResult<Void>>() {
                @Override
                public ListenableFuture<RpcResult<Void>> apply(@Nullable final RpcResult<T> interInput)
                        throws Exception {
                    resultPair.setLeft(interInput);
                    final SendBarrierInput barrierInput = createSendBarrierInput(nodeRef);
                    return JdkFutureAdapters.listenInPoolThread(transactionService.sendBarrier(barrierInput));
                }
            });
    // store barrier result and return initiated pair
    final ListenableFuture<Pair<RpcResult<T>, RpcResult<Void>>> compositeResult = Futures
            .transform(barrierResult, new Function<RpcResult<Void>, Pair<RpcResult<T>, RpcResult<Void>>>() {
                @Nullable
                @Override
                public Pair<RpcResult<T>, RpcResult<Void>> apply(@Nullable final RpcResult<Void> input) {
                    resultPair.setRight(input);
                    return resultPair;
                }
            });
    // append assembling transform to barrier result
    return Futures.transform(compositeResult, compositeTransform);
}

From source file:org.openlmis.fulfillment.Resource2Db.java

Pair<List<String>, List<Object[]>> resourceCsvToBatchedPair(final Resource resource) throws IOException {
    XLOGGER.entry(resource.getDescription());

    // parse CSV/*from   ww  w.  j av a2s.  com*/
    try (InputStreamReader isReader = new InputStreamReader(
            new BOMInputStream(resource.getInputStream(), ByteOrderMark.UTF_8))) {
        CSVParser parser = CSVFormat.DEFAULT.withHeader().withNullString("").parse(isReader);

        // read header row
        MutablePair<List<String>, List<Object[]>> readData = new MutablePair<>();
        readData.setLeft(new ArrayList<>(parser.getHeaderMap().keySet()));
        XLOGGER.info("Read header: " + readData.getLeft());

        // read data rows
        List<Object[]> rows = new ArrayList<>();
        for (CSVRecord record : parser.getRecords()) {
            if (!record.isConsistent()) {
                throw new IllegalArgumentException("CSV record inconsistent: " + record);
            }

            List theRow = IteratorUtils.toList(record.iterator());
            rows.add(theRow.toArray());
        }
        readData.setRight(rows);

        XLOGGER.exit("Records read: " + readData.getRight().size());
        return readData;
    }
}