PojoInnerJoin extends AbstractPojoJoin<InputT1, InputT2> { public PojoInnerJoin() { super(); } PojoInnerJoin(); @Deprecated  PojoInnerJoin(int num, Class<?> outClass, String... keys);  PojoInnerJoin(Class<?> outClass, String[] leftKeys, String[] rightKeys);  PojoInnerJoin(Class<?> outClass, String[] leftKeys, String[] rightKeys, Map<String, KeyValPair<STREAM, String>> outputToInputMap); @Override void addNonMatchingResult(Collection<Object> left, Map<String,PojoUtils.Getter> leftGettersStream, List<Object> result); @Override void addNonMatchingRightStream(Multimap<List<Object>, Object> rightStream,
      Map<String,PojoUtils.Getter> rightGettersStream, List<Object> result); @Override int getLeftStreamIndex();  }
@Test public void PojoInnerJoinTest() { PojoInnerJoin<TestPojo1, TestPojo3> pij = new PojoInnerJoin<>(2, TestOutClass.class, "uId", "uId"); List<Multimap<List<Object>, Object>> accu = pij.defaultAccumulatedValue(); Assert.assertEquals(2, accu.size()); accu = pij.accumulate(accu, new TestPojo1(1, "Josh")); accu = pij.accumulate(accu, new TestPojo1(2, "Bob")); accu = pij.accumulate2(accu, new TestPojo3(1, "NickJosh", 12)); accu = pij.accumulate2(accu, new TestPojo3(3, "NickBob", 13)); Map<String, Object> result = new HashMap<>(); result.put("uId", 1); result.put("uName", "Josh"); result.put("uNickName", "NickJosh"); result.put("age", 12); Assert.assertEquals(1, pij.getOutput(accu).size()); Object o = pij.getOutput(accu).get(0); Assert.assertTrue(o instanceof TestOutClass); TestOutClass testOutClass = (TestOutClass)o; Assert.assertEquals(1, testOutClass.getUId()); Assert.assertEquals("Josh", testOutClass.getUName()); Assert.assertEquals(12, testOutClass.getAge()); }