コード例 #1
0
 private Map<Long, ProductTypeAttrDTO> mapAvById(final List<ProductTypeAttrDTO> entityAttributes) {
   Map<Long, ProductTypeAttrDTO> map = new HashMap<Long, ProductTypeAttrDTO>();
   for (final ProductTypeAttrDTO dto : entityAttributes) {
     map.put(dto.getProductTypeAttrId(), dto);
   }
   return map;
 }
コード例 #2
0
  /** {@inheritDoc} */
  public List<VoProductTypeAttr> update(final List<MutablePair<VoProductTypeAttr, Boolean>> vo)
      throws Exception {

    long typeId = 0L;
    if (federationFacade.isCurrentUserSystemAdmin()) {

      final VoAssemblySupport.VoAssembler<VoProductTypeAttr, ProductTypeAttrDTO> asm =
          voAssemblySupport.with(VoProductTypeAttr.class, ProductTypeAttrDTO.class);

      Map<Long, ProductTypeAttrDTO> existing = Collections.emptyMap();
      for (final MutablePair<VoProductTypeAttr, Boolean> item : vo) {
        if (typeId == 0L) {
          typeId = item.getFirst().getProducttypeId();
          existing = mapAvById((List) dtoProductTypeAttrService.getByProductTypeId(typeId));
        } else if (typeId != item.getFirst().getProducttypeId()) {
          throw new AccessDeniedException("Access is denied");
        }

        if (Boolean.valueOf(item.getSecond())) {
          if (item.getFirst().getProductTypeAttrId() > 0L) {
            // delete mode
            dtoProductTypeAttrService.remove(item.getFirst().getProductTypeAttrId());
          }
        } else if (item.getFirst().getProductTypeAttrId() > 0L) {
          // update mode
          final ProductTypeAttrDTO dto = existing.get(item.getFirst().getProductTypeAttrId());
          if (dto != null) {
            asm.assembleDto(dto, item.getFirst());
            dtoProductTypeAttrService.update(dto);
          } else {
            ShopCodeContext.getLog(this)
                .warn(
                    "Update skipped for inexistent ID {}", item.getFirst().getProductTypeAttrId());
          }
        } else {
          // insert mode
          final ProductTypeAttrDTO dto = dtoProductTypeAttrService.getNew();
          dto.setProducttypeId(typeId);
          dto.setAttributeDTO(
              dtoAttributeService.getById(item.getFirst().getAttribute().getAttributeId()));
          asm.assembleDto(dto, item.getFirst());
          this.dtoProductTypeAttrService.create(dto);
        }
      }

    } else {
      throw new AccessDeniedException("Access is denied");
    }

    return getTypeAttributes(typeId);
  }