13 Aralık 2016 Salı

CompletionStage Arayüzü

Giriş
Bu arayüz reactive programlama içindir ancak içinde tam 36 metod barındırıyor! CompletionStage bir zincirdeki halkadır. Her halka Executor veya bir önceki CompletionStage tarafından tetiklenir. Halkamız bir sonraki CompletionStage nesnesini de tetikleyebilir.

Yaptığı işer şuna benzer.
1. Do this *then* that (chaining)
2. Do this *and* that (joining)
3 Do this on failure (recovering)

V = Result
T  = Data
U = Other Data

olarak okunur

Accept metodları future bitince bir metod çağırır ama sonuç dönmez. Akış tamamlanır.
Apply metodu future bitince yeni bir değer döndürür.
Combine metodları iki future alır ve yeni bir future'a çevirerek farklı bir tip döndürür.


acceptEitherAsync metodu - CompletionStage + Consumer
Two to One metoddur. İki CompletionStage nesnesinin birisinden gelen ilk sonucu Consumer'a geçer.

applyToEither metodu - CompletionStage + Function
Two to One metoddur. İki CompletionStage nesnesinin birisinden gelen ilk sonucu Function'a geçer.

exceptionally metodu
Hata varsa çağrılır.

runAfterBothAsync metodu - CompletionStage + Runnable + Executor
Two to One metoddur.

runAfterEitherAsync metodu - CompletionStage + Runnable + Executor
Two to One metoddur. İki CompletionStage nesnesinin birisinden gelen ilk sonucu Runnable'a geçer.
thenApply metodu
Bitince belirtilen metodu çağırarak farklı bir tipten sonuç dön.

thenAccept metodu
Bitince belirtilen metodu çağır.

thenAcceptBoth metodu - CompletionStage + BiConsumer
Two to One metoddur. Her iki CompletionStage bitince BiConsumer'ı çağırır.

thenApply metodu - Function
One to One metoddur. Yeni bir CompletionStage döner.

thenCombine metodu
Two to One metoddur. Her iki CompletionStage bitince BiConsumer'ı çağırır ve yeni bir tipe çevirir.

thenCombineAsync metodu - CompletionStage + BiFunction
Two to One metoddur. Belirtilen CompletionStage'i BiFunction'a geçer ve yeni bir CompletionStage döner.

thenComposeAsync metodu
One to One metoddur.

thenRunAsync metodu - Runnable + Executor
One to One metoddur. Runnable belirtilen Executor tarafından çağrılır.

toCompletableFuture metodu
CompletionStage'i  CompletableFuture dönüştürmek için şöyle yaparız
CompletionStage<Void> completionStage = ...;
CompletableFuture<Void>> future = completionStage.toCompletableFuture();

Hiç yorum yok:

Yorum Gönder