EN · DE · RU · FR · ES

#137: LicenseDao.java

plugins/org.projectforge.plugins.licensemanagement/src/main/java/org/projectforge/plugins/licensemanagement/LicenseDao.java Type: Java · Role: Data Access Object · Source: plugins/org.projectforge.plugins.licensemanagement/src/main/java/org/projectforge/plugins/licensemanagement/LicenseDao.java 93 lines · 49 code · 34 comments · 10 blank
Data Access Object for License entities. Extends BaseDao to provide CRUD operations, Hibernate Search queries, and business-logic-level data access.

Code Structure

Package: org.projectforge.plugins.licensemanagement

Classes: LicenseDao

Extends: BaseDao

Methods (4): setOwners, getSortedOwners, getSortedOwnernames, newInstance

Fields (1): usersProvider

Imports: 9 packages

Source Code (abridged)

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);
  }

  /**
   * Please note: Only the string license.owners will be modified (but not be saved)!
   *
   * @param license
   * @param owners Full list of all owners (user id's) which have are assigned to this license.
   * @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 History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
a72903e36 *.java, *.kt: StringBuffer -> StringBuilder.
5bafe7941 @Repository -> @Service. @Transactional-Annotations removed.
b6092df09 Copyright 2023 -> 2024