Ejemplo n.º 1
0
  /**
   * 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);
  }