6 |
6 |
import java.util.HashSet;
|
7 |
7 |
import java.util.Iterator;
|
8 |
8 |
import java.util.List;
|
|
9 |
import java.util.Map;
|
9 |
10 |
import java.util.Set;
|
10 |
11 |
import java.util.UUID;
|
11 |
12 |
|
|
13 |
import com.sun.media.jfxmedia.logging.Logger;
|
|
14 |
|
12 |
15 |
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
|
13 |
16 |
import eu.etaxonomy.cdm.app.common.CdmDestinations;
|
14 |
17 |
import eu.etaxonomy.cdm.app.util.TestDatabase;
|
15 |
18 |
import eu.etaxonomy.cdm.database.DbSchemaValidation;
|
16 |
19 |
import eu.etaxonomy.cdm.database.ICdmDataSource;
|
17 |
20 |
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
|
|
21 |
import eu.etaxonomy.cdm.io.api.application.CdmIoApplicationController;
|
18 |
22 |
import eu.etaxonomy.cdm.io.pesi.merging.FaunaEuErmsMerging;
|
19 |
23 |
import eu.etaxonomy.cdm.model.common.CdmBase;
|
20 |
24 |
import eu.etaxonomy.cdm.model.common.IdentifiableSource;
|
21 |
25 |
import eu.etaxonomy.cdm.model.name.IZoologicalName;
|
22 |
26 |
import eu.etaxonomy.cdm.model.name.Rank;
|
23 |
27 |
import eu.etaxonomy.cdm.model.name.TaxonName;
|
|
28 |
import eu.etaxonomy.cdm.model.reference.Reference;
|
24 |
29 |
import eu.etaxonomy.cdm.model.taxon.Classification;
|
25 |
30 |
import eu.etaxonomy.cdm.model.taxon.Taxon;
|
|
31 |
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
|
26 |
32 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
|
27 |
33 |
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
|
28 |
34 |
|
... | ... | |
30 |
36 |
|
31 |
37 |
//static final ICdmDataSource faunaEuropaeaSource = CdmDestinations.localH2();
|
32 |
38 |
static final ICdmDataSource faunaEuropaeaSource = CdmDestinations.cdm_test_local_faunaEu_mysql();
|
|
39 |
static Reference faunaSec;
|
|
40 |
static Reference ermsSec;
|
33 |
41 |
|
34 |
42 |
//TODO hole aus beiden DB alle TaxonNameBases
|
35 |
43 |
|
36 |
44 |
private CdmApplicationController initDb(ICdmDataSource db) {
|
37 |
45 |
|
38 |
46 |
// Init source DB
|
39 |
|
CdmApplicationController appCtrInit = null;
|
|
47 |
//CdmApplicationController appCtrInit = null;
|
|
48 |
CdmApplicationController appCtrInit = CdmIoApplicationController.NewInstance(db, DbSchemaValidation.VALIDATE, false);
|
40 |
49 |
|
41 |
|
appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.VALIDATE, false);
|
|
50 |
|
|
51 |
//appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.VALIDATE, false);
|
42 |
52 |
|
43 |
53 |
return appCtrInit;
|
44 |
54 |
}
|
... | ... | |
52 |
62 |
FaunaEuErmsFindIdenticalNamesActivator sc = new FaunaEuErmsFindIdenticalNamesActivator();
|
53 |
63 |
|
54 |
64 |
CdmApplicationController appCtrFaunaEu = sc.initDb(faunaEuropaeaSource);
|
55 |
|
String sFileName = "c:\\test";
|
|
65 |
String sFileName = "C:\\Users\\k.luther\\test";
|
56 |
66 |
//CdmApplicationController appCtrErms = sc.initDb(ermsSource);
|
57 |
67 |
List<String> propertyPaths = new ArrayList<>();
|
58 |
68 |
propertyPaths.add("sources.*");
|
... | ... | |
62 |
72 |
propertyPaths.add("taxonBases.relationsFromThisTaxon");
|
63 |
73 |
propertyPaths.add("taxonBases.taxonNodes.*");
|
64 |
74 |
propertyPaths.add("taxonBases.taxonNodes.parent.*");
|
|
75 |
propertyPaths.add("taxonBases.taxonNodes.childNodes.*");
|
|
76 |
propertyPaths.add("taxonBases.taxonNodes.childNodes.classification.rootNode.childNodes.*");
|
65 |
77 |
propertyPaths.add("taxonBases.taxonNodes.parent.taxon.name.*");
|
|
78 |
propertyPaths.add("taxonBases.acceptedTaxon.taxonNodes.*");
|
|
79 |
propertyPaths.add("taxonBases.acceptedTaxon.taxonNodes.childNodes.*");
|
|
80 |
propertyPaths.add("taxonBases.acceptedTaxon.taxonNodes.childNodes.classification.rootNode.childNodes.*");
|
66 |
81 |
System.err.println("Start getIdenticalNames...");
|
67 |
|
List<UUID> namesOfIdenticalTaxa = appCtrFaunaEu.getTaxonService().findIdenticalTaxonNameIds(propertyPaths);
|
|
82 |
|
|
83 |
faunaSec = appCtrFaunaEu.getReferenceService().load(UUID.fromString("6786d863-75d4-4796-b916-c1c3dff4cb70"));
|
|
84 |
ermsSec = appCtrFaunaEu.getReferenceService().load(UUID.fromString("7744bc26-f914-42c4-b54a-dd2a030a8bb7"));
|
|
85 |
Map<String, List<TaxonName>> namesOfIdenticalTaxa = appCtrFaunaEu.getTaxonService().findIdenticalTaxonNameIds(ermsSec, faunaSec, propertyPaths);
|
68 |
86 |
//List<UUID> namesOfIdenticalTaxa = appCtrFaunaEu.getTaxonService().findIdenticalTaxonNameIds(propertyPaths);
|
69 |
87 |
|
70 |
88 |
System.err.println("first name: " + namesOfIdenticalTaxa.get(0) + " " + namesOfIdenticalTaxa.size());
|
... | ... | |
313 |
331 |
}
|
314 |
332 |
|
315 |
333 |
|
316 |
|
private List<FaunaEuErmsMerging> createMergeObjects(List<UUID> uuids, CdmApplicationController appCtr){
|
|
334 |
private List<FaunaEuErmsMerging> createMergeObjects(Map<String,List<TaxonName>> names, CdmApplicationController appCtr){
|
317 |
335 |
|
318 |
336 |
List<FaunaEuErmsMerging> merge = new ArrayList<>();
|
319 |
337 |
TaxonName zooName, zooName2;
|
320 |
338 |
FaunaEuErmsMerging mergeObject;
|
321 |
339 |
String idInSource1;
|
322 |
|
for(int j = 0; j<uuids.size()-1; j = j + 500) {
|
323 |
|
Set<UUID> subset = new HashSet( uuids.subList(j, j+499));
|
324 |
|
List<TaxonName> names = appCtr.getNameService().find(subset);
|
325 |
|
for (int i = 0; i<names.size()-1; i=i+2){
|
326 |
|
zooName = names.get(i);
|
327 |
|
zooName2 = names.get(i+1);
|
328 |
|
mergeObject = new FaunaEuErmsMerging();
|
329 |
|
//TODO:überprüfen, ob die beiden Namen identisch sind und aus unterschiedlichen DB kommen
|
330 |
|
Classification faunaEuClassification = appCtr.getClassificationService().load(UUID.fromString("44d8605e-a7ce-41e1-bee9-99edfec01e7c"));
|
331 |
|
Classification ermsClassification = appCtr.getClassificationService().load(UUID.fromString("6fa988a9-10b7-48b0-a370-2586fbc066eb"));
|
332 |
|
//getPhylum
|
333 |
|
TaxonNodeDto phylum1 = null;
|
334 |
|
if (!zooName.getRank().isHigher(Rank.PHYLUM())){
|
335 |
|
phylum1 =appCtr.getTaxonNodeService().taxonNodeDtoParentRank(faunaEuClassification, Rank.PHYLUM(), zooName);
|
|
340 |
List<TaxonName> identicalNames;
|
|
341 |
for (String nameCache: names.keySet()){
|
|
342 |
identicalNames = names.get(nameCache);
|
|
343 |
|
|
344 |
mergeObject = new FaunaEuErmsMerging();
|
|
345 |
//TODO:überprüfen, ob die beiden Namen identisch sind und aus unterschiedlichen DB kommen
|
|
346 |
Classification faunaEuClassification = appCtr.getClassificationService().load(UUID.fromString("44d8605e-a7ce-41e1-bee9-99edfec01e7c"));
|
|
347 |
Classification ermsClassification = appCtr.getClassificationService().load(UUID.fromString("6fa988a9-10b7-48b0-a370-2586fbc066eb"));
|
|
348 |
//getPhylum
|
|
349 |
TaxonNodeDto phylum1 = null;
|
|
350 |
TaxonName faunaEuName = null;
|
|
351 |
TaxonName ermsName = null;
|
|
352 |
TaxonBase tempName = null;
|
|
353 |
if (identicalNames.size() == 2) {
|
|
354 |
Set<TaxonBase> taxonBases = identicalNames.get(0).getTaxonBases();
|
|
355 |
if (taxonBases.size()==1) {
|
|
356 |
Iterator<TaxonBase> it = taxonBases.iterator();
|
|
357 |
tempName = it.next();
|
|
358 |
if (tempName.getSec().equals(faunaSec)) {
|
|
359 |
faunaEuName = identicalNames.get(0);
|
|
360 |
ermsName = identicalNames.get(1);
|
|
361 |
}else {
|
|
362 |
faunaEuName = identicalNames.get(1);
|
|
363 |
ermsName = identicalNames.get(0);
|
|
364 |
}
|
|
365 |
}else {
|
|
366 |
//TODO: find the two correct names
|
336 |
367 |
}
|
337 |
|
|
338 |
|
TaxonNodeDto phylum2 = null;
|
339 |
|
if (!zooName2.getRank().isHigher(Rank.PHYLUM())){
|
340 |
|
phylum2 = appCtr.getTaxonNodeService().taxonNodeDtoParentRank(ermsClassification, Rank.PHYLUM(), zooName2);
|
|
368 |
}else {
|
|
369 |
System.err.println(nameCache + " has more than two identical namecaches");
|
|
370 |
return null;
|
|
371 |
}
|
|
372 |
phylum1 = null;
|
|
373 |
if (faunaEuName != null && !faunaEuName.getRank().isHigher(Rank.PHYLUM())){
|
|
374 |
phylum1 =appCtr.getTaxonNodeService().taxonNodeDtoParentRank(faunaEuClassification, Rank.PHYLUM(), faunaEuName);
|
|
375 |
}
|
|
376 |
|
|
377 |
TaxonNodeDto phylum2 = null;
|
|
378 |
if (ermsName != null && !ermsName.getRank().isHigher(Rank.PHYLUM())){
|
|
379 |
phylum2 = appCtr.getTaxonNodeService().taxonNodeDtoParentRank(ermsClassification, Rank.PHYLUM(), ermsName);
|
|
380 |
}
|
|
381 |
mergeObject.setPhylumInErms(phylum1);
|
|
382 |
mergeObject.setPhylumInFaunaEu(phylum2);
|
|
383 |
|
|
384 |
//getUuids
|
|
385 |
mergeObject.setUuidErms(ermsName.getUuid().toString());
|
|
386 |
mergeObject.setUuidFaunaEu(faunaEuName.getUuid().toString());
|
|
387 |
|
|
388 |
Iterator<IdentifiableSource> sources = ermsName.getSources().iterator();
|
|
389 |
if (sources.hasNext()){
|
|
390 |
IdentifiableSource source = sources.next();
|
|
391 |
idInSource1 = source.getIdInSource();
|
|
392 |
mergeObject.setIdInErms(idInSource1);
|
|
393 |
}
|
|
394 |
sources = faunaEuName.getSources().iterator();
|
|
395 |
if (sources.hasNext()){
|
|
396 |
IdentifiableSource source = sources.next();
|
|
397 |
idInSource1 = source.getIdInSource();
|
|
398 |
mergeObject.setIdInFaunaEu(idInSource1);
|
|
399 |
}
|
|
400 |
|
|
401 |
mergeObject.setNameCacheInErms(ermsName.getNameCache());
|
|
402 |
mergeObject.setNameCacheInFaunaEu(faunaEuName.getNameCache());
|
|
403 |
|
|
404 |
mergeObject.setAuthorInErms(ermsName.getAuthorshipCache());
|
|
405 |
mergeObject.setAuthorInFaunaEu(faunaEuName.getAuthorshipCache());
|
|
406 |
Set<Taxon> taxa = ermsName.getTaxa();
|
|
407 |
if (!taxa.isEmpty()){
|
|
408 |
mergeObject.setStatInErms(true);
|
|
409 |
Iterator<Taxon> taxaIterator = taxa.iterator();
|
|
410 |
Taxon taxon = null;
|
|
411 |
while (taxaIterator.hasNext()){
|
|
412 |
taxon = taxaIterator.next();
|
|
413 |
if (!taxon.isMisapplication()){
|
|
414 |
break;
|
|
415 |
}
|
341 |
416 |
}
|
342 |
|
mergeObject.setPhylumInErms(phylum1);
|
343 |
|
mergeObject.setPhylumInFaunaEu(phylum2);
|
344 |
|
|
345 |
|
//getUuids
|
346 |
|
mergeObject.setUuidErms(zooName.getUuid().toString());
|
347 |
|
mergeObject.setUuidFaunaEu(zooName.getUuid().toString());
|
348 |
|
|
349 |
|
Iterator<IdentifiableSource> sources = zooName.getSources().iterator();
|
350 |
|
if (sources.hasNext()){
|
351 |
|
IdentifiableSource source = sources.next();
|
352 |
|
idInSource1 = source.getIdInSource();
|
353 |
|
mergeObject.setIdInErms(idInSource1);
|
|
417 |
Set<TaxonNode> nodes = taxon.getTaxonNodes();
|
|
418 |
Iterator<TaxonNode> taxonNodeIterator = nodes.iterator();
|
|
419 |
TaxonNode node, parentNode = null;
|
|
420 |
while (taxonNodeIterator.hasNext()){
|
|
421 |
node = taxonNodeIterator.next();
|
|
422 |
if (!node.isTopmostNode()){
|
|
423 |
parentNode = node.getParent();
|
|
424 |
}
|
354 |
425 |
}
|
355 |
|
sources = zooName2.getSources().iterator();
|
356 |
|
if (sources.hasNext()){
|
357 |
|
IdentifiableSource source = sources.next();
|
358 |
|
idInSource1 = source.getIdInSource();
|
359 |
|
mergeObject.setIdInFaunaEu(idInSource1);
|
|
426 |
//TODO: ändern mit erweitertem Initializer..
|
|
427 |
if (parentNode != null){
|
|
428 |
TaxonName parentName = HibernateProxyHelper.deproxy(parentNode.getTaxon().getName());
|
|
429 |
String parentNameCache = parentName.getNameCache();
|
|
430 |
mergeObject.setParentStringInErms(parentNameCache);
|
|
431 |
mergeObject.setParentRankStringInErms(parentName.getRank().getLabel());
|
|
432 |
//System.err.println("parentName: " + parentNameCache);
|
360 |
433 |
}
|
361 |
|
|
362 |
|
mergeObject.setNameCacheInErms(zooName.getNameCache());
|
363 |
|
mergeObject.setNameCacheInFaunaEu(zooName2.getNameCache());
|
364 |
|
|
365 |
|
mergeObject.setAuthorInErms(zooName.getAuthorshipCache());
|
366 |
|
mergeObject.setAuthorInFaunaEu(zooName2.getAuthorshipCache());
|
367 |
|
Set<Taxon> taxa = zooName.getTaxa();
|
368 |
|
if (!taxa.isEmpty()){
|
369 |
|
mergeObject.setStatInErms(true);
|
370 |
|
Iterator<Taxon> taxaIterator = taxa.iterator();
|
371 |
|
Taxon taxon = null;
|
372 |
|
while (taxaIterator.hasNext()){
|
373 |
|
taxon = taxaIterator.next();
|
374 |
|
if (!taxon.isMisapplication()){
|
375 |
|
break;
|
376 |
|
}
|
377 |
|
}
|
378 |
|
Set<TaxonNode> nodes = taxon.getTaxonNodes();
|
379 |
|
Iterator<TaxonNode> taxonNodeIterator = nodes.iterator();
|
380 |
|
TaxonNode node, parentNode = null;
|
381 |
|
while (taxonNodeIterator.hasNext()){
|
382 |
|
node = taxonNodeIterator.next();
|
383 |
|
if (!node.isTopmostNode()){
|
384 |
|
parentNode = node.getParent();
|
385 |
|
}
|
386 |
|
}
|
387 |
|
//TODO: ändern mit erweitertem Initializer..
|
388 |
|
if (parentNode != null){
|
389 |
|
TaxonName parentName = HibernateProxyHelper.deproxy(parentNode.getTaxon().getName());
|
390 |
|
String parentNameCache = parentName.getNameCache();
|
391 |
|
mergeObject.setParentStringInErms(parentNameCache);
|
392 |
|
mergeObject.setParentRankStringInErms(parentName.getRank().getLabel());
|
393 |
|
//System.err.println("parentName: " + parentNameCache);
|
|
434 |
}else{
|
|
435 |
mergeObject.setStatInErms(false);
|
|
436 |
}
|
|
437 |
taxa = faunaEuName.getTaxa();
|
|
438 |
if (!taxa.isEmpty()){
|
|
439 |
mergeObject.setStatInFaunaEu(true);
|
|
440 |
Iterator<Taxon> taxaIterator = taxa.iterator();
|
|
441 |
Taxon taxon = null;
|
|
442 |
while (taxaIterator.hasNext()){
|
|
443 |
taxon = taxaIterator.next();
|
|
444 |
if (!taxon.isMisapplication()){
|
|
445 |
break;
|
394 |
446 |
}
|
395 |
|
}else{
|
396 |
|
mergeObject.setStatInErms(false);
|
397 |
447 |
}
|
398 |
|
taxa = zooName2.getTaxa();
|
399 |
|
if (!taxa.isEmpty()){
|
400 |
|
mergeObject.setStatInFaunaEu(true);
|
401 |
|
Iterator<Taxon> taxaIterator = taxa.iterator();
|
402 |
|
Taxon taxon = null;
|
403 |
|
while (taxaIterator.hasNext()){
|
404 |
|
taxon = taxaIterator.next();
|
405 |
|
if (!taxon.isMisapplication()){
|
406 |
|
break;
|
407 |
|
}
|
|
448 |
Set<TaxonNode> nodes = taxon.getTaxonNodes();
|
|
449 |
Iterator<TaxonNode> taxonNodeIterator = nodes.iterator();
|
|
450 |
TaxonNode node, parentNode = null;
|
|
451 |
while (taxonNodeIterator.hasNext()){
|
|
452 |
node = taxonNodeIterator.next();
|
|
453 |
if (!node.isTopmostNode()){
|
|
454 |
parentNode = node.getParent();
|
408 |
455 |
}
|
409 |
|
Set<TaxonNode> nodes = taxon.getTaxonNodes();
|
410 |
|
Iterator<TaxonNode> taxonNodeIterator = nodes.iterator();
|
411 |
|
TaxonNode node, parentNode = null;
|
412 |
|
while (taxonNodeIterator.hasNext()){
|
413 |
|
node = taxonNodeIterator.next();
|
414 |
|
if (!node.isTopmostNode()){
|
415 |
|
parentNode = node.getParent();
|
416 |
|
}
|
417 |
|
}
|
418 |
|
//TODO: ändern mit erweitertem Initializer..
|
419 |
|
if (parentNode != null){
|
420 |
|
if (parentNode.getTaxon().getName().isZoological()){
|
421 |
|
|
422 |
|
IZoologicalName parentName = CdmBase.deproxy(parentNode.getTaxon().getName());
|
423 |
|
String parentNameCache = parentName.getNameCache();
|
424 |
|
mergeObject.setParentStringInFaunaEu(parentNameCache);
|
425 |
|
mergeObject.setParentRankStringInFaunaEu(parentName.getRank().getLabel());
|
426 |
|
System.err.println("parentName: " + parentNameCache);
|
427 |
|
}else{
|
428 |
|
System.err.println("no zoologicalName: " + parentNode.getTaxon().getName().getTitleCache() +" . "+parentNode.getTaxon().getName().getUuid());
|
429 |
|
}
|
430 |
|
|
431 |
|
}
|
432 |
|
}else{
|
433 |
|
mergeObject.setStatInErms(false);
|
434 |
456 |
}
|
435 |
|
taxa = zooName2.getTaxa();
|
436 |
|
if (!taxa.isEmpty()){
|
437 |
|
mergeObject.setStatInFaunaEu(true);
|
438 |
|
}else{
|
439 |
|
mergeObject.setStatInFaunaEu(false);
|
440 |
|
|
441 |
|
}
|
442 |
|
|
443 |
|
mergeObject.setRankInErms(zooName.getRank().getLabel());
|
444 |
|
mergeObject.setRankInFaunaEu(zooName2.getRank().getLabel());
|
445 |
|
|
446 |
|
//set parent informations
|
447 |
|
|
448 |
|
|
449 |
|
/*
|
450 |
|
Set<HybridRelationship> parentRelations = zooName.getParentRelationships();
|
451 |
|
Iterator parentIterator = parentRelations.iterator();
|
452 |
|
HybridRelationship parentRel;
|
453 |
|
ZoologicalName parentName;
|
454 |
|
while (parentIterator.hasNext()){
|
455 |
|
parentRel = (HybridRelationship)parentIterator.next();
|
456 |
|
parentName = (ZoologicalName)parentRel.getParentName();
|
457 |
|
mergeObject.setParentRankStringInErms(parentName.getRank().getLabel());
|
458 |
|
mergeObject.setParentStringInErms(parentName.getNameCache());
|
|
457 |
//TODO: ändern mit erweitertem Initializer..
|
|
458 |
if (parentNode != null){
|
|
459 |
if (parentNode.getTaxon().getName().isZoological()){
|
|
460 |
|
|
461 |
IZoologicalName parentName = CdmBase.deproxy(parentNode.getTaxon().getName());
|
|
462 |
String parentNameCache = parentName.getNameCache();
|
|
463 |
mergeObject.setParentStringInFaunaEu(parentNameCache);
|
|
464 |
mergeObject.setParentRankStringInFaunaEu(parentName.getRank().getLabel());
|
|
465 |
System.err.println("parentName: " + parentNameCache);
|
|
466 |
}else{
|
|
467 |
System.err.println("no zoologicalName: " + parentNode.getTaxon().getName().getTitleCache() +" . "+parentNode.getTaxon().getName().getUuid());
|
|
468 |
}
|
|
469 |
|
459 |
470 |
}
|
460 |
|
|
461 |
|
parentRelations = zooName2.getParentRelationships();
|
462 |
|
parentIterator = parentRelations.iterator();
|
463 |
|
|
464 |
|
while (parentIterator.hasNext()){
|
465 |
|
parentRel = (HybridRelationship)parentIterator.next();
|
466 |
|
parentName = (ZoologicalName)parentRel.getParentName();
|
467 |
|
mergeObject.setParentRankStringInFaunaEu(parentName.getRank().getLabel());
|
468 |
|
mergeObject.setParentStringInFaunaEu(parentName.getNameCache());
|
469 |
|
}*/
|
470 |
|
merge.add(mergeObject);
|
|
471 |
}else{
|
|
472 |
mergeObject.setStatInErms(false);
|
|
473 |
}
|
|
474 |
taxa = faunaEuName.getTaxa();
|
|
475 |
if (!taxa.isEmpty()){
|
|
476 |
mergeObject.setStatInFaunaEu(true);
|
|
477 |
}else{
|
|
478 |
mergeObject.setStatInFaunaEu(false);
|
|
479 |
|
471 |
480 |
}
|
|
481 |
|
|
482 |
mergeObject.setRankInErms(ermsName.getRank().getLabel());
|
|
483 |
mergeObject.setRankInFaunaEu(faunaEuName.getRank().getLabel());
|
|
484 |
|
|
485 |
//set parent informations
|
|
486 |
|
|
487 |
|
|
488 |
/*
|
|
489 |
Set<HybridRelationship> parentRelations = zooName.getParentRelationships();
|
|
490 |
Iterator parentIterator = parentRelations.iterator();
|
|
491 |
HybridRelationship parentRel;
|
|
492 |
ZoologicalName parentName;
|
|
493 |
while (parentIterator.hasNext()){
|
|
494 |
parentRel = (HybridRelationship)parentIterator.next();
|
|
495 |
parentName = (ZoologicalName)parentRel.getParentName();
|
|
496 |
mergeObject.setParentRankStringInErms(parentName.getRank().getLabel());
|
|
497 |
mergeObject.setParentStringInErms(parentName.getNameCache());
|
|
498 |
}
|
|
499 |
|
|
500 |
parentRelations = zooName2.getParentRelationships();
|
|
501 |
parentIterator = parentRelations.iterator();
|
|
502 |
|
|
503 |
while (parentIterator.hasNext()){
|
|
504 |
parentRel = (HybridRelationship)parentIterator.next();
|
|
505 |
parentName = (ZoologicalName)parentRel.getParentName();
|
|
506 |
mergeObject.setParentRankStringInFaunaEu(parentName.getRank().getLabel());
|
|
507 |
mergeObject.setParentStringInFaunaEu(parentName.getNameCache());
|
|
508 |
}*/
|
|
509 |
merge.add(mergeObject);
|
472 |
510 |
}
|
|
511 |
// }
|
473 |
512 |
|
474 |
513 |
return merge;
|
475 |
514 |
|
ref #1445: adapt merging activator to changes in cdmlib