+ /**\r
+ *\r
+ */\r
+ private void refreshLuceneIndex() {\r
+\r
+// commitAndStartNewTransaction(null);\r
+ commit();\r
+ endTransaction();\r
+ indexer.purge(DefaultProgressMonitor.NewInstance());\r
+ indexer.reindex(typesToIndex, DefaultProgressMonitor.NewInstance());\r
+ startNewTransaction();\r
+// commitAndStartNewTransaction(null);\r
+ }\r
+\r
+ /**\r
+ * @param numberOfNew\r
+ *\r
+ */\r
+ private void createRandomTaxonWithCommonName(int numberOfNew) {\r
+\r
+ logger.debug(String.format("creating %1$s random taxan with CommonName", numberOfNew));\r
+\r
+ commitAndStartNewTransaction(null);\r
+\r
+ Reference sec = ReferenceFactory.newBook();\r
+ referenceService.save(sec);\r
+\r
+ for (int i = numberOfNew; i < numberOfNew; i++) {\r
+ RandomStringUtils.randomAlphabetic(10);\r
+ String radomName = RandomStringUtils.randomAlphabetic(5) + " " + RandomStringUtils.randomAlphabetic(10);\r
+ String radomCommonName = RandomStringUtils.randomAlphabetic(10);\r
+\r
+ IBotanicalName name = TaxonNameFactory.NewBotanicalInstance(Rank.SPECIES());\r
+ name.setNameCache(radomName, true);\r
+ Taxon taxon = Taxon.NewInstance(name, sec);\r
+ taxonService.save(taxon);\r
+\r
+ TaxonDescription description = TaxonDescription.NewInstance(taxon);\r
+ description.addElement(CommonTaxonName.NewInstance(radomCommonName, Language.GERMAN()));\r
+ descriptionService.save(description);\r
+ }\r
+\r
+ commitAndStartNewTransaction(null);\r
+ }\r
+\r
+ private <T extends CdmBase> void logFreeTextSearchResults(Pager<SearchResult<T>> pager, Level level, String[] docFields){\r
+ if(level == null){\r
+ level = Level.DEBUG;\r
+ }\r
+ if(logger.isEnabledFor(level)){\r
+ StringBuilder b = new StringBuilder();\r
+ b.append("\n");\r
+ int i = 0;\r
+ for(SearchResult<?> sr : pager.getRecords()){\r
+\r
+ b.append(" ").append(i++).append(" - ");\r
+ b.append("score:").append(sr.getScore()).append(", ");\r
+\r
+ if(docFields != null){\r
+ b.append("docs : ");\r
+ for(Document doc : sr.getDocs()) {\r
+ b.append("<");\r
+ for(String f : docFields){\r
+ b.append(f).append(":").append(Arrays.toString(doc.getValues(f)));\r
+ }\r
+ b.append(">");\r
+ }\r
+ }\r
+\r
+ CdmBase entity = sr.getEntity();\r
+ if(entity == null){\r
+ b.append("NULL");\r
+ } else {\r
+ b.append(entity.getClass().getSimpleName()).\r
+ append(" [").append(entity.getId()).\r
+ append(" | ").append(entity.getUuid()).append("] : ").\r
+ append(entity.toString());\r
+\r
+ }\r
+ b.append("\n");\r
+ }\r
+ logger.log(level, b);\r
+ }\r
+ }\r
+\r
+ private Set<UUID> getTaxonUuidSet(@SuppressWarnings("rawtypes") Pager<SearchResult<TaxonBase>> pager) {\r
+ Set<UUID> result = new HashSet<>();\r
+ for (@SuppressWarnings("rawtypes") SearchResult<TaxonBase> searchResult : pager.getRecords()){\r
+ result.add(searchResult.getEntity().getUuid());\r
+ }\r
+ return result;\r
+ }\r
+\r
+\r