public class AppView implements Display public AppView(HandlerFactory factory) { ToolStripButton addButton = new ToolStripButton(); addButton.addClickHandler(factory.create(Action.ADD)); /* More interfacy stuff */ } public void openDrawer(String text) { /*Some implementation*/ } public void closeDrawer() { /*Some implementation*/ }
@Override public void updateCapacity(final CapacityChannel capacityChannel) throws IOException { capacityChannel.update(Integer.MAX_VALUE); }
@Override public final void updateCapacity(final CapacityChannel capacityChannel) throws IOException { final AsyncDataConsumer dataConsumer = dataConsumerRef.get(); if (dataConsumer != null) { dataConsumer.updateCapacity(capacityChannel); } else { capacityChannel.update(Integer.MAX_VALUE); } }
@Override public final void updateCapacity(final CapacityChannel capacityChannel) throws IOException { final AsyncResponseProducer responseProducer = responseProducerRef.get(); if (responseProducer == null) { exchangeHandler.updateCapacity(capacityChannel); } else { capacityChannel.update(Integer.MAX_VALUE); } }
@Override public void produce(final DataStreamChannel channel) throws IOException { final AsyncEntityProducer producer = entityProducerRef.get(); Asserts.notNull(producer, "Entity producer"); producer.produce(channel); }
@Override public void releaseResources() { entityConsumer.releaseResources(); final AsyncEntityProducer producer = entityProducerRef.getAndSet(null); if (producer != null) { producer.releaseResources(); } }
@Override protected void produceData(final StreamChannel<ByteBuffer> channel) throws IOException { final int chunk = Math.min((int) (remaining < Integer.MAX_VALUE ? remaining : Integer.MAX_VALUE), buffer.remaining()); for (int i = 0; i < chunk; i++) { final byte b = RANGE[(int) (Math.random() * RANGE.length)]; buffer.put(b); } buffer.flip(); final int bytesWritten = channel.write(buffer); if (bytesWritten > 0) { remaining -= bytesWritten; } buffer.compact(); if (remaining <= 0) { channel.endStream(); } }
@Override public int available() { final AsyncEntityProducer producer = entityProducerRef.get(); Asserts.notNull(producer, "Entity producer"); return producer.available(); }
@Override public final void releaseResources() { exchangeHandler.releaseResources(); final AsyncResponseProducer dataProducer = responseProducerRef.getAndSet(null); if (dataProducer != null) { dataProducer.releaseResources(); } }
@Override public void releaseResources() { final AsyncEntityProducer producer = entityProducerRef.getAndSet(null); if (producer != null) { producer.releaseResources(); } }
@Override public void completed(final Map<String, Variant> variants) { if (variants != null && !variants.isEmpty() && (entityProducer == null || entityProducer.isRepeatable())) { negotiateResponseFromVariants(target, request, entityProducer, scope, chain, asyncExecCallback, variants); } else { callBackend(target, request, entityProducer, scope, chain, asyncExecCallback); } }
@Override public final void streamEnd(final List<? extends Header> trailers) throws HttpException, IOException { final AsyncDataConsumer dataConsumer = dataConsumerRef.getAndSet(null); if (dataConsumer != null) { dataConsumer.streamEnd(trailers); } }
@Override public final void consume(final ByteBuffer src) throws IOException { final AsyncResponseProducer responseProducer = responseProducerRef.get(); if (responseProducer == null) { exchangeHandler.consume(src); } }
@Override public final void streamEnd(final List<? extends Header> trailers) throws HttpException, IOException { final AsyncResponseProducer responseProducer = responseProducerRef.get(); if (responseProducer == null) { exchangeHandler.streamEnd(trailers); } }
@Override public void releaseResources() { final AsyncDataConsumer dataConsumer = dataConsumerRef.getAndSet(null); if (dataConsumer != null) { dataConsumer.releaseResources(); } }
@Override public void produce(final DataStreamChannel channel) throws IOException { final AsyncEntityProducer producer = entityProducerRef.get(); Asserts.notNull(producer, "Entity producer"); producer.produce(channel); }
@Override public int available() { final AsyncEntityProducer producer = entityProducerRef.get(); Asserts.notNull(producer, "Entity producer"); return producer.available(); }