Project

General

Profile

« Previous | Next » 

Revision 8b7b8537

Added by Patrick Plitzner about 5 years ago

ref #6413 Replace service method parameters with UUIDs

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/INameService.java
70 70
	 * @param name the name where this type designation will be added to
71 71
	 * @param baseDesignation the type specimen of this designation is cloned to create the new specimen
72 72
 	 * @param accessionNumber the accession number of the clones specimen
73
	 * @param collection the collection the cloned specimen belongs to
73
	 * @param collectionUuid the collection the cloned specimen belongs to
74 74
	 * @param typeStatus the type status of the cloned specimen
75 75
	 * @return an {@link UpdateResult}
76 76
	 */
77
    public UpdateResult cloneTypeDesignation(TaxonName name, SpecimenTypeDesignation baseDesignation,
78
            String accessionNumber, eu.etaxonomy.cdm.model.occurrence.Collection collection, SpecimenTypeDesignationStatus typeStatus);
77
    public UpdateResult cloneTypeDesignation(UUID nameUuid, SpecimenTypeDesignation baseDesignation,
78
            String accessionNumber, UUID collectionUuid, SpecimenTypeDesignationStatus typeStatus);
79 79

  
80 80
	/**
81 81
	 * Removes the given type designation from the given taxon name and deletes it from
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/NameServiceImpl.java
11 11

  
12 12
import java.io.IOException;
13 13
import java.util.ArrayList;
14
import java.util.Arrays;
14 15
import java.util.Collection;
15 16
import java.util.HashMap;
16 17
import java.util.HashSet;
......
85 86
import eu.etaxonomy.cdm.persistence.dao.name.INomenclaturalStatusDao;
86 87
import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;
87 88
import eu.etaxonomy.cdm.persistence.dao.name.ITypeDesignationDao;
88
import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;
89 89
import eu.etaxonomy.cdm.persistence.dao.term.IOrderedTermVocabularyDao;
90 90
import eu.etaxonomy.cdm.persistence.dao.term.ITermVocabularyDao;
91 91
import eu.etaxonomy.cdm.persistence.dto.TaxonNameParts;
......
111 111
    @Autowired
112 112
    protected IOccurrenceService occurrenceService;
113 113
    @Autowired
114
    protected ICollectionService collectionService;
115
    @Autowired
114 116
    @Qualifier("refEntDao")
115 117
    protected IReferencedEntityDao<ReferencedEntityBase> referencedEntityDao;
116 118
    @Autowired
......
205 207

  
206 208
    @Override
207 209
    @Transactional(readOnly = false)
208
    public UpdateResult cloneTypeDesignation(TaxonName name, SpecimenTypeDesignation baseDesignation,
209
            String accessionNumber, eu.etaxonomy.cdm.model.occurrence.Collection collection, SpecimenTypeDesignationStatus typeStatus){
210
    public UpdateResult cloneTypeDesignation(UUID nameUuid, SpecimenTypeDesignation baseDesignation,
211
            String accessionNumber, UUID collectionUuid, SpecimenTypeDesignationStatus typeStatus){
210 212
        UpdateResult result = new UpdateResult();
211 213

  
212
        DerivedUnit baseSpecimen = (DerivedUnit) occurrenceService.load(baseDesignation.getTypeSpecimen().getUuid());
214
        DerivedUnit baseSpecimen = HibernateProxyHelper.deproxy(occurrenceService.load(baseDesignation.getTypeSpecimen().getUuid(), Arrays.asList("collection")), DerivedUnit.class);
213 215
        DerivedUnit duplicate = DerivedUnit.NewInstance(baseSpecimen.getRecordBasis());
214 216
        DerivationEvent derivedFrom = baseSpecimen.getDerivedFrom();
215 217
        Collection<FieldUnit> fieldUnits = occurrenceService.findFieldUnits(baseSpecimen.getUuid(), null);
......
222 224
            DerivationEvent.NewSimpleInstance(original, duplicate, derivedFrom.getType());
223 225
        }
224 226
        duplicate.setAccessionNumber(accessionNumber);
225
        duplicate.setCollection(collection);
227
        duplicate.setCollection(collectionService.load(collectionUuid));
226 228
        SpecimenTypeDesignation typeDesignation = SpecimenTypeDesignation.NewInstance();
227 229
        typeDesignation.setTypeSpecimen(duplicate);
228 230
        typeDesignation.setTypeStatus(typeStatus);
231

  
232
        TaxonName name = load(nameUuid);
229 233
        name.getTypeDesignations().add(typeDesignation);
230 234

  
231 235
        result.setCdmEntity(typeDesignation);

Also available in: Unified diff