Revision c0878f62
Added by Katja Luther almost 8 years ago
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/csv/caryophyllales/out/CsvNameExport.java | ||
---|---|---|
147 | 147 |
rootNode = getTaxonNodeService().load(rootNode.getUuid(), propertyPaths); |
148 | 148 |
Set<UUID> childrenUuids = new HashSet<UUID>(); |
149 | 149 |
|
150 |
|
|
151 |
rootNode = HibernateProxyHelper.deproxy(rootNode, TaxonNode.class); |
|
152 |
rootNode.removeNullValueFromChildren(); |
|
150 | 153 |
for (TaxonNode child: rootNode.getChildNodes()){ |
151 | 154 |
child = HibernateProxyHelper.deproxy(child, TaxonNode.class); |
152 | 155 |
childrenUuids.add(child.getUuid()); |
... | ... | |
165 | 168 |
|
166 | 169 |
childrenNodes = getTaxonNodeService().find(childrenUuids); |
167 | 170 |
for(TaxonNode genusNode : childrenNodes) { |
168 |
|
|
169 |
nameRecords.add(createNewRecord(genusNode, state)); |
|
170 |
|
|
171 |
if (!genusNode.isTopmostNode()){ |
|
172 |
nameRecords.add(createNewRecord(genusNode, state));
|
|
173 |
} |
|
171 | 174 |
refreshTransaction(); |
172 | 175 |
|
173 | 176 |
} |
... | ... | |
188 | 191 |
parentsNodesUUID =new HashSet<UUID>(); |
189 | 192 |
for (TaxonNode familyNode: familyNodes){ |
190 | 193 |
familyNode = HibernateProxyHelper.deproxy(familyNode, TaxonNode.class); |
194 |
familyNode.removeNullValueFromChildren(); |
|
191 | 195 |
for (TaxonNode child: familyNode.getChildNodes()){ |
192 | 196 |
child = HibernateProxyHelper.deproxy(child, TaxonNode.class); |
193 | 197 |
name = HibernateProxyHelper.deproxy(child.getTaxon().getName(), TaxonNameBase.class); |
194 |
if (child.getTaxon().getName().getRank().isLower(Rank.GENUS())) {
|
|
198 |
if (name.isGenus()) {
|
|
195 | 199 |
childrenUuids.add(child.getUuid()); |
196 | 200 |
if (child.hasChildNodes()){ |
197 | 201 |
parentsNodesUUID.add(child.getUuid()); |
198 | 202 |
} |
199 |
}else{ |
|
200 |
parentsNodesUUID.add(child.getUuid()); |
|
201 | 203 |
} |
202 | 204 |
} |
203 | 205 |
//refreshTransaction(); |
... | ... | |
265 | 267 |
|
266 | 268 |
private TaxonNode getHigherNode(TaxonNode node, Rank rank){ |
267 | 269 |
|
270 |
node = HibernateProxyHelper.deproxy(node, TaxonNode.class); |
|
271 |
TaxonNameBase name = HibernateProxyHelper.deproxy( node.getTaxon().getName(), TaxonNameBase.class); |
|
268 | 272 |
Rank nodeRank = node.getTaxon().getName().getRank(); |
269 |
if (nodeRank.isKindOf(rank)){
|
|
273 |
if (nodeRank.equals(rank)){
|
|
270 | 274 |
return node; |
271 | 275 |
|
272 | 276 |
}else if (nodeRank.isHigher(rank)){ |
... | ... | |
323 | 327 |
descriptionsString.append(distribution.getArea().getIdInVocabulary()); |
324 | 328 |
|
325 | 329 |
} |
326 |
nameRecord.put(columnName, descriptionsString.toString()); |
|
330 |
|
|
327 | 331 |
} |
332 |
nameRecord.put(columnName, descriptionsString.toString()); |
|
328 | 333 |
|
329 | 334 |
} |
330 | 335 |
|
... | ... | |
352 | 357 |
HashMap<String, String> nameRecord = new HashMap<String,String>(); |
353 | 358 |
nameRecord.put("classification", childNode.getClassification().getTitleCache()); |
354 | 359 |
TaxonNode familyNode = getHigherNode(childNode, Rank.FAMILY()); |
355 |
familyNode = HibernateProxyHelper.deproxy(familyNode, TaxonNode.class); |
|
356 |
familyNode.getTaxon().setProtectedTitleCache(true); |
|
357 |
nameRecord.put("familyTaxon", familyNode.getTaxon().getTitleCache()); |
|
360 |
Taxon taxon; |
|
361 |
BotanicalName name; |
|
362 |
if (familyNode != null){ |
|
363 |
familyNode = HibernateProxyHelper.deproxy(familyNode, TaxonNode.class); |
|
364 |
familyNode.getTaxon().setProtectedTitleCache(true); |
|
358 | 365 |
|
366 |
nameRecord.put("familyTaxon", familyNode.getTaxon().getTitleCache()); |
|
359 | 367 |
|
360 | 368 |
|
361 | 369 |
|
362 |
Taxon taxon = (Taxon)getTaxonService().load(familyNode.getTaxon().getUuid()); |
|
363 |
taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class); |
|
364 |
//if publish flag is set |
|
365 | 370 |
|
366 |
// if (taxon.isPublish()){ |
|
367 |
BotanicalName name = HibernateProxyHelper.deproxy(taxon.getName(), BotanicalName.class); |
|
368 |
nameRecord.put("familyName", name.getNameCache()); |
|
369 |
extractDescriptions(nameRecord, taxon, Feature.INTRODUCTION(), "descriptionsFam", state); |
|
371 |
taxon = (Taxon)getTaxonService().load(familyNode.getTaxon().getUuid()); |
|
372 |
taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class); |
|
373 |
//if publish flag is set |
|
370 | 374 |
|
375 |
// if (taxon.isPublish()){ |
|
376 |
name = HibernateProxyHelper.deproxy(taxon.getName(), BotanicalName.class); |
|
377 |
nameRecord.put("familyName", name.getNameCache()); |
|
378 |
extractDescriptions(nameRecord, taxon, Feature.INTRODUCTION(), "descriptionsFam", state); |
|
379 |
} else{ |
|
380 |
nameRecord.put("familyTaxon", null); |
|
381 |
nameRecord.put("familyName", null); |
|
382 |
nameRecord.put("descriptionsFam", null); |
|
383 |
} |
|
371 | 384 |
TaxonNode genusNode = getHigherNode(childNode, Rank.GENUS()); |
372 | 385 |
if (genusNode!= null){ |
373 | 386 |
genusNode = HibernateProxyHelper.deproxy(genusNode, TaxonNode.class); |
... | ... | |
385 | 398 |
}else{ |
386 | 399 |
nameRecord.put("genusName", name.getGenusOrUninomial()); |
387 | 400 |
} |
388 |
extractDescriptions(nameRecord, taxon, Feature.INTRODUCTION(), "descriptionsGen", state);
|
|
401 |
extractDescriptions(nameRecord, taxon, getNotesFeature(state), "descriptionsGen", state);
|
|
389 | 402 |
} |
390 | 403 |
taxon = (Taxon) getTaxonService().load(childNode.getTaxon().getUuid()); |
391 | 404 |
taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class); |
Also available in: Unified diff
fix NPE of Caryophyllales output test