FluxUtil Klasse

  • java.lang.Object
    • com.azure.core.util.FluxUtil

public final class FluxUtil

Hilfsprogrammtyp, der Methoden für den Umgang mit Fluxverfügbar macht.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
static Flux<T> fluxContext(Function<Context,Flux<T>> serviceCall)

Diese Methode konvertiert den eingehenden deferContextual von Reactor Context in Azure Context , ruft die angegebene Lambdafunktion mit diesem Kontext auf und gibt eine Auflistung vom Typ zurück. T

static Flux<T> fluxError(ClientLogger logger, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von Flux.

static Mono<T> monoError(ClientLogger logger, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von Mono.

static Mono<T> monoError(LoggingEventBuilder logBuilder, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von Mono.

static PagedFlux<T> pagedFluxError(ClientLogger logger, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von PagedFlux<T>.

static Mono<T> toMono(Response<T> response)

Konvertiert den eingehenden Inhalt in Mono.

static Mono<T> withContext(Function<Context,Mono<T>> serviceCall)

Diese Methode konvertiert die eingehenden deferContextual von in Azure ContextReactor Context und ruft die angegebene Lambdafunktion mit diesem Kontext auf und gibt eine einzelne Entität vom Typ zurück.T

static Mono<T> withContext(Function<Context,Mono<T>> serviceCall, Map<String,String> contextAttributes)

Diese Methode konvertiert die eingehenden deferContextual von in Azure ContextReactor Context , fügt die angegebenen Kontextattribute hinzu und ruft die angegebene Lambdafunktion mit diesem Kontext auf und gibt eine einzelne Entität vom Typ zurück.T

static Flux<ByteBuffer> addProgressReporting(Flux<ByteBuffer> flux, ProgressReporter progressReporter)

Fügt der von bereitgestellten FluxByteBufferStatusberichterstellung hinzu.

static byte[] byteBufferToArray(ByteBuffer byteBuffer)

Ruft den Inhalt des bereitgestellten Bytepuffersals Bytearray ab.

static Mono<byte[]> collectBytesFromNetworkResponse(Flux<ByteBuffer> stream, HttpHeaders headers)

Erfasst Bytepuffer, die in einer Netzwerkantwort zurückgegeben werden, in einem Bytearray.

static Mono<byte[]> collectBytesInByteBufferStream(Flux<ByteBuffer> stream)

Erfasst Bytepuffer, die von einem Flux in ein Bytearray ausgegeben werden.

static Mono<byte[]> collectBytesInByteBufferStream(Flux<ByteBuffer> stream, int sizeHint)

Erfasst Bytepuffer, die von einem Flux in ein Bytearray ausgegeben werden.

static Flux<ByteBuffer> createRetriableDownloadFlux(Supplier<Flux<ByteBuffer>> downloadSupplier, BiFunction<Throwable,Long,Flux<ByteBuffer>> onDownloadErrorResume, RetryOptions retryOptions, long position)

Erstellt eine Flux , die einen Download fortsetzen kann, indem wiederholungslogik angewendet wird, wenn ein Fehler auftritt.

static Flux<ByteBuffer> createRetriableDownloadFlux(Supplier<Flux<ByteBuffer>> downloadSupplier, BiFunction<Throwable,Long,Flux<ByteBuffer>> onDownloadErrorResume, int maxRetries)

Erstellt eine Flux , die einen Download fortsetzen kann, indem wiederholungslogik angewendet wird, wenn ein Fehler auftritt.

static Flux<ByteBuffer> createRetriableDownloadFlux(Supplier<Flux<ByteBuffer>> downloadSupplier, BiFunction<Throwable,Long,Flux<ByteBuffer>> onDownloadErrorResume, int maxRetries, long position)

Erstellt eine Flux , die einen Download fortsetzen kann, indem wiederholungslogik angewendet wird, wenn ein Fehler auftritt.

static boolean isFluxByteBuffer(Type entityType)

Überprüft, ob ein Typ Flux<ByteBuffer> ist.

static Flux<ByteBuffer> readFile(AsynchronousFileChannel fileChannel)

Erstellt ein Flux aus einem AsynchronousFileChannel , das die gesamte Datei liest.

static Flux<ByteBuffer> readFile(AsynchronousFileChannel fileChannel, int chunkSize, long offset, long length)

Erstellt ein Flux aus einem AsynchronousFileChannel , das einen Teil einer Datei in Blöcke der angegebenen Größe liest.

static Flux<ByteBuffer> readFile(AsynchronousFileChannel fileChannel, long offset, long length)

Erstellt ein Flux aus einem AsynchronousFileChannel , das einen Teil einer Datei liest.

static Flux<ByteBuffer> toFluxByteBuffer(InputStream inputStream)

Konvertiert ein InputStream in ein Flux mit ByteBuffer einer Blockgröße von 4096.

static Flux<ByteBuffer> toFluxByteBuffer(InputStream inputStream, int chunkSize)

Konvertiert ein InputStream in ein Flux von ByteBuffer.

static Context toReactorContext(Context context)

Konvertiert einen Azure-Kontext in den Reactor-Kontext.

static Mono<Void> writeFile(Flux<ByteBuffer> content, AsynchronousFileChannel outFile)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein AsynchronousFileChannel.

static Mono<Void> writeFile(Flux<ByteBuffer> content, AsynchronousFileChannel outFile, long position)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein AsynchronousFileChannel beginnt am position angegebenen in der Datei.

static Mono<Void> writeToAsynchronousByteChannel(Flux<ByteBuffer> content, AsynchronousByteChannel channel)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein AsynchronousByteChannel.

static Mono<Void> writeToOutputStream(Flux<ByteBuffer> content, OutputStream stream)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein OutputStream.

static Mono<Void> writeToWritableByteChannel(Flux<ByteBuffer> content, WritableByteChannel channel)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein WritableByteChannel.

Geerbte Methoden von java.lang.Object

Details zur Methode

fluxContext

public static Flux fluxContext(Function> serviceCall)

Diese Methode konvertiert den eingehenden deferContextual von Reactor Context in Azure Context , ruft die angegebene Lambdafunktion mit diesem Kontext auf und gibt eine Auflistung vom Typ zurück. T

Wenn der Reaktorkontext leer ist, wird verwendet, NONE um die Lambdafunktion aufzurufen.

Codebeispiele

String prefix = "Hello, ";
 Flux<String> response = FluxUtil
     .fluxContext(context -> serviceCallReturnsCollection(prefix, context));

Parameters:

serviceCall - Die Lambda-Funktion, die den Dienstaufruf ausgibt, an den der Kontext übergeben wird

Returns:

Die Antwort vom Dienstaufruf

fluxError

public static Flux fluxError(ClientLogger logger, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von Flux.

Parameters:

logger - Der ClientLogger , um die Ausnahme zu protokollieren.
ex - Die RuntimeException.

Returns:

Eine Flux , die mit einem Fehler beendet wird, der den RuntimeExceptionumschließt.

monoError

public static Mono monoError(ClientLogger logger, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von Mono.

Parameters:

logger - Der ClientLogger , um die Ausnahme zu protokollieren.
ex - Die RuntimeException.

Returns:

Eine Mono , die mit einem Fehler beendet wird, der den RuntimeExceptionumschließt.

monoError

public static Mono monoError(LoggingEventBuilder logBuilder, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von Mono.

Parameters:

logBuilder - Der LoggingEventBuilder mit Kontext zum Protokollieren der Ausnahme.
ex - Die RuntimeException.

Returns:

Eine Mono , die mit einem Fehler beendet wird, der den RuntimeExceptionumschließt.

pagedFluxError

public static PagedFlux pagedFluxError(ClientLogger logger, RuntimeException ex)

Verteilt ein RuntimeException über den Fehlerkanal von PagedFlux<T>.

Parameters:

logger - Der ClientLogger , um die Ausnahme zu protokollieren.
ex - Die RuntimeException.

Returns:

Eine PagedFlux<T> , die mit einem Fehler beendet wird, der den RuntimeExceptionumschließt.

toMono

public static Mono toMono(Response response)

Konvertiert den eingehenden Inhalt in Mono.

Parameters:

response - der konvertiert getValue() werden soll

Returns:

Der konvertierte .Mono

withContext

public static Mono withContext(Function> serviceCall)

Diese Methode konvertiert die eingehenden deferContextual von in Azure ContextReactor Context und ruft die angegebene Lambdafunktion mit diesem Kontext auf und gibt eine einzelne Entität vom Typ zurück.T

Wenn der Reaktorkontext leer ist, wird verwendet, NONE um die Lambdafunktion aufzurufen.

Codebeispiele

String prefix = "Hello, ";
 Mono<String> response = FluxUtil
     .withContext(context -> serviceCallReturnsSingle(prefix, context));

Parameters:

serviceCall - Die Lambda-Funktion, die den Dienstaufruf ausgibt, an den der Azure-Kontext übergeben wird

Returns:

Die Antwort vom Dienstaufruf

withContext

public static Mono withContext(Function> serviceCall, Map contextAttributes)

Diese Methode konvertiert die eingehenden deferContextual von in Azure ContextReactor Context , fügt die angegebenen Kontextattribute hinzu und ruft die angegebene Lambdafunktion mit diesem Kontext auf und gibt eine einzelne Entität vom Typ zurück.T

Wenn der Reaktorkontext leer ist, wird verwendet, NONE um die Lambdafunktion aufzurufen.

Parameters:

serviceCall - serviceCall Die Lambda-Funktion, die den Dienstaufruf ausgibt, an den der Azure-Kontext übergeben wird
contextAttributes - Die Zuordnung der Attribute, die von der aufrufenden Methode gesendet werden, die für Contextfestgelegt werden soll.

Returns:

Die Antwort vom Dienstaufruf

addProgressReporting

public static Flux addProgressReporting(Flux flux, ProgressReporter progressReporter)

Fügt der von bereitgestellten FluxByteBufferStatusberichterstellung hinzu.

Jedes ByteBuffer , das von ausgegeben Flux wird, meldet ByteBuffer#remaining().

Wenn Flux der Status erneut übermittelt wird, wird der Status zurückgesetzt. Wenn der Flussfluss nicht wiedergegeben werden kann, kann das erneute Senden zu leeren oder teilweisen Daten führen, dann ist die Fortschrittsberichterstattung möglicherweise nicht korrekt.

Wenn ProgressReporter nicht angegeben ist, d. h. ist, gibt nulldiese Methode nicht geändert zurück Flux.

Parameters:

flux - Ein Flux , um den Fortschritt zu melden.
progressReporter - Optionale ProgressReporter.

Returns:

Eine Flux , die den Fortschritt meldet, oder original Flux , wenn ProgressReporter nicht angegeben.

byteBufferToArray

public static byte[] byteBufferToArray(ByteBuffer byteBuffer)

Ruft den Inhalt des bereitgestellten ByteBuffer als Bytearray ab. Diese Methode erstellt ein neues Bytearray, auch wenn das ByteBuffer-Array optional unterstützt werden kann.

Parameters:

byteBuffer - der Bytepuffer

Returns:

das Bytearray

collectBytesFromNetworkResponse

public static Mono collectBytesFromNetworkResponse(Flux stream, HttpHeaders headers)

Erfasst die in einer Netzwerkantwort zurückgegebenen ByteBuffer in einem Bytearray.

Die headers werden überprüft, um einen Content-Length zu enthalten, der bestimmt, ob eine Größenhinweissammlung , collectBytesInByteBufferStream(Flux<ByteBuffer> stream, int sizeHint)oder Standardauflistung, collectBytesInByteBufferStream(Flux<ByteBuffer> stream)verwendet wird.

Parameters:

stream - Ein ByteBuffer-Stream für die Netzwerkantwort.
headers - Die HTTP-Header der Antwort.

Returns:

Ein Mono-Objekt, das die gesammelten Netzwerkantwort-ByteBuffers ausgibt.

collectBytesInByteBufferStream

public static Mono collectBytesInByteBufferStream(Flux stream)

Erfasst ByteBuffers, die von einem Flux in ein Bytearray ausgegeben werden.

Parameters:

stream - Ein Stream, der ByteBuffer-Instanzen ausgibt.

Returns:

Ein Mono, das die Verkettung aller ByteBuffer-Instanzen ausgibt, die vom Quellfluss angegeben werden.

collectBytesInByteBufferStream

public static Mono collectBytesInByteBufferStream(Flux stream, int sizeHint)

Erfasst ByteBuffers, die von einem Flux in ein Bytearray ausgegeben werden.

Im Gegensatz akzeptiert collectBytesInByteBufferStream(Flux<ByteBuffer> stream)diese Methode einen zweiten Parameter sizeHint. Dieser Größenhinweis ermöglicht Optimierungen beim Erstellen des anfänglichen Puffers, um die Anzahl der Größenänderungen beim Verketten ausgegebener ByteBuffers zu verringern.

Parameters:

stream - Ein Stream, der ByteBuffer-Instanzen ausgibt.
sizeHint - Ein Hinweis auf die erwartete Streamgröße.

Returns:

Ein Mono, das die Verkettung aller ByteBuffer-Instanzen ausgibt, die vom Quellfluss angegeben werden.

createRetriableDownloadFlux

public static Flux createRetriableDownloadFlux(Supplier> downloadSupplier, BiFunction> onDownloadErrorResume, RetryOptions retryOptions, long position)

Erstellt eine Flux , die einen Download fortsetzen kann, indem wiederholungslogik angewendet wird, wenn ein Fehler auftritt.

Parameters:

downloadSupplier - Lieferant des ersten Downloads.
onDownloadErrorResume - BiFunction von Throwable , Long das verwendet wird, um den Download fortzusetzen, wenn ein Fehler auftritt.
retryOptions - Die Optionen für wiederholungen.
position - Der anfängliche Offset für den Download.

Returns:

Eine Flux , die zuverlässig heruntergeladen wird.

createRetriableDownloadFlux

public static Flux createRetriableDownloadFlux(Supplier> downloadSupplier, BiFunction> onDownloadErrorResume, int maxRetries)

Erstellt eine Flux , die einen Download fortsetzen kann, indem wiederholungslogik angewendet wird, wenn ein Fehler auftritt.

Parameters:

downloadSupplier - Lieferant des ersten Downloads.
onDownloadErrorResume - BiFunction von Throwable , Long das verwendet wird, um den Download fortzusetzen, wenn ein Fehler auftritt.
maxRetries - Die maximale Häufigkeit, mit der ein Download fortgesetzt werden kann, wenn ein Fehler auftritt.

Returns:

Eine Flux , die zuverlässig heruntergeladen wird.

createRetriableDownloadFlux

public static Flux createRetriableDownloadFlux(Supplier> downloadSupplier, BiFunction> onDownloadErrorResume, int maxRetries, long position)

Erstellt eine Flux , die einen Download fortsetzen kann, indem wiederholungslogik angewendet wird, wenn ein Fehler auftritt.

Parameters:

downloadSupplier - Lieferant des ersten Downloads.
onDownloadErrorResume - BiFunction von Throwable , Long das verwendet wird, um den Download fortzusetzen, wenn ein Fehler auftritt.
maxRetries - Die maximale Häufigkeit, mit der ein Download fortgesetzt werden kann, wenn ein Fehler auftritt.
position - Der anfängliche Offset für den Download.

Returns:

Eine Flux , die zuverlässig heruntergeladen wird.

isFluxByteBuffer

public static boolean isFluxByteBuffer(Type entityType)

Überprüft, ob ein Typ Flux ist.

Parameters:

entityType - der zu überprüfende Typ

Returns:

ob der Typ einen Flux darstellt, der ByteBuffer ausgibt

readFile

public static Flux readFile(AsynchronousFileChannel fileChannel)

Erstellt ein Flux aus einem AsynchronousFileChannel , das die gesamte Datei liest.

Parameters:

fileChannel - Der Dateikanal.

Returns:

Der AsyncInputStream.

readFile

public static Flux readFile(AsynchronousFileChannel fileChannel, int chunkSize, long offset, long length)

Erstellt ein Flux aus einem AsynchronousFileChannel , das einen Teil einer Datei in Blöcke der angegebenen Größe liest.

Parameters:

fileChannel - Der Dateikanal.
chunkSize - die Größe der zu lesenden Dateiblöcke.
offset - Der Offset in der Datei, um mit dem Lesen zu beginnen.
length - Die Anzahl der Bytes, die aus der Datei gelesen werden sollen.

Returns:

der Flux.

readFile

public static Flux readFile(AsynchronousFileChannel fileChannel, long offset, long length)

Erstellt ein Flux aus einem AsynchronousFileChannel , das einen Teil einer Datei liest.

Parameters:

fileChannel - Der Dateikanal.
offset - Der Offset in der Datei, um mit dem Lesen zu beginnen.
length - Die Anzahl der Bytes, die aus der Datei gelesen werden sollen.

Returns:

der Flux.

toFluxByteBuffer

public static Flux toFluxByteBuffer(InputStream inputStream)

Konvertiert ein InputStream in ein Flux mit ByteBuffer einer Blockgröße von 4096.

Da nicht garantiert ist, dass InputStream sie wiederverspielbar sind, sollte der zurückgegebene Flux auch als nicht wiederverspielt werden.

Wenn das bestandene InputStream zurückgegeben wird nullFlux#empty() .

Parameters:

inputStream - Der InputStream , der in einen Fluxkonvertiert werden soll.

Returns:

Eine Flux von ByteBuffers , die den Inhalt des Datenstroms enthält.

toFluxByteBuffer

public static Flux toFluxByteBuffer(InputStream inputStream, int chunkSize)

Konvertiert ein InputStream in ein Flux von ByteBuffer.

Da nicht garantiert ist, dass InputStream sie wiederverspielbar sind, sollte der zurückgegebene Flux auch als nicht wiederverspielt werden.

Wenn das bestandene InputStream zurückgegeben wird nullFlux#empty() .

Parameters:

inputStream - Der InputStream , der in einen Fluxkonvertiert werden soll.
chunkSize - Die angeforderte Größe für jeden ByteBuffer.

Returns:

Eine Flux von ByteBuffers , die den Inhalt des Datenstroms enthält.

toReactorContext

public static Context toReactorContext(Context context)

Konvertiert einen Azure-Kontext in den Reactor-Kontext. Wenn der Azure-Kontext leer ist null , wird Context#empty() zurückgegeben.

Parameters:

context - Der Azure-Kontext.

Returns:

Der Reaktorkontext.

writeFile

public static Mono writeFile(Flux content, AsynchronousFileChannel outFile)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein AsynchronousFileChannel.

Der outFile wird durch diesen Aufruf nicht geschlossen, das outFile Schließen von wird vom Aufrufer verwaltet.

Die Antwort Mono gibt einen Fehler aus, wenn content oder outFile NULL ist. Darüber hinaus wird ein Fehler ausgegeben, wenn der outFile nicht mit den richtigen geöffneten Optionen geöffnet wurde, z. B StandardOpenOption#WRITE. .

Parameters:

content - Der Flux inhalt ByteBuffer .
outFile - Die AsynchronousFileChannel.

Returns:

EineMono, die eine Vervollständigung status ausgibt, sobald der Flux in den AsynchronousFileChannelgeschrieben wurde.

writeFile

public static Mono writeFile(Flux content, AsynchronousFileChannel outFile, long position)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein AsynchronousFileChannel beginnt am position angegebenen in der Datei.

Der outFile wird durch diesen Aufruf nicht geschlossen, das outFile Schließen von wird vom Aufrufer verwaltet.

Die Antwort Mono gibt einen Fehler aus, wenn content oder outFile NULL oder position kleiner als 0 ist. Darüber hinaus wird ein Fehler ausgegeben, wenn der outFile nicht mit den richtigen geöffneten Optionen geöffnet wurde, z. B StandardOpenOption#WRITE. .

Parameters:

content - Der Flux inhalt ByteBuffer .
outFile - Die AsynchronousFileChannel.
position - Die Position in der Datei, an der contentgeschrieben werden soll.

Returns:

EineMono, die eine Vervollständigung status ausgibt, sobald der Flux in den AsynchronousFileChannelgeschrieben wurde.

writeToAsynchronousByteChannel

public static Mono writeToAsynchronousByteChannel(Flux content, AsynchronousByteChannel channel)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein AsynchronousByteChannel.

Der channel wird durch diesen Aufruf nicht geschlossen, das channel Schließen von wird vom Aufrufer verwaltet.

Die Antwort Mono gibt einen Fehler aus, wenn content oder channel NULL ist.

Parameters:

content - Der Flux inhalt ByteBuffer .
channel - Die AsynchronousByteChannel.

Returns:

EineMono, die eine Vervollständigung status ausgibt, sobald der Flux in den AsynchronousByteChannelgeschrieben wurde.

writeToOutputStream

public static Mono writeToOutputStream(Flux content, OutputStream stream)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein OutputStream.

Der stream wird durch diesen Aufruf nicht geschlossen, das stream Schließen von wird vom Aufrufer verwaltet.

Die Antwort Mono gibt einen Fehler aus, wenn content oder stream NULL ist. Darüber hinaus wird ein Fehler ausgegeben, wenn beim Schreiben von eine contentstreamAusnahme auftritt.

Parameters:

content - Der Flux inhalt ByteBuffer .
stream - Die OutputStream , in die geschrieben wird.

Returns:

EineMono, die eine Vervollständigung status ausgibt, sobald der Flux in den OutputStreamgeschrieben wurde, oder einen Fehler status, wenn das Schreiben fehlschlägt.

writeToWritableByteChannel

public static Mono writeToWritableByteChannel(Flux content, WritableByteChannel channel)

Schreibt das ByteBuffers von einem Flux ausgegebene von ByteBuffer in ein WritableByteChannel.

Der channel wird durch diesen Aufruf nicht geschlossen, das channel Schließen von wird vom Aufrufer verwaltet.

Die Antwort Mono gibt einen Fehler aus, wenn content oder channel NULL ist.

Parameters:

content - Der Flux inhalt ByteBuffer .
channel - Die WritableByteChannel.

Returns:

EineMono, die eine Vervollständigung status ausgibt, sobald der Flux in den WritableByteChannelgeschrieben wurde.

Gilt für: