Delen via


SqlRuleFilter Class

public class SqlRuleFilter
extends RuleFilter

Represents a filter which is a composition of an expression and an action that is executed in the pub/sub pipeline.

A SqlRuleFilter holds a SQL-like condition expression that is evaluated in the broker against the arriving messages' user-defined properties and system properties. All system properties (which are all properties explicitly listed on the ServiceBusMessage class) must be prefixed with sys. in the condition expression. The SQL subset implements testing for existence of properties (EXISTS), testing for null-values (IS NULL), logical NOT/AND/OR, relational operators, numeric arithmetic, and simple text pattern matching with LIKE.

Sample: Create SQL rule filter with SQL rule action

The code sample below creates a rule using a SQL filter and SQL action. The rule matches messages with:

If the filter matches, it will set/update the "importance" key in getApplicationProperties() with "critical".

String topicName = "emails";
 String subscriptionName = "important-emails";
 String ruleName = "emails-from-joseph";

 RuleFilter sqlRuleFilter = new SqlRuleFilter(
     "sys.CorrelationId = 'email' AND sender = 'joseph' AND (importance IS NULL OR importance = 'high')");
 RuleAction sqlRuleAction = new SqlRuleAction("SET importance = 'critical';");
 CreateRuleOptions createRuleOptions = new CreateRuleOptions()
     .setFilter(sqlRuleFilter)
     .setAction(sqlRuleAction);

 RuleProperties rule = client.createRule(topicName, ruleName, subscriptionName, createRuleOptions);

 System.out.printf("Rule '%s' created for topic %s, subscription %s. Filter: %s%n", rule.getName(), topicName,
     subscriptionName, rule.getFilter());

Constructor Summary

Constructor Description
SqlRuleFilter(String sqlExpression)

Creates a new instance with the given SQL expression.

Method Summary

Modifier and Type Method and Description
boolean equals(Object other)

Compares this RuleFilter to the specified object.

Map<String,Object> getParameters()

Gets the value of a filter expression.

String getSqlExpression()

Gets the SQL expression.

int hashCode()

Returns a hash code for this SqlRuleFilter, which is the hashcode for the SqlExpression.

String toString()

Converts the value of the current instance to its equivalent string representation.

Methods inherited from java.lang.Object

Constructor Details

SqlRuleFilter

public SqlRuleFilter(String sqlExpression)

Creates a new instance with the given SQL expression.

Parameters:

sqlExpression - SQL expression for the filter.

Method Details

equals

public boolean equals(Object other)

Compares this RuleFilter to the specified object. The result is true if and only if the argument is not null and is a SqlRuleFilter object that with the same parameters as this object.

Overrides:

SqlRuleFilter.equals(Object other)

Parameters:

other -
  • the object to which the current SqlRuleFilter should be compared.

Returns:

True, if the passed object is a SqlRuleFilter with the same parameter values, False otherwise.

getParameters

public Map getParameters()

Gets the value of a filter expression. Allowed types: string, int, long, bool, double

Returns:

Gets the value of a filter expression.

getSqlExpression

public String getSqlExpression()

Gets the SQL expression.

Returns:

The SQL expression.

hashCode

public int hashCode()

Returns a hash code for this SqlRuleFilter, which is the hashcode for the SqlExpression.

Overrides:

SqlRuleFilter.hashCode()

Returns:

a hash code value for this object.

toString

public String toString()

Converts the value of the current instance to its equivalent string representation.

Overrides:

SqlRuleFilter.toString()

Returns:

A string representation of the current instance.

Applies to