Freigeben über


CorrelationRuleFilter Klasse

public class CorrelationRuleFilter
extends RuleFilter

Stellt den Filterausdruck der Korrelationsregel dar. Es enthält eine Reihe von Bedingungen, die mit einer oder mehreren Benutzer- und Systemeigenschaften einer eingehenden Nachricht abgeglichen werden. Ein gängiger Anwendungsfall besteht darin, mit den Nachrichten abzugleichen:

Eine Übereinstimmung liegt vor, wenn der Wert einer Eigenschaft einer eingehenden Nachricht gleich dem im Korrelationsfilter angegebenen Wert ist. Für Zeichenfolgenausdrücke wird beim Vergleich die Groß-/Kleinschreibung beachtet. Beim Angeben mehrerer Übereinstimmungseigenschaften kombiniert der Filter diese als logische AND Bedingung, was bedeutet, dass alle Bedingungen übereinstimmen müssen, damit der Filter übereinstimmen kann.

Dies bietet eine effiziente Verknüpfung für Deklarationen von Filtern, die sich nur mit Korrelationsgleichheit befassen. In diesem Fall können die Kosten für die lexikographische Analyse des Ausdrucks vermieden werden. Korrelationsfilter werden nicht nur zur Deklarationszeit optimiert, sondern auch zur Laufzeit optimiert. Korrelationsfilterabgleich kann auf eine Hashtabellensuche reduziert werden, die die Komplexität der Gruppe der definierten Korrelationsfilter auf O(1)aggregiert.

Beispiel: Erstellen eines Themas, eines Abonnements und einer Regel

Im folgenden Codebeispiel wird die Erstellung eines Service Bus-Themas und -Abonnements veranschaulicht. Das Abonnement filtert nach Nachrichten mit einer Korrelations-ID "emails" und hat eine "importance" Eigenschaft auf "high"festgelegt. Folglich werden alle Nachrichten mit hoher Wichtigkeit an das "high-importance-subscription" Abonnement übermittelt. Weitere Informationen finden Sie unter Themenfilter .

String topicName = "my-new-topic";
 TopicProperties topic = client.createTopic(topicName);

 String subscriptionName = "high-importance-subscription";
 String ruleName = "important-emails-filter";
 CreateSubscriptionOptions subscriptionOptions = new CreateSubscriptionOptions()
     .setMaxDeliveryCount(15)
     .setLockDuration(Duration.ofMinutes(2));

 CorrelationRuleFilter ruleFilter = new CorrelationRuleFilter()
     .setCorrelationId("emails");
 ruleFilter.getProperties().put("importance", "high");

 CreateRuleOptions createRuleOptions = new CreateRuleOptions()
     .setFilter(ruleFilter);

 SubscriptionProperties subscription = client.createSubscription(topicName, subscriptionName, ruleName,
     subscriptionOptions, createRuleOptions);

 System.out.printf("Subscription created. Name: %s. Topic name: %s. Lock Duration: %s.%n",
     subscription.getSubscriptionName(), subscription.getTopicName(), subscription.getLockDuration());

Zusammenfassung zum Konstruktor

Konstruktor Beschreibung
CorrelationRuleFilter()

Initialisiert eine neue instance von CorrelationRuleFilter mit Standardwerten.

CorrelationRuleFilter(String correlationId)

Initialisiert eine neue instance von CorrelationRuleFilter mit Standardwerten mit dem angegebenen Korrelationsbezeichner.

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
boolean equals(Object other)

Vergleicht diesen Regelfiltermit dem angegebenen Objekt.

String getContentType()

Ruft den Inhaltstyp der Nachricht ab.

String getCorrelationId()

Ruft den Korrelationsbezeichner ab.

String getLabel()

Ruft die anwendungsspezifische Bezeichnung ab.

String getMessageId()

Ruft den Bezeichner für die Nachricht ab.

Map<String,Object> getProperties()

Ruft anwendungsspezifische Eigenschaften der Nachricht ab.

String getReplyTo()

Ruft die Adresse der Warteschlange oder des Abonnements ab, auf die zu antworten ist.

String getReplyToSessionId()

Ruft den Sitzungsbezeichner ab, auf den antworten soll.

String getSessionId()

Ruft den Sitzungsbezeichner ab.

String getTo()

Ruft die Adresse ab, an die gesendet werden soll.

int hashCode()

Gibt einen Hashcode für diesen Korrelationsregelfilterzurück.

CorrelationRuleFilter setContentType(String contentType)

Legt den Inhaltstyp der Nachricht fest.

CorrelationRuleFilter setCorrelationId(String correlationId)

Legt den Korrelationsbezeichner fest.

CorrelationRuleFilter setLabel(String label)

Legt die anwendungsspezifische Bezeichnung fest.

CorrelationRuleFilter setMessageId(String messageId)

Legt den Bezeichner für die Nachricht fest.

CorrelationRuleFilter setReplyTo(String replyTo)

Legt die Adresse der Warteschlange oder des Abonnements fest, an die bzw. das sie antworten sollen.

CorrelationRuleFilter setReplyToSessionId(String replyToSessionId)

Legt den Sitzungsbezeichner fest, auf den antworten soll.

CorrelationRuleFilter setSessionId(String sessionId)

Legt den Sitzungsbezeichner fest.

CorrelationRuleFilter setTo(String to)

Legt die Adresse fest, an die gesendet werden soll.

String toString()

Konvertiert den Wert des aktuellen instance in die entsprechende Zeichenfolgendarstellung.

Geerbte Methoden von java.lang.Object

Details zum Konstruktor

CorrelationRuleFilter

public CorrelationRuleFilter()

Initialisiert eine neue instance von CorrelationRuleFilter mit Standardwerten.

CorrelationRuleFilter

public CorrelationRuleFilter(String correlationId)

Initialisiert eine neue instance von CorrelationRuleFilter mit Standardwerten mit dem angegebenen Korrelationsbezeichner.

Parameters:

correlationId - Der Bezeichner für die Korrelation.

Details zur Methode

equals

public boolean equals(Object other)

Vergleicht diesen RuleFilter mit dem angegebenen Objekt. Das Ergebnis ist true, wenn und nur, wenn das Argument nicht NULL ist und ein CorrelationRuleFilter-Objekt ist, das die gleichen Parameter wie dieses Objekt aufweist.

Overrides:

CorrelationRuleFilter.equals(Object other)

Parameters:

other -
  • das Objekt, mit dem der aktuelle CorrelationRuleFilter verglichen werden soll.

Returns:

True, wenn das übergebene Objekt ein CorrelationRuleFilter mit den gleichen Parameterwerten ist, andernfalls False.

getContentType

public String getContentType()

Ruft den Inhaltstyp der Nachricht ab.

Returns:

Der Inhaltstyp der Nachricht.

getCorrelationId

public String getCorrelationId()

Ruft den Korrelationsbezeichner ab.

Returns:

Der Korrelationsbezeichner.

getLabel

public String getLabel()

Ruft die anwendungsspezifische Bezeichnung ab.

Returns:

Die anwendungsspezifische Bezeichnung.

getMessageId

public String getMessageId()

Ruft den Bezeichner für die Nachricht ab.

Returns:

Der Bezeichner für die Nachricht.

getProperties

public Map getProperties()

Ruft anwendungsspezifische Eigenschaften der Nachricht ab.

Returns:

Die anwendungsspezifischen Eigenschaften der Nachricht.

getReplyTo

public String getReplyTo()

Ruft die Adresse der Warteschlange oder des Abonnements ab, auf die zu antworten ist.

Returns:

Die Adresse der Warteschlange oder des Abonnements, auf die zu antworten ist.

getReplyToSessionId

public String getReplyToSessionId()

Ruft den Sitzungsbezeichner ab, auf den antworten soll.

Returns:

Der Sitzungsbezeichner, auf den antworten soll.

getSessionId

public String getSessionId()

Ruft den Sitzungsbezeichner ab.

Returns:

Die Sitzungs-ID.

getTo

public String getTo()

Ruft die Adresse ab, an die gesendet werden soll.

Returns:

Die Adresse, an die gesendet werden soll.

hashCode

public int hashCode()

Gibt einen Hashcode für diesen CorrelationRuleFilter zurück.

Overrides:

CorrelationRuleFilter.hashCode()

Returns:

ein Hashcodewert für dieses Objekt.

setContentType

public CorrelationRuleFilter setContentType(String contentType)

Legt den Inhaltstyp der Nachricht fest.

Parameters:

contentType - Der Inhaltstyp der Nachricht.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

setCorrelationId

public CorrelationRuleFilter setCorrelationId(String correlationId)

Legt den Korrelationsbezeichner fest.

Parameters:

correlationId - Der Korrelationsbezeichner.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

setLabel

public CorrelationRuleFilter setLabel(String label)

Legt die anwendungsspezifische Bezeichnung fest.

Parameters:

label - Die anwendungsspezifische Bezeichnung.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

setMessageId

public CorrelationRuleFilter setMessageId(String messageId)

Legt den Bezeichner für die Nachricht fest.

Parameters:

messageId - Der Bezeichner für die Nachricht.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

setReplyTo

public CorrelationRuleFilter setReplyTo(String replyTo)

Legt die Adresse der Warteschlange oder des Abonnements fest, an die bzw. das sie antworten sollen.

Parameters:

replyTo - Die Adresse der Warteschlange oder des Abonnements, auf die zu antworten ist.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

setReplyToSessionId

public CorrelationRuleFilter setReplyToSessionId(String replyToSessionId)

Legt den Sitzungsbezeichner fest, auf den antworten soll. Die maximale Größe von replyToSessionId ist 128.

Parameters:

replyToSessionId - Der Sitzungsbezeichner, auf den antworten soll.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

setSessionId

public CorrelationRuleFilter setSessionId(String sessionId)

Legt den Sitzungsbezeichner fest. Die maximale Größe von sessionId beträgt 128 Zeichen.

Parameters:

sessionId - Die Sitzungs-ID.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

setTo

public CorrelationRuleFilter setTo(String to)

Legt die Adresse fest, an die gesendet werden soll.

Parameters:

to - Die Adresse, an die gesendet werden soll.

Returns:

Der selbst aktualisiert CorrelationRuleFilter hat.

toString

public String toString()

Konvertiert den Wert des aktuellen instance in die entsprechende Zeichenfolgendarstellung.

Overrides:

CorrelationRuleFilter.toString()

Returns:

Eine Zeichenfolgenentsprechung der aktuellen Instanz.

Gilt für: