package ru.ibs.socrates.confexporter.service.content.utils;

import java.util.UUID;
import org.mapstruct.Mapper;
import org.mapstruct.Named;


/**
 * Утилитный маппер String <-> UUID.
 */
@Mapper
public interface UuidMapper {

  /**
   * UUID -> toString.
   * 
   * @param uuid
   * @return
   */
  default String asString(UUID uuid) {
    if (uuid == null) {
      return null;
    }
    return uuid.toString();
  }

  /**
   * String -> UUID.
   * 
   * @param uuid
   * @return
   */
  default UUID asUuuid(String uuid) {
    if (uuid == null) {
      return null;
    }
    return UUID.fromString(uuid);
  }

  /**
   * Случайный UUID.
   * 
   * @param i
   * @return
   */
  @Named("randomUUID")
  default UUID randomUuid(int i) {
    return UUID.randomUUID();
  }

}
