public class Negate extends Object implements Filter
The `Negate.isKeep()` method simply returns the opposite of the delegate's `isKeep()` method:
```java public boolean isKeep(TridentTuple tuple) { return !this.delegate.isKeep(tuple); } ```
The `Negate` filter is useful for dividing a Stream in two based on some boolean condition.
Suppose we had a Stream named `userStream` containing information about users, and a custom `Filter` implementation, `RegisteredUserFilter` that filtered out unregistered users. We could divide the `userStream` Stream into two separate Streams -- one for registered users, and one for unregistered users -- by doing the following:
```java Stream userStream = ...
Filter registeredFilter = new ResisteredUserFilter(); Filter unregisteredFilter = new Negate(registeredFilter);
Stream registeredUserStream = userStream.each(userStream.getOutputFields(), registeredFilter); Stream unregisteredUserStream = userStream.each(userStream.getOutputFields(), unregisteredFilter); ```
Modifier and Type | Method and Description |
---|---|
void |
cleanup()
When running in local mode, called when the local cluster is being shut down.
|
boolean |
isKeep(TridentTuple tuple)
Determines if a tuple should be filtered out of a stream.
|
void |
prepare(Map<String,Object> conf,
TridentOperationContext context)
Called when the `Operation` is first initialized.
|
public Negate(Filter delegate)
public boolean isKeep(TridentTuple tuple)
Filter
public void prepare(Map<String,Object> conf, TridentOperationContext context)
Operation
prepare
in interface Operation
conf
- the Storm configuration mapcontext
- the operation context which provides information such as the number of partitions in the stream, and the current
partition index. It also provides methods for registering operation-specific metrics.TridentOperationContext
Copyright © 2023 The Apache Software Foundation. All rights reserved.