/**
   * creates DTO object from this entity
   *
   * @param buildingKit buildingKit entity
   * @return BuildingKitDto dto object
   */
  public static BuildingKitDto convertToDto(BuildingKit buildingKit) {
    if (buildingKit == null) {

      throw new IllegalArgumentException("Entity can not be NULL");
    }
    BuildingKitDto buildingKitDto = new BuildingKitDto();
    buildingKitDto.setId(buildingKit.getId());
    buildingKitDto.setName(buildingKit.getName());
    buildingKitDto.setYearFrom(buildingKit.getYearFrom());
    buildingKitDto.setPrice(buildingKit.getPrice());
    buildingKitDto.setDescription(buildingKit.getDescription());

    ThemeSet themeSet = buildingKit.getThemeSet();
    if (themeSet != null) {
      buildingKitDto.setThemeSet(ThemeSetConversion.convertToDto(themeSet));
    }

    Category category = buildingKit.getCategory();
    if (category != null) {
      buildingKitDto.setCategory(CategoryConversion.conversionToDto(category));
    }

    Map<BrickDto, Integer> bricksDto = new HashMap<BrickDto, Integer>();
    Map<Brick, Integer> bricks = buildingKit.getBricks();
    if (bricks != null) {
      for (Brick brick : bricks.keySet()) {
        bricksDto.put(BrickConversion.convertToDto(brick), bricks.get(brick));
      }
      buildingKitDto.setBricks(bricksDto);
    }
    return buildingKitDto;
  }