Package fr.openwide.maven.artifact.notifier.core.business.artifact.service

Source Code of fr.openwide.maven.artifact.notifier.core.business.artifact.service.ArtifactServiceImpl

package fr.openwide.maven.artifact.notifier.core.business.artifact.service;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import fr.openwide.core.jpa.business.generic.service.GenericEntityServiceImpl;
import fr.openwide.core.jpa.exception.SecurityServiceException;
import fr.openwide.core.jpa.exception.ServiceException;
import fr.openwide.maven.artifact.notifier.core.business.artifact.dao.IArtifactDao;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactDeprecationStatus;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactGroup;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactKey;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactStatus;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.ArtifactVersion;
import fr.openwide.maven.artifact.notifier.core.business.artifact.model.Artifact_;

@Service("artifactService")
public class ArtifactServiceImpl extends GenericEntityServiceImpl<Long, Artifact> implements IArtifactService {
 
  private IArtifactDao artifactDao;
 
  @Autowired
  private IArtifactGroupService artifactGroupService;
 
  @Autowired
  private IFollowedArtifactService followedArtifactService;
 
  @Autowired
  public ArtifactServiceImpl(IArtifactDao artifactDao) {
    super(artifactDao);
    this.artifactDao = artifactDao;
  }
 
  @Override
  public void delete(Artifact entity) throws ServiceException, SecurityServiceException {
    followedArtifactService.deleteNotifications(entity);
    super.delete(entity);
  }
 
  @Override
  public Artifact getOrCreate(ArtifactKey artifactKey) throws ServiceException, SecurityServiceException {
    ArtifactGroup artifactGroup = artifactGroupService.getOrCreate(artifactKey.getGroupId());
   
    Artifact artifact = getByArtifactKey(artifactKey);
    if (artifact == null) {
      artifact = new Artifact(artifactKey.getArtifactId());
      artifactGroup.addArtifact(artifact);
      create(artifact);
    }
   
    return artifact;
  }

  @Override
  public List<Artifact> listByArtifactGroup(ArtifactGroup group) {
    return listByField(Artifact_.group, group);
  }
 
  @Override
  public List<Artifact> listByStatus(ArtifactStatus status) {
    return listByField(Artifact_.status, status);
  }

  @Override
  public Artifact getByArtifactKey(ArtifactKey artifactKey) {
    return artifactDao.getByGroupIdArtifactId(artifactKey.getGroupId(), artifactKey.getArtifactId());
  }
 
  @Override
  public List<ArtifactVersion> listArtifactVersionsAfterDate(Artifact artifact, Date date) {
    return artifactDao.listArtifactVersionsAfterDate(artifact, date);
  }
 
  @Override
  public List<Artifact> listRelatedDeprecatedArtifacts(Artifact artifact) {
    return artifactDao.listByField(Artifact_.relatedArtifact, artifact);
  }
 
  @Override
  public List<Artifact> listMostFollowedArtifacts(int limit) {
    return artifactDao.listMostFollowedArtifacts(limit);
  }
 
  @Override
  public List<Artifact> searchAutocomplete(String searchPattern, Integer limit, Integer offset) throws ServiceException {
    return artifactDao.searchAutocomplete(searchPattern, limit, offset);
  }
 
  @Override
  public List<Artifact> searchAutocompleteWithoutProject(String searchPattern, Integer limit, Integer offset) throws ServiceException {
    return artifactDao.searchAutocompleteWithoutProject(searchPattern, limit, offset);
  }
 
  @Override
  public List<Artifact> searchByName(String searchPattern, ArtifactDeprecationStatus deprecation, Integer limit, Integer offset) {
    return artifactDao.searchByName(searchPattern, deprecation, limit, offset);
  }
 
  @Override
  public int countSearchByName(String searchTerm, ArtifactDeprecationStatus deprecation) {
    return artifactDao.countSearchByName(searchTerm, deprecation);
  }
 
  @Override
  public List<Artifact> searchRecommended(String searchPattern, Integer limit, Integer offset) throws ServiceException {
    return artifactDao.searchRecommended(searchPattern, limit, offset);
  }
 
  @Override
  public int countSearchRecommended(String searchTerm) throws ServiceException {
    return artifactDao.countSearchRecommended(searchTerm);
  }
 
  @Override
  public boolean hasProject(Artifact artifact) {
    return artifact != null && artifact.getProject() != null;
  }
}
TOP

Related Classes of fr.openwide.maven.artifact.notifier.core.business.artifact.service.ArtifactServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.