Revision 8af7fcc2
Added by Andreas Kohlbecker about 5 years ago
src/main/java/eu/etaxonomy/cdm/service/RegistrationWorkflowService.java | ||
---|---|---|
21 | 21 |
import eu.etaxonomy.cdm.api.service.dto.RegistrationDTO; |
22 | 22 |
import eu.etaxonomy.cdm.api.service.dto.RegistrationWorkingSet; |
23 | 23 |
import eu.etaxonomy.cdm.api.service.exception.RegistrationValidationException; |
24 |
import eu.etaxonomy.cdm.api.service.idminter.RegistrationIdentifierMinter; |
|
24 | 25 |
import eu.etaxonomy.cdm.model.name.Registration; |
25 | 26 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
26 | 27 |
import eu.etaxonomy.cdm.model.reference.Reference; |
... | ... | |
40 | 41 |
@Qualifier("cdmRepository") |
41 | 42 |
private CdmRepository repo; |
42 | 43 |
|
44 |
@Autowired |
|
45 |
private RegistrationIdentifierMinter minter; |
|
46 |
|
|
43 | 47 |
private CdmRepository getRepo() { |
44 | 48 |
return repo; |
45 | 49 |
} |
... | ... | |
109 | 113 |
* @param registration |
110 | 114 |
*/ |
111 | 115 |
@Override |
112 |
public void addBlockingRegistration(UUID taxonNameUUID, Registration registration) { |
|
113 |
Registration blockingRegistration = getRepo().getRegistrationService().createRegistrationForName(taxonNameUUID); |
|
114 |
reloadRegistration(registration); |
|
115 |
registration.getBlockedBy().add(blockingRegistration); |
|
116 |
if(registration.isPersited()){ |
|
117 |
getRepo().getRegistrationService().saveOrUpdate(registration); |
|
118 |
logger.debug("Blocking registration created, added to registion and persited"); |
|
116 |
public Registration addBlockingRegistration(UUID nameUUID, Registration registration) { |
|
117 |
|
|
118 |
TaxonName name = getRepo().getNameService().load(nameUUID); |
|
119 |
|
|
120 |
boolean registrationExists = false; |
|
121 |
for(Registration regForName : name.getRegistrations()){ |
|
122 |
if(minter.identifierPattern().matcher(regForName.getIdentifier()).matches()){ |
|
123 |
registrationExists = true; |
|
124 |
break; |
|
125 |
} |
|
126 |
} |
|
127 |
|
|
128 |
if(!registrationExists){ |
|
129 |
Registration blockingRegistration = getRepo().getRegistrationService().createRegistrationForName(nameUUID); |
|
130 |
reloadRegistration(registration); |
|
131 |
registration.getBlockedBy().add(blockingRegistration); |
|
132 |
if(registration.isPersited()){ |
|
133 |
getRepo().getRegistrationService().saveOrUpdate(registration); |
|
134 |
logger.debug("Blocking registration created, added to registion and persited"); |
|
135 |
} |
|
136 |
return blockingRegistration; |
|
119 | 137 |
} |
138 |
return null; |
|
120 | 139 |
} |
121 | 140 |
|
122 | 141 |
/** |
Also available in: Unified diff
ref #8050 creating blocking registrations for exising names which are used in the context of another registration