EN · DE · RU · FR · ES

#137: LicenseDao.java

plugins/org.projectforge.plugins.licensemanagement/src/main/java/org/projectforge/plugins/licensemanagement/LicenseDao.java Тип: Java · Роль: Объект доступа к данным · Исходник: plugins/org.projectforge.plugins.licensemanagement/src/main/java/org/projectforge/plugins/licensemanagement/LicenseDao.java 93 строки · 49 кода · 34 комментария · 10 пустых
Объект доступа к данным для сущностей лицензий. Расширяет BaseDao, предоставляя CRUD-операции, поиск через Hibernate Search и доступ к данным на уровне бизнес-логики.

Структура кода

Пакет: org.projectforge.plugins.licensemanagement

Классы: LicenseDao

Расширяет: BaseDao

Методы (4): setOwners, getSortedOwners, getSortedOwnernames, newInstance

Поля (1): usersProvider

Импорты: 9 пакетов

Исходный код (сокращённый)

package org.projectforge.plugins.licensemanagement;

import org.apache.commons.collections4.CollectionUtils;
import org.projectforge.business.user.UserDao;
import org.projectforge.common.StringHelper;
import org.projectforge.framework.persistence.api.BaseDao;
import org.projectforge.framework.persistence.user.entities.PFUserDO;
import org.projectforge.web.user.UsersProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collection;

/**
 *
 * @author Kai Reinhard (k.reinhard@micromata.de)
 *
 */
@Service
public class LicenseDao extends BaseDao<LicenseDO>
{
  private final UsersProvider usersProvider;

  @Autowired
  UserDao userDao;

  public LicenseDao()
  {
    super(LicenseDO.class);
    userRightId = LicensemanagementPluginUserRightsId.PLUGIN_LICENSE_MANAGEMENT;
    usersProvider = new UsersProvider(userDao);
  }

  /**
   * Обратите внимание: будет изменена только строка license.owners (но не сохранена)!
   *
   * @param license
   * @param owners Полный список всех владельцев (идентификаторы пользователей), назначенных этой лицензии.
   * @return
   */
  public void setOwners(final LicenseDO license, final Collection<PFUserDO> owners)
  {
    license.setOwnerIds(usersProvider.getUserIds(owners));
  }

  public Collection<PFUserDO> getSortedOwners(final LicenseDO license)
  {
    return usersProvider.getSortedUsers(license.getOwnerIds());
  }

  public String getSortedOwnernames(final LicenseDO license)
  {
    final Collection<PFUserDO> sortedOwners = getSortedOwners(license);
    if (CollectionUtils.isEmpty(sortedOwners)) {
      return "";
    }
    final StringBuilder buf = new StringBuilder();
    boolean first = true;
    for (final PFUserDO owner : sortedOwners) {
      first = StringHelper.append(buf, first, owner.getFullname(), ", ");
    }
    return buf.toString();
  }

  @Override
  public LicenseDO newInstance()
  {
    return new LicenseDO();
  }
}

История Git

868d6abb7 2025 -> 2026
63081666f Заголовки исходных файлов: 2024 -> 2025.
a72903e36 *.java, *.kt: StringBuffer -> StringBuilder.
5bafe7941 @Repository -> @Service. @Transactional-аннотации удалены.
b6092df09 Авторские права 2023 -> 2024