public interface UpdateConstraint
Constraints describe a condition that must be satisfied for an operation to succeed. Constraints can be applied to the setting of a value or creation of an update stream. Constraints are only evaluated on the server.
The constraints are evaluated using the:
The value of a topic can be described in several ways. The value can be described as an exact value, a partial value or an unset value.
Constraints can be composed with one another using logical ANDs or ORs. It is possible to compose a constraint that can never be satisfied although certain combinations, such as ANDing two incompatible constraints are prevented. Multiple session locks can be held but a topic can only have a single value.
Constraints can be created using a UpdateConstraint.Factory
, an
instance of which can be obtained using
update
constraints
. For example:
UpdateConstraint.Factory factory = Diffusion.updateConstraints();
UpdateConstraint constraint = factory.locked(lock).and(factory.value(EQ, expectedValue));
Modifier and Type | Interface and Description |
---|---|
static interface |
UpdateConstraint.Factory
Factory for the constraint types.
|
static class |
UpdateConstraint.Operator
An operator used in a constraint comparison.
|
static interface |
UpdateConstraint.PartialJSON
A constraint requiring the current value of a
JSON
topic to match the partially described value. |
Modifier and Type | Method and Description |
---|---|
UpdateConstraint |
and(UpdateConstraint other)
Returns a composed constraint that represents a logical AND of this
constraint and another.
|
UpdateConstraint |
or(UpdateConstraint other)
Returns a composed constraint that represents a logical OR of this
constraint and another.
|
UpdateConstraint and(UpdateConstraint other)
other
- a constraint that will be logically-ANDed with this
constraintother
constraintIllegalArgumentException
- if the composed constraint would be
unsatisfiableUpdateConstraint or(UpdateConstraint other)
other
- a constraint that will be logically-ORed with this
constraintother
constraintCopyright © 2024 DiffusionData Ltd. All Rights Reserved.