All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fi.foyt.fni.persistence.dao.materials.VectorImageDAO Maven / Gradle / Ivy

There is a newer version: 3.3.13
Show newest version
package fi.foyt.fni.persistence.dao.materials;

import java.util.Date;

import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;

import fi.foyt.fni.persistence.dao.GenericDAO;
import fi.foyt.fni.persistence.model.common.Language;
import fi.foyt.fni.persistence.model.materials.Folder;
import fi.foyt.fni.persistence.model.materials.MaterialPublicity;
import fi.foyt.fni.persistence.model.materials.VectorImage;
import fi.foyt.fni.persistence.model.materials.VectorImage_;
import fi.foyt.fni.persistence.model.users.User;

public class VectorImageDAO extends GenericDAO {

	private static final long serialVersionUID = 1L;

	public VectorImage create(User creator, Language language, Folder parentFolder,  String urlName, String title, String data, MaterialPublicity publicity) {
    EntityManager entityManager = getEntityManager();

    Date now = new Date();

    VectorImage vectorImage = new VectorImage();
    vectorImage.setCreated(now);
    vectorImage.setCreator(creator);
    vectorImage.setData(data);
    vectorImage.setLanguage(language);
    vectorImage.setModified(now);
    vectorImage.setModifier(creator);
    vectorImage.setParentFolder(parentFolder);
    vectorImage.setTitle(title);
    vectorImage.setUrlName(urlName);
    vectorImage.setPublicity(publicity);
    
    entityManager.persist(vectorImage);

    return vectorImage;
  }

  public Number lengthDataByCreator(User creator) {
    EntityManager entityManager = getEntityManager();

    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery criteria = criteriaBuilder.createQuery(Number.class);
    Root root = criteria.from(VectorImage.class);
    criteria.select(
      criteriaBuilder.coalesce(
        criteriaBuilder.sum(
          criteriaBuilder.length(root.get(VectorImage_.data))
        ),
        0
      )
    );

    criteria.where(
      criteriaBuilder.equal(root.get(VectorImage_.creator), creator)
    );
    
    return entityManager.createQuery(criteria).getSingleResult();
  }

  public VectorImage updateData(VectorImage vectorImage, User modifier, String data) {
    EntityManager entityManager = getEntityManager();

    vectorImage.setData(data);
    vectorImage.setModified(new Date());
    vectorImage.setModifier(modifier);
    
    entityManager.persist(vectorImage);
    return vectorImage;
  }

  public VectorImage updateLanguage(VectorImage vectorImage, User modifier, Language language) {
    EntityManager entityManager = getEntityManager();

    vectorImage.setLanguage(language);
    vectorImage.setModified(new Date());
    vectorImage.setModifier(modifier);
    
    entityManager.persist(vectorImage);
    return vectorImage;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy