25 |
25 |
|
26 |
26 |
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeCacheStrategy;
|
27 |
27 |
import eu.etaxonomy.cdm.model.common.CdmBase;
|
28 |
|
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
|
29 |
28 |
import eu.etaxonomy.cdm.model.common.TermVocabulary;
|
|
29 |
import eu.etaxonomy.cdm.model.common.VersionableEntity;
|
30 |
30 |
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
|
31 |
31 |
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
|
32 |
32 |
import eu.etaxonomy.cdm.model.name.TaxonName;
|
... | ... | |
144 |
144 |
TypeDesignationStatusBase<?> status = td.getTypeStatus();
|
145 |
145 |
|
146 |
146 |
try {
|
147 |
|
final IdentifiableEntity<?> baseEntity = baseEntity(td);
|
148 |
|
final TypedEntityReference<IdentifiableEntity<?>> baseEntityReference = makeEntityReference(baseEntity);
|
|
147 |
final VersionableEntity baseEntity = baseEntity(td);
|
|
148 |
final TypedEntityReference<VersionableEntity> baseEntityReference = makeEntityReference(baseEntity);
|
149 |
149 |
|
150 |
150 |
EntityReference typeDesignationEntityReference = new EntityReference(td.getId(), stringify(td));
|
151 |
151 |
|
... | ... | |
166 |
166 |
* @return
|
167 |
167 |
* @throws DataIntegrityException
|
168 |
168 |
*/
|
169 |
|
protected IdentifiableEntity<?> baseEntity(TypeDesignationBase<?> td) throws DataIntegrityException {
|
|
169 |
protected VersionableEntity baseEntity(TypeDesignationBase<?> td) throws DataIntegrityException {
|
170 |
170 |
|
171 |
|
IdentifiableEntity<?> baseEntity = null;
|
|
171 |
VersionableEntity baseEntity = null;
|
172 |
172 |
if(td instanceof SpecimenTypeDesignation){
|
173 |
173 |
SpecimenTypeDesignation std = (SpecimenTypeDesignation) td;
|
174 |
174 |
FieldUnit fu = findFieldUnit(std);
|
... | ... | |
179 |
179 |
}
|
180 |
180 |
} else if(td instanceof NameTypeDesignation){
|
181 |
181 |
baseEntity = ((NameTypeDesignation)td).getTypeName();
|
|
182 |
baseEntity = td;
|
182 |
183 |
}
|
183 |
184 |
if(baseEntity == null) {
|
184 |
185 |
throw new DataIntegrityException("Incomplete TypeDesignation, no type missin in " + td.toString());
|
... | ... | |
190 |
191 |
* @param td
|
191 |
192 |
* @return
|
192 |
193 |
*/
|
193 |
|
protected TypedEntityReference<IdentifiableEntity<?>> makeEntityReference(IdentifiableEntity<?> baseEntity) {
|
|
194 |
protected TypedEntityReference<VersionableEntity> makeEntityReference(VersionableEntity baseEntity) {
|
194 |
195 |
|
195 |
|
baseEntity = (IdentifiableEntity<?>) HibernateHelper.unproxy(baseEntity);
|
|
196 |
baseEntity = (VersionableEntity) HibernateHelper.unproxy(baseEntity);
|
196 |
197 |
String label = "";
|
197 |
198 |
if(baseEntity instanceof FieldUnit){
|
198 |
199 |
label = ((FieldUnit)baseEntity).getTitleCache();
|
199 |
200 |
}
|
200 |
201 |
|
201 |
|
TypedEntityReference<IdentifiableEntity<?>> baseEntityReference = new TypedEntityReference(baseEntity.getClass(), baseEntity.getId(), label);
|
|
202 |
TypedEntityReference<VersionableEntity> baseEntityReference = new TypedEntityReference(baseEntity.getClass(), baseEntity.getId(), label);
|
202 |
203 |
|
203 |
204 |
return baseEntityReference;
|
204 |
205 |
}
|
... | ... | |
613 |
614 |
|
614 |
615 |
String workingSetRepresentation = null;
|
615 |
616 |
|
616 |
|
TypedEntityReference<IdentifiableEntity<?>> baseEntityReference;
|
|
617 |
TypedEntityReference<VersionableEntity> baseEntityReference;
|
617 |
618 |
|
618 |
|
IdentifiableEntity<?> baseEntity;
|
|
619 |
VersionableEntity baseEntity;
|
619 |
620 |
|
620 |
621 |
List<DerivedUnit> derivedUnits = null;
|
621 |
622 |
|
622 |
623 |
/**
|
623 |
624 |
* @param baseEntityReference
|
624 |
625 |
*/
|
625 |
|
public TypeDesignationWorkingSet(IdentifiableEntity<?> baseEntity, TypedEntityReference<IdentifiableEntity<?>> baseEntityReference) {
|
|
626 |
public TypeDesignationWorkingSet(VersionableEntity baseEntity, TypedEntityReference<VersionableEntity> baseEntityReference) {
|
626 |
627 |
this.baseEntity = baseEntity;
|
627 |
628 |
this.baseEntityReference = baseEntityReference;
|
628 |
629 |
}
|
... | ... | |
630 |
631 |
/**
|
631 |
632 |
* @return
|
632 |
633 |
*/
|
633 |
|
public IdentifiableEntity<?> getBaseEntity() {
|
|
634 |
public VersionableEntity getBaseEntity() {
|
634 |
635 |
return baseEntity;
|
635 |
636 |
}
|
636 |
637 |
|
... | ... | |
671 |
672 |
*
|
672 |
673 |
* @return the baseEntityReference
|
673 |
674 |
*/
|
674 |
|
public TypedEntityReference<IdentifiableEntity<?>> getBaseEntityReference() {
|
|
675 |
public TypedEntityReference<VersionableEntity> getBaseEntityReference() {
|
675 |
676 |
return baseEntityReference;
|
676 |
677 |
}
|
677 |
678 |
|
fix #7247 TypeDesignationSetManager uses typedesignation itself as base entity for NameTypeDesignations