/** * Gets {@link HUItemExpectation} for given <code>piItem</code>. * * @param piItem * @return * @return {@link HUItemExpectation}; never return null */ public HUItemExpectation<HUExpectation<ParentExpectationType>> huItemExpectation( final I_M_HU_PI_Item piItem) { Check.assumeNotNull(piItem, "piItem not null"); Check.assumeNotNull(huItemExpectations, "huItemExpectations not null"); final List<HUItemExpectation<HUExpectation<ParentExpectationType>>> result = new ArrayList<>(); for (final HUItemExpectation<HUExpectation<ParentExpectationType>> huItemExpectation : huItemExpectations) { final I_M_HU_PI_Item current_piItem = huItemExpectation.getM_HU_PI_Item(); if (current_piItem == null) { continue; } if (current_piItem.getM_HU_PI_Item_ID() != piItem.getM_HU_PI_Item_ID()) { continue; } result.add(huItemExpectation); } if (result.isEmpty()) { throw new IllegalArgumentException("No HU Item Expectation found for " + piItem); } else if (result.size() > 1) { throw new IllegalArgumentException( "More then one HU Item Expectation found for " + piItem + "\n\n" + result); } return result.get(0); }