test_class.declarator: intSerde = Serdes.Integer()
test_class.modifier: final private
test_class.original_string: final private Serde<Integer> intSerde = Serdes.Integer();
test_class.type: Serde<Integer>
test_class.var_name: intSerde
test_class.declarator: stringSerde = Serdes.String()
test_class.modifier: final private
test_class.original_string: final private Serde<String> stringSerde = Serdes.String();
test_class.type: Serde<String>
test_class.var_name: stringSerde
test_class.declarator: driver = null
test_class.modifier: private
test_class.original_string: private KStreamTestDriver driver = null;
test_class.type: KStreamTestDriver
test_class.var_name: driver
test_class.declarator: stateDir = null
test_class.modifier: private
test_class.original_string: private File stateDir = null;
test_class.type: File
test_class.var_name: stateDir
test_class.file: streams/src/test/java/org/apache/kafka/streams/kstream/internals/KTableFilterTest.java
test_class.identifier: KTableFilterTest
test_case.body: @Test
      public void testSendingOldValue() throws IOException {
          KStreamBuilder builder = new KStreamBuilder();
  
          String topic1 = "topic1";
  
          KTableImpl<String, Integer, Integer> table1 =
                  (KTableImpl<String, Integer, Integer>) builder.table(stringSerde, intSerde, topic1);
          KTableImpl<String, Integer, Integer> table2 = (KTableImpl<String, Integer, Integer>) table1.filter(
                  new Predicate<String, Integer>() {
                      @Override
                      public boolean test(String key, Integer value) {
                          return (value % 2) == 0;
                      }
                  });
  
          table2.enableSendingOldValues();
  
          MockProcessorSupplier<String, Integer> proc1 = new MockProcessorSupplier<>();
          MockProcessorSupplier<String, Integer> proc2 = new MockProcessorSupplier<>();
  
          builder.addProcessor("proc1", proc1, table1.name);
          builder.addProcessor("proc2", proc2, table2.name);
  
          driver = new KStreamTestDriver(builder, stateDir, null, null);
  
          driver.process(topic1, "A", 1);
          driver.process(topic1, "B", 1);
          driver.process(topic1, "C", 1);
  
          proc1.checkAndClearProcessResult("A:(1<-null)", "B:(1<-null)", "C:(1<-null)");
          proc2.checkEmptyAndClearProcessResult();
  
          driver.process(topic1, "A", 2);
          driver.process(topic1, "B", 2);
  
          proc1.checkAndClearProcessResult("A:(2<-1)", "B:(2<-1)");
          proc2.checkAndClearProcessResult("A:(2<-null)", "B:(2<-null)");
  
          driver.process(topic1, "A", 3);
  
          proc1.checkAndClearProcessResult("A:(3<-2)");
          proc2.checkAndClearProcessResult("A:(null<-2)");
  
          driver.process(topic1, "A", null);
          driver.process(topic1, "B", null);
  
          proc1.checkAndClearProcessResult("A:(null<-3)", "B:(null<-2)");
          proc2.checkAndClearProcessResult("B:(null<-2)");
      }
test_case.class_method_signature: KTableFilterTest.testSendingOldValue()
test_case.full_signature: @Test public void testSendingOldValue()
test_case.identifier: testSendingOldValue
test_case.invocations: table filter enableSendingOldValues addProcessor addProcessor process process process checkAndClearProcessResult checkEmptyAndClearProcessResult process process checkAndClearProcessResult checkAndClearProcessResult process checkAndClearProcessResult checkAndClearProcessResult process process checkAndClearProcessResult checkAndClearProcessResult
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testSendingOldValue()
focal_class.declarator: parent
focal_class.modifier: private final
focal_class.original_string: private final KTableImpl<K, ?, V> parent;
focal_class.type: KTableImpl<K, ?, V>
focal_class.var_name: parent
focal_class.declarator: predicate
focal_class.modifier: private final
focal_class.original_string: private final Predicate<K, V> predicate;
focal_class.type: Predicate<K, V>
focal_class.var_name: predicate
focal_class.declarator: filterNot
focal_class.modifier: private final
focal_class.original_string: private final boolean filterNot;
focal_class.type: boolean
focal_class.var_name: filterNot
focal_class.declarator: sendOldValues = false
focal_class.modifier: private
focal_class.original_string: private boolean sendOldValues = false;
focal_class.type: boolean
focal_class.var_name: sendOldValues
focal_class.file: streams/src/main/java/org/apache/kafka/streams/kstream/internals/KTableFilter.java
focal_class.identifier: KTableFilter
focal_class.interfaces: implements KTableProcessorSupplier<K, V, V>
focal_class.class_method_signature: KTableFilter.KTableFilter(KTableImpl<K, ?, V> parent, Predicate<K, V> predicate, boolean filterNot)
focal_class.full_signature: public  KTableFilter(KTableImpl<K, ?, V> parent, Predicate<K, V> predicate, boolean filterNot)
focal_class.identifier: KTableFilter
focal_class.modifiers: public
focal_class.parameters: (KTableImpl<K, ?, V> parent, Predicate<K, V> predicate, boolean filterNot)
focal_class.signature:  KTableFilter(KTableImpl<K, ?, V> parent, Predicate<K, V> predicate, boolean filterNot)
focal_class.class_method_signature: KTableFilter.get()
focal_class.full_signature: @Override public Processor<K, Change<V>> get()
focal_class.identifier: get
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Processor<K, Change<V>>
focal_class.signature: Processor<K, Change<V>> get()
focal_class.class_method_signature: KTableFilter.view()
focal_class.full_signature: @Override public KTableValueGetterSupplier<K, V> view()
focal_class.identifier: view
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: KTableValueGetterSupplier<K, V>
focal_class.signature: KTableValueGetterSupplier<K, V> view()
focal_class.class_method_signature: KTableFilter.enableSendingOldValues()
focal_class.full_signature: @Override public void enableSendingOldValues()
focal_class.identifier: enableSendingOldValues
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void enableSendingOldValues()
focal_class.class_method_signature: KTableFilter.computeValue(K key, V value)
focal_class.full_signature: private V computeValue(K key, V value)
focal_class.identifier: computeValue
focal_class.modifiers: private
focal_class.parameters: (K key, V value)
focal_class.return: V
focal_class.signature: V computeValue(K key, V value)
focal_method.body: @Override
      public void enableSendingOldValues() {
          parent.enableSendingOldValues();
          sendOldValues = true;
      }
focal_method.class_method_signature: KTableFilter.enableSendingOldValues()
focal_method.full_signature: @Override public void enableSendingOldValues()
focal_method.identifier: enableSendingOldValues
focal_method.invocations: enableSendingOldValues
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: void
focal_method.signature: void enableSendingOldValues()