org.apache.storm.trident.operation.builtin

## Class Negate

- java.lang.Object
- - org.apache.storm.trident.operation.builtin.Negate

- All Implemented Interfaces:
    Serializable, EachOperation, Filter, Operation

      public class Negate
      extends Object
      implements Filter

  A `Filter` implementation that inverts another delegate `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); ```

  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Negate(Filter delegate)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Negate

          public Negate(Filter delegate)

  - ### Method Detail

    - #### isKeep

          public boolean isKeep(TridentTuple tuple)

      Description copied from interface: `Filter`

      Determines if a tuple should be filtered out of a stream.

      Specified by:
        `isKeep` in interface `Filter`
      Parameters:
        `tuple` - the tuple being evaluated
      Returns:
        `false` to drop the tuple, `true` to keep the tuple

    - #### prepare

          public void prepare(Map<String,Object> conf,
                              TridentOperationContext context)

      Description copied from interface: `Operation`

      Called when the `Operation` is first initialized.

      Specified by:
        `prepare` in interface `Operation`
      Parameters:
        `conf` - the Storm configuration map
        `context` - 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.
      See Also:
        `TridentOperationContext`

    - #### cleanup

          public void cleanup()

      Description copied from interface: `Operation`

      When running in local mode, called when the local cluster is being shut down.

      Specified by:
        `cleanup` in interface `Operation`

Copyright © 2021 The Apache Software Foundation. All rights reserved.