move vocabulary tests to vocabulary service and fix @Ignore, remove deprecated method...
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / molecular / SequenceServiceImpl.java
1 // $Id$
2 /**
3 * Copyright (C) 2014 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.cdm.api.service.molecular;
11
12 import java.util.ArrayList;
13 import java.util.Collection;
14 import java.util.HashMap;
15 import java.util.Map;
16
17 import org.apache.log4j.Logger;
18 import org.springframework.beans.factory.annotation.Autowired;
19 import org.springframework.stereotype.Service;
20 import org.springframework.transaction.annotation.Transactional;
21
22 import eu.etaxonomy.cdm.api.service.AnnotatableServiceBase;
23 import eu.etaxonomy.cdm.api.service.PreferenceServiceImpl;
24 import eu.etaxonomy.cdm.model.molecular.Sequence;
25 import eu.etaxonomy.cdm.model.molecular.SingleRead;
26 import eu.etaxonomy.cdm.persistence.dao.molecular.ISequenceDao;
27
28 /**
29 * @author pplitzner
30 * @date 11.03.2014
31 *
32 */
33 @Service
34 @Transactional(readOnly = true)
35 public class SequenceServiceImpl extends AnnotatableServiceBase<Sequence, ISequenceDao> implements ISequenceService{
36 private static final Logger logger = Logger.getLogger(PreferenceServiceImpl.class);
37
38 /* (non-Javadoc)
39 * @see eu.etaxonomy.cdm.api.service.ServiceBase#setDao(eu.etaxonomy.cdm.persistence.dao.common.ICdmEntityDao)
40 */
41 @Override
42 @Autowired
43 protected void setDao(ISequenceDao dao) {
44 this.dao = dao;
45 }
46
47 /* (non-Javadoc)
48 * @see eu.etaxonomy.cdm.api.service.ISequenceService#moveSingleRead(eu.etaxonomy.cdm.model.molecular.Sequence, eu.etaxonomy.cdm.model.molecular.Sequence, eu.etaxonomy.cdm.model.molecular.SingleRead)
49 */
50 @Override
51 public boolean moveSingleRead(Sequence from, Sequence to, SingleRead singleRead) {
52 from.removeSingleRead(singleRead);
53 saveOrUpdate(from);
54 to.addSingleRead(singleRead);
55 saveOrUpdate(to);
56 return true;
57 }
58
59 /* (non-Javadoc)
60 * @see eu.etaxonomy.cdm.api.service.molecular.ISequenceService#getSingleReadSequenceMap()
61 */
62 @Override
63 public Map<SingleRead, Collection<Sequence>> getSingleReadSequencesMap() {
64 Map<SingleRead, Collection<Sequence>> singleReadToSequences = new HashMap<SingleRead, Collection<Sequence>>();
65 for(Sequence sequence:list(Sequence.class, null, null, null, null)){
66 for(SingleRead singleRead:sequence.getSingleReads()){
67 Collection<Sequence> sequences = singleReadToSequences.get(singleRead);
68 if(sequences==null){
69 sequences = new ArrayList<Sequence>();
70 }
71 sequences.add(sequence);
72 singleReadToSequences.put(singleRead, sequences);
73 }
74 }
75 return singleReadToSequences;
76 }
77 }