SideInputHandler implements ReadyCheckingSideInputReader { @Override public boolean isEmpty() { return sideInputs.isEmpty(); } SideInputHandler(
      Collection<PCollectionView<?>> sideInputs, StateInternals stateInternals); void addSideInputValue(PCollectionView<?> sideInput, WindowedValue<Iterable<?>> value); @Nullable @Override T get(PCollectionView<T> view, BoundedWindow window); Iterable<?> getIterable(PCollectionView<T> view, BoundedWindow window); @Override boolean isReady(PCollectionView<?> sideInput, BoundedWindow window); @Override boolean contains(PCollectionView<T> view); @Override boolean isEmpty();  }
@Test public void testIsEmpty() { SideInputHandler sideInputHandler = new SideInputHandler(ImmutableList.of(view1), InMemoryStateInternals.<Void>forKey(null)); assertFalse(sideInputHandler.isEmpty()); SideInputHandler emptySideInputHandler = new SideInputHandler(ImmutableList.of(), InMemoryStateInternals.<Void>forKey(null)); assertTrue(emptySideInputHandler.isEmpty()); }