Revision 9dc896c9
Added by Andreas Müller almost 7 years ago
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/NameServiceImpl.java | ||
---|---|---|
66 | 66 |
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus; |
67 | 67 |
import eu.etaxonomy.cdm.model.name.Rank; |
68 | 68 |
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus; |
69 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
|
|
69 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
|
70 | 70 |
import eu.etaxonomy.cdm.model.name.TypeDesignationBase; |
71 | 71 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
72 | 72 |
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent; |
... | ... | |
88 | 88 |
|
89 | 89 |
@Service |
90 | 90 |
@Transactional(readOnly = true) |
91 |
public class NameServiceImpl extends IdentifiableServiceBase<TaxonNameBase,ITaxonNameDao> implements INameService {
|
|
91 |
public class NameServiceImpl extends IdentifiableServiceBase<TaxonName,ITaxonNameDao> implements INameService { |
|
92 | 92 |
static private final Logger logger = Logger.getLogger(NameServiceImpl.class); |
93 | 93 |
|
94 | 94 |
@Autowired |
... | ... | |
130 | 130 |
} |
131 | 131 |
|
132 | 132 |
@Override |
133 |
public DeleteResult delete(TaxonNameBase name){
|
|
133 |
public DeleteResult delete(TaxonName name){ |
|
134 | 134 |
return delete(name.getUuid()); |
135 | 135 |
} |
136 | 136 |
|
... | ... | |
197 | 197 |
} |
198 | 198 |
|
199 | 199 |
@Override |
200 |
public DeleteResult deleteTypeDesignation(TaxonNameBase name, TypeDesignationBase typeDesignation){
|
|
200 |
public DeleteResult deleteTypeDesignation(TaxonName name, TypeDesignationBase typeDesignation){ |
|
201 | 201 |
if(typeDesignation!=null && typeDesignation.getId()!=0){ |
202 | 202 |
typeDesignation = HibernateProxyHelper.deproxy(referencedEntityDao.load(typeDesignation.getUuid()), TypeDesignationBase.class); |
203 | 203 |
} |
... | ... | |
215 | 215 |
removeSingleDesignation(name, desig); |
216 | 216 |
} |
217 | 217 |
}else if (typeDesignation != null){ |
218 |
Set<TaxonNameBase> nameSet = new HashSet<TaxonNameBase>(typeDesignation.getTypifiedNames());
|
|
218 |
Set<TaxonName> nameSet = new HashSet<TaxonName>(typeDesignation.getTypifiedNames());
|
|
219 | 219 |
for (Object o : nameSet){ |
220 |
TaxonNameBase singleName = CdmBase.deproxy(o, TaxonNameBase.class);
|
|
220 |
TaxonName singleName = CdmBase.deproxy(o, TaxonName.class);
|
|
221 | 221 |
removeSingleDesignation(singleName, typeDesignation); |
222 | 222 |
} |
223 | 223 |
} |
... | ... | |
228 | 228 |
|
229 | 229 |
@Override |
230 | 230 |
public DeleteResult deleteTypeDesignation(UUID nameUuid, UUID typeDesignationUuid){ |
231 |
TaxonNameBase nameBase = load(nameUuid);
|
|
231 |
TaxonName nameBase = load(nameUuid); |
|
232 | 232 |
TypeDesignationBase typeDesignation = HibernateProxyHelper.deproxy(referencedEntityDao.load(typeDesignationUuid), TypeDesignationBase.class); |
233 | 233 |
return deleteTypeDesignation(nameBase, typeDesignation); |
234 | 234 |
} |
... | ... | |
237 | 237 |
* @param name |
238 | 238 |
* @param typeDesignation |
239 | 239 |
*/ |
240 |
private void removeSingleDesignation(TaxonNameBase name, TypeDesignationBase typeDesignation) {
|
|
240 |
private void removeSingleDesignation(TaxonName name, TypeDesignationBase typeDesignation) { |
|
241 | 241 |
name.removeTypeDesignation(typeDesignation); |
242 | 242 |
if (typeDesignation.getTypifiedNames().isEmpty()){ |
243 | 243 |
typeDesignation.removeType(); |
... | ... | |
251 | 251 |
* @param name |
252 | 252 |
* @param config |
253 | 253 |
*/ |
254 |
private void removeNameRelationshipsByDeleteConfig(TaxonNameBase<?,?> name, NameDeletionConfigurator config) {
|
|
254 |
private void removeNameRelationshipsByDeleteConfig(TaxonName<?,?> name, NameDeletionConfigurator config) { |
|
255 | 255 |
try { |
256 | 256 |
if (config.isRemoveAllNameRelationships()){ |
257 | 257 |
Set<NameRelationship> rels = getModifiableSet(name.getNameRelations()); |
... | ... | |
305 | 305 |
*/ |
306 | 306 |
@Override |
307 | 307 |
@Deprecated |
308 |
public List<TaxonNameBase> getNamesByNameCache(String nameCache){
|
|
308 |
public List<TaxonName> getNamesByNameCache(String nameCache){ |
|
309 | 309 |
boolean includeAuthors = false; |
310 | 310 |
List result = dao.findByName(includeAuthors, nameCache, MatchMode.EXACT, null, null, null, null); |
311 | 311 |
return result; |
... | ... | |
319 | 319 |
* findByTitle |
320 | 320 |
*/ |
321 | 321 |
@Override |
322 |
public List<TaxonNameBase> findNamesByTitleCache(String titleCache, MatchMode matchMode, List<String> propertyPaths){
|
|
322 |
public List<TaxonName> findNamesByTitleCache(String titleCache, MatchMode matchMode, List<String> propertyPaths){ |
|
323 | 323 |
List result = dao.findByTitle(titleCache, matchMode, null, null, null ,propertyPaths); |
324 | 324 |
return result; |
325 | 325 |
} |
... | ... | |
331 | 331 |
* findByTitle |
332 | 332 |
*/ |
333 | 333 |
@Override |
334 |
public List<TaxonNameBase> findNamesByNameCache(String nameCache, MatchMode matchMode, List<String> propertyPaths){
|
|
334 |
public List<TaxonName> findNamesByNameCache(String nameCache, MatchMode matchMode, List<String> propertyPaths){ |
|
335 | 335 |
List result = dao.findByName(false, nameCache, matchMode, null, null, null ,propertyPaths); |
336 | 336 |
return result; |
337 | 337 |
} |
... | ... | |
431 | 431 |
} |
432 | 432 |
|
433 | 433 |
@Override |
434 |
public List<NameRelationship> listNameRelationships(TaxonNameBase name, Direction direction, NameRelationshipType type, Integer pageSize,
|
|
434 |
public List<NameRelationship> listNameRelationships(TaxonName name, Direction direction, NameRelationshipType type, Integer pageSize, |
|
435 | 435 |
Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) { |
436 | 436 |
|
437 | 437 |
Integer numberOfResults = dao.countNameRelationships(name, direction, type); |
... | ... | |
459 | 459 |
Builder textQueryBuilder = new Builder(); |
460 | 460 |
textQueryBuilder.setDisableCoord(false); |
461 | 461 |
|
462 |
LuceneSearch luceneSearch = new LuceneSearch(luceneIndexToolProvider, TaxonNameBase.class);
|
|
463 |
QueryFactory queryFactory = luceneIndexToolProvider.newQueryFactoryFor(TaxonNameBase.class);
|
|
462 |
LuceneSearch luceneSearch = new LuceneSearch(luceneIndexToolProvider, TaxonName.class); |
|
463 |
QueryFactory queryFactory = luceneIndexToolProvider.newQueryFactoryFor(TaxonName.class); |
|
464 | 464 |
|
465 | 465 |
// SortField[] sortFields = new SortField[]{SortField.FIELD_SCORE, new SortField("titleCache__sort", SortField.STRING, false)}; |
466 | 466 |
// luceneSearch.setSortFields(sortFields); |
... | ... | |
523 | 523 |
List<Language> languages, |
524 | 524 |
boolean highlightFragments) { |
525 | 525 |
|
526 |
LuceneSearch luceneSearch = new LuceneSearch(luceneIndexToolProvider, TaxonNameBase.class);
|
|
527 |
QueryFactory queryFactory = luceneIndexToolProvider.newQueryFactoryFor(TaxonNameBase.class);
|
|
526 |
LuceneSearch luceneSearch = new LuceneSearch(luceneIndexToolProvider, TaxonName.class); |
|
527 |
QueryFactory queryFactory = luceneIndexToolProvider.newQueryFactoryFor(TaxonName.class); |
|
528 | 528 |
|
529 | 529 |
// SortField[] sortFields = new SortField[]{SortField.FIELD_SCORE, new SortField("titleCache__sort", SortField.STRING, false)}; |
530 | 530 |
// luceneSearch.setSortFields(sortFields); |
... | ... | |
554 | 554 |
boolean highlightFragments) { |
555 | 555 |
Builder textQueryBuilder = new Builder(); |
556 | 556 |
|
557 |
LuceneSearch luceneSearch = new LuceneSearch(luceneIndexToolProvider, TaxonNameBase.class);
|
|
558 |
QueryFactory queryFactory = luceneIndexToolProvider.newQueryFactoryFor(TaxonNameBase.class);
|
|
557 |
LuceneSearch luceneSearch = new LuceneSearch(luceneIndexToolProvider, TaxonName.class); |
|
558 |
QueryFactory queryFactory = luceneIndexToolProvider.newQueryFactoryFor(TaxonName.class); |
|
559 | 559 |
|
560 | 560 |
// SortField[] sortFields = new SortField[]{SortField.FIELD_SCORE, new SortField("titleCache__sort", SortField.STRING, false)}; |
561 | 561 |
// luceneSearch.setSortFields(sortFields); |
... | ... | |
580 | 580 |
} |
581 | 581 |
|
582 | 582 |
@Override |
583 |
public List<SearchResult<TaxonNameBase>> findByNameFuzzySearch(
|
|
583 |
public List<SearchResult<TaxonName>> findByNameFuzzySearch( |
|
584 | 584 |
String name, |
585 | 585 |
float accuracy, |
586 | 586 |
List<Language> languages, |
... | ... | |
608 | 608 |
ISearchResultBuilder searchResultBuilder = new SearchResultBuilder(luceneSearch, luceneSearch.getQuery()); |
609 | 609 |
|
610 | 610 |
@SuppressWarnings("rawtypes") |
611 |
List<SearchResult<TaxonNameBase>> searchResults = searchResultBuilder.createResultSet(
|
|
611 |
List<SearchResult<TaxonName>> searchResults = searchResultBuilder.createResultSet( |
|
612 | 612 |
topDocs, luceneSearch.getHighlightFields(), dao, idFieldMap, propertyPaths); |
613 | 613 |
|
614 | 614 |
return searchResults; |
... | ... | |
700 | 700 |
} |
701 | 701 |
|
702 | 702 |
@Override |
703 |
public Pager<NameRelationship> pageNameRelationships(TaxonNameBase name, Direction direction, NameRelationshipType type, Integer pageSize,
|
|
703 |
public Pager<NameRelationship> pageNameRelationships(TaxonName name, Direction direction, NameRelationshipType type, Integer pageSize, |
|
704 | 704 |
Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) { |
705 | 705 |
List<NameRelationship> results = listNameRelationships(name, direction, type, pageSize, pageNumber, orderHints, propertyPaths); |
706 | 706 |
return new DefaultPagerImpl<NameRelationship>(pageNumber, results.size(), pageSize, results); |
707 | 707 |
} |
708 | 708 |
|
709 | 709 |
@Override |
710 |
public List<NameRelationship> listFromNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
|
|
710 |
public List<NameRelationship> listFromNameRelationships(TaxonName name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) { |
|
711 | 711 |
return listNameRelationships(name, Direction.relatedFrom, type, pageSize, pageNumber, orderHints, propertyPaths); |
712 | 712 |
} |
713 | 713 |
|
714 | 714 |
@Override |
715 |
public Pager<NameRelationship> pageFromNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
|
|
715 |
public Pager<NameRelationship> pageFromNameRelationships(TaxonName name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) { |
|
716 | 716 |
List<NameRelationship> results = listNameRelationships(name, Direction.relatedFrom, type, pageSize, pageNumber, orderHints, propertyPaths); |
717 | 717 |
return new DefaultPagerImpl<NameRelationship>(pageNumber, results.size(), pageSize, results); |
718 | 718 |
} |
719 | 719 |
|
720 | 720 |
@Override |
721 |
public List<NameRelationship> listToNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
|
|
721 |
public List<NameRelationship> listToNameRelationships(TaxonName name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) { |
|
722 | 722 |
return listNameRelationships(name, Direction.relatedTo, type, pageSize, pageNumber, orderHints, propertyPaths); |
723 | 723 |
} |
724 | 724 |
|
725 | 725 |
@Override |
726 |
public Pager<NameRelationship> pageToNameRelationships(TaxonNameBase name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
|
|
726 |
public Pager<NameRelationship> pageToNameRelationships(TaxonName name, NameRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) { |
|
727 | 727 |
List<NameRelationship> results = listNameRelationships(name, Direction.relatedTo, type, pageSize, pageNumber, orderHints, propertyPaths); |
728 | 728 |
return new DefaultPagerImpl<NameRelationship>(pageNumber, results.size(), pageSize, results); |
729 | 729 |
} |
730 | 730 |
|
731 | 731 |
@Override |
732 |
public Pager<TypeDesignationBase> getTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status,
|
|
732 |
public Pager<TypeDesignationBase> getTypeDesignations(TaxonName name, SpecimenTypeDesignationStatus status, |
|
733 | 733 |
Integer pageSize, Integer pageNumber) { |
734 | 734 |
return getTypeDesignations(name, status, pageSize, pageNumber, null); |
735 | 735 |
} |
736 | 736 |
|
737 | 737 |
@Override |
738 |
public Pager<TypeDesignationBase> getTypeDesignations(TaxonNameBase name, SpecimenTypeDesignationStatus status,
|
|
738 |
public Pager<TypeDesignationBase> getTypeDesignations(TaxonName name, SpecimenTypeDesignationStatus status, |
|
739 | 739 |
Integer pageSize, Integer pageNumber, List<String> propertyPaths){ |
740 | 740 |
Integer numberOfResults = dao.countTypeDesignations(name, status); |
741 | 741 |
|
... | ... | |
752 | 752 |
* rename search |
753 | 753 |
*/ |
754 | 754 |
@Override |
755 |
public Pager<TaxonNameBase> searchNames(String uninomial,String infraGenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,
|
|
755 |
public Pager<TaxonName> searchNames(String uninomial,String infraGenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, |
|
756 | 756 |
List<String> propertyPaths) { |
757 | 757 |
Integer numberOfResults = dao.countNames(uninomial, infraGenericEpithet, specificEpithet, infraspecificEpithet, rank); |
758 | 758 |
|
759 |
List<TaxonNameBase> results = new ArrayList<TaxonNameBase>();
|
|
759 |
List<TaxonName> results = new ArrayList<TaxonName>();
|
|
760 | 760 |
if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize) |
761 | 761 |
results = dao.searchNames(uninomial, infraGenericEpithet, specificEpithet, infraspecificEpithet, rank, pageSize, pageNumber, orderHints, propertyPaths); |
762 | 762 |
} |
763 | 763 |
|
764 |
return new DefaultPagerImpl<TaxonNameBase>(pageNumber, numberOfResults, pageSize, results);
|
|
764 |
return new DefaultPagerImpl<TaxonName>(pageNumber, numberOfResults, pageSize, results); |
|
765 | 765 |
} |
766 | 766 |
|
767 | 767 |
@Override |
... | ... | |
770 | 770 |
} |
771 | 771 |
|
772 | 772 |
@Override |
773 |
public Pager<TaxonNameBase> findByName(Class<? extends TaxonNameBase> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize,Integer pageNumber, List<OrderHint> orderHints,List<String> propertyPaths) {
|
|
773 |
public Pager<TaxonName> findByName(Class<? extends TaxonName> clazz, String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize,Integer pageNumber, List<OrderHint> orderHints,List<String> propertyPaths) {
|
|
774 | 774 |
Long numberOfResults = dao.countByName(clazz, queryString, matchmode, criteria); |
775 | 775 |
|
776 |
List<TaxonNameBase> results = new ArrayList<>();
|
|
776 |
List<TaxonName> results = new ArrayList<>(); |
|
777 | 777 |
if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize) |
778 | 778 |
results = dao.findByName(clazz, queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths); |
779 | 779 |
} |
... | ... | |
788 | 788 |
|
789 | 789 |
@Override |
790 | 790 |
@Transactional(readOnly = false) |
791 |
public void updateTitleCache(Class<? extends TaxonNameBase> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<TaxonNameBase> cacheStrategy, IProgressMonitor monitor) {
|
|
791 |
public void updateTitleCache(Class<? extends TaxonName> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<TaxonName> cacheStrategy, IProgressMonitor monitor) {
|
|
792 | 792 |
if (clazz == null){ |
793 |
clazz = TaxonNameBase.class;
|
|
793 |
clazz = TaxonName.class; |
|
794 | 794 |
} |
795 | 795 |
super.updateTitleCacheImpl(clazz, stepSize, cacheStrategy, monitor); |
796 | 796 |
} |
797 | 797 |
|
798 | 798 |
|
799 | 799 |
@Override |
800 |
protected void setOtherCachesNull(TaxonNameBase name) {
|
|
800 |
protected void setOtherCachesNull(TaxonName name) { |
|
801 | 801 |
if (! name.isProtectedNameCache()){ |
802 | 802 |
name.setNameCache(null, false); |
803 | 803 |
} |
... | ... | |
812 | 812 |
|
813 | 813 |
@Override |
814 | 814 |
public List<TaggedText> getTaggedName(UUID uuid) { |
815 |
TaxonNameBase<?,?> taxonNameBase = dao.load(uuid);
|
|
816 |
List<TaggedText> taggedName = taxonNameBase.getTaggedName();
|
|
815 |
TaxonName taxonName = dao.load(uuid);
|
|
816 |
List<TaggedText> taggedName = taxonName.getTaggedName(); |
|
817 | 817 |
return taggedName; |
818 | 818 |
} |
819 | 819 |
|
... | ... | |
931 | 931 |
@Override |
932 | 932 |
@Transactional(readOnly = true) |
933 | 933 |
public UpdateResult setAsGroupsBasionym(UUID nameUuid) { |
934 |
TaxonNameBase name = dao.load(nameUuid);
|
|
934 |
TaxonName name = dao.load(nameUuid); |
|
935 | 935 |
UpdateResult result = new UpdateResult(); |
936 | 936 |
name.setAsGroupsBasionym(); |
937 | 937 |
result.addUpdatedObject(name); |
Also available in: Unified diff
fix #6368 rename table and class TaxonNameBase