Other indirect, transient methods in NameRelationship, TaxonRelationship and SynonymRelationship have been used.
import eu.etaxonomy.cdm.remote.dto.namecatalogue.NameSearch;\r
import eu.etaxonomy.cdm.remote.dto.namecatalogue.TaxonInformation;\r
import eu.etaxonomy.cdm.remote.view.HtmlView;\r
import eu.etaxonomy.cdm.remote.dto.namecatalogue.NameSearch;\r
import eu.etaxonomy.cdm.remote.dto.namecatalogue.TaxonInformation;\r
import eu.etaxonomy.cdm.remote.view.HtmlView;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
"exBasionymAuthorTeam.$",\r
"nameCache",\r
"taxonBases",\r
"exBasionymAuthorTeam.$",\r
"nameCache",\r
"taxonBases",\r
- "taxonBases.synonymRelations.type.$"});\r
+ "taxonBases.synonymRelations.type.$"});\r
\r
/** Hibernate name information initialisation strategy */\r
private static final List<String> NAME_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
\r
/** Hibernate name information initialisation strategy */\r
private static final List<String> NAME_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
"exCombinationAuthorTeam.$",\r
"basionymAuthorTeam.$",\r
"exBasionymAuthorTeam.$",\r
"exCombinationAuthorTeam.$",\r
"basionymAuthorTeam.$",\r
"exBasionymAuthorTeam.$",\r
- "relationsToThisName.$",\r
- "relationsFromThisName.$" });\r
+ "relationsToThisName.fromName.$",\r
+ "relationsToThisName.nomenclaturalReference.$",\r
+ "relationsToThisName.type.$",\r
+ "relationsFromThisName.toName.$",\r
+ "relationsFromThisName.nomenclaturalReference.$",\r
+ "relationsFromThisName.type.$"});\r
\r
/** Hibernate taxon information initialisation strategy */\r
private static final List<String> TAXON_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
\r
/** Hibernate taxon information initialisation strategy */\r
private static final List<String> TAXON_INFORMATION_INIT_STRATEGY = Arrays.asList(new String[] {\r
"name.rank.titleCache",\r
"synonymRelations.synonym.name.rank.titleCache",\r
"name.rank.titleCache",\r
"synonymRelations.synonym.name.rank.titleCache",\r
+ "synonymRelations.acceptedTaxon.name.rank.titleCache",\r
"synonymRelations.type.$",\r
"synonymRelations.type.$",\r
+ "taxonRelations.toTaxon.$",\r
+ "taxonRelations.fromTaxon.$",\r
+ "taxonRelations.type.$", \r
"synonymRelations.relatedTo.name.rank.titleCache",\r
"relationsFromThisTaxon.type.$",\r
"relationsFromThisTaxon.relatedTo.name.rank.titleCache",\r
"synonymRelations.relatedTo.name.rank.titleCache",\r
"relationsFromThisTaxon.type.$",\r
"relationsFromThisTaxon.relatedTo.name.rank.titleCache",\r
// build classification map\r
Map classificationMap = getClassification(taxon, classificationType);\r
\r
// build classification map\r
Map classificationMap = getClassification(taxon, classificationType);\r
\r
+ logger.info("taxon uuid " + taxon.getUuid().toString() + " original hash code : " + System.identityHashCode(taxon) + ", name class " + taxon.getName().getClass().getName());
// update taxon information object with taxon related data\r
// update taxon information object with taxon related data\r
- NonViralName nvn = (NonViralName) tb.getName();\r
+ NonViralName nvn = (NonViralName) taxon.getName();\r
ti.setResponseTaxon(tb.getTitleCache(),\r
nvn.getTitleCache(),\r
nvn.getRank().getTitleCache(),\r
ti.setResponseTaxon(tb.getTitleCache(),\r
nvn.getTitleCache(),\r
nvn.getRank().getTitleCache(),\r
// build relationship information as,\r
// - relationships from the requested taxon\r
Set<TaxonRelationship> trFromSet = taxon.getRelationsFromThisTaxon();\r
// build relationship information as,\r
// - relationships from the requested taxon\r
Set<TaxonRelationship> trFromSet = taxon.getRelationsFromThisTaxon();\r
- for (TaxonRelationship tr : trFromSet) {\r
- String titleTo = tr.getRelatedTo().getTitleCache();\r
- NonViralName tonvn = (NonViralName) tr.getRelatedTo().getName();\r
+ for (TaxonRelationship tr : trFromSet) { \r
+ String titleTo = tr.getToTaxon().getTitleCache();\r
+ NonViralName tonvn = (NonViralName) tr.getToTaxon().getName();\r
String name = tonvn.getTitleCache();\r
String rank = tonvn.getRank().getTitleCache();\r
String name = tonvn.getTitleCache();\r
String rank = tonvn.getRank().getTitleCache();\r
- String uuid = tr.getRelatedTo().getUuid().toString();\r
+ String uuid = tr.getToTaxon().getUuid().toString();\r
String status = ACCEPTED_NAME_STATUS;\r
String relLabel = tr.getType().getRepresentation(Language.DEFAULT())\r
.getLabel();\r
String status = ACCEPTED_NAME_STATUS;\r
String relLabel = tr.getType().getRepresentation(Language.DEFAULT())\r
.getLabel();\r
// - relationships from the requested taxon\r
Set<TaxonRelationship> trToSet = taxon.getRelationsToThisTaxon();\r
for (TaxonRelationship tr : trToSet) {\r
// - relationships from the requested taxon\r
Set<TaxonRelationship> trToSet = taxon.getRelationsToThisTaxon();\r
for (TaxonRelationship tr : trToSet) {\r
- String titleFrom = tr.getRelatedFrom().getTitleCache();\r
- NonViralName fromnvn = (NonViralName) tr.getRelatedTo().getName();\r
+ String titleFrom = tr.getFromTaxon().getTitleCache();\r
+ NonViralName fromnvn = (NonViralName) tr.getToTaxon().getName();\r
String name = fromnvn.getTitleCache();\r
String rank = fromnvn.getRank().getTitleCache();\r
String name = fromnvn.getTitleCache();\r
String rank = fromnvn.getRank().getTitleCache();\r
- String uuid = tr.getRelatedFrom().getUuid().toString();\r
+ String uuid = tr.getFromTaxon().getUuid().toString();\r
String status = ACCEPTED_NAME_STATUS;\r
String relLabel = tr.getType()\r
.getInverseRepresentation(Language.DEFAULT())\r
String status = ACCEPTED_NAME_STATUS;\r
String relLabel = tr.getType()\r
.getInverseRepresentation(Language.DEFAULT())\r
// add accepted taxa (if exists) to taxon information object\r
\r
//FIXME commenting out below line in order to allow fixing the bug #3064 (portal synonymy service produces massive response for Crepis tectorum)\r
// add accepted taxa (if exists) to taxon information object\r
\r
//FIXME commenting out below line in order to allow fixing the bug #3064 (portal synonymy service produces massive response for Crepis tectorum)\r
-/* Set<SynonymRelationship> synRelationships = synonym.getSynonymRelations();\r
+ Set<SynonymRelationship> synRelationships = synonym.getSynonymRelations();\r
for (SynonymRelationship sr : synRelationships) {\r
for (SynonymRelationship sr : synRelationships) {\r
- Taxon accTaxon = sr.getRelatedTo();\r
+ Taxon accTaxon = sr.getAcceptedTaxon(); \r
String uuid = accTaxon.getUuid().toString();\r
String uuid = accTaxon.getUuid().toString();\r
+ logger.info("acc taxon uuid " + accTaxon.getUuid().toString() + " original hash code : " + System.identityHashCode(accTaxon) + ", name class " + accTaxon.getName().getClass().getName());\r
String title = accTaxon.getTitleCache();\r
String title = accTaxon.getTitleCache();\r
- NonViralName accnvn = (NonViralName) accTaxon.getName();\r
+ logger.info("taxon title cache : " + accTaxon.getTitleCache());\r
+ //NonViralName accnvn = CdmBase.deproxy(accTaxon.getName(), NonViralName.class); \r
+ NonViralName accnvn = (NonViralName)accTaxon.getName();\r
String name = accnvn.getTitleCache();\r
String rank = accnvn.getRank().getTitleCache();\r
String status = ACCEPTED_NAME_STATUS;\r
String name = accnvn.getTitleCache();\r
String rank = accnvn.getRank().getTitleCache();\r
String status = ACCEPTED_NAME_STATUS;\r
.getLabel();\r
ti.addToResponseRelatedTaxa(uuid, title, name, rank, status, "", relLabel);\r
}\r
.getLabel();\r
ti.addToResponseRelatedTaxa(uuid, title, name, rank, status, "", relLabel);\r
}\r
}\r
tiList.add(ti);\r
} else {\r
}\r
tiList.add(ti);\r
} else {\r
import java.util.List;\r
import java.util.Set;\r
\r
import java.util.List;\r
import java.util.Set;\r
\r
+import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.name.NameRelationship;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
import eu.etaxonomy.cdm.model.name.NameRelationship;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
\r
NameRelationship nr = (NameRelationship)it.next();\r
if(nr.getType() != null) {\r
\r
NameRelationship nr = (NameRelationship)it.next();\r
if(nr.getType() != null) {\r
- typeString = nr.getType().toString();\r
+ typeString = nr.getType()\r
+ .getRepresentation(Language.DEFAULT())\r
+ .getLabel();\r
- if(nr.getRelatedFrom() != null) {\r
- relatednameCache = nr.getRelatedFrom().getTitleCache();\r
- Reference ref = (Reference) nr.getRelatedFrom().getNomenclaturalReference();\r
- relatedCitation = ref.getTitleCache();\r
+ TaxonNameBase tnbRelatedTo = nr.getToName();\r
+ if(tnbRelatedTo != null) {\r
+ System.out.println("tnbRelatedTo not null");\r
+ relatednameCache = tnbRelatedTo.getTitleCache();\r
+ Reference ref = (Reference) tnbRelatedTo.getNomenclaturalReference();\r
+ if(ref !=null) {\r
+ relatedCitation = ref.getTitleCache();\r
+ }\r
- response.addToNameRelationships(typeString, \r
- NameInformationResponse.NameRelationshipInfo.DIRECTION_FROM, \r
+ response.addNameRelationships(typeString,\r
relatednameCache, \r
relatedCitation);\r
} \r
relatednameCache, \r
relatedCitation);\r
} \r
\r
NameRelationship nr = (NameRelationship)it.next();\r
if(nr.getType() != null) {\r
\r
NameRelationship nr = (NameRelationship)it.next();\r
if(nr.getType() != null) {\r
- typeString = nr.getType().toString();\r
+ typeString = nr.getType()\r
+ .getInverseRepresentation(Language.DEFAULT())\r
+ .getLabel();\r
- if(nr.getRelatedTo() != null) {\r
- relatednameCache = nr.getRelatedTo().getTitleCache();\r
- Reference ref = (Reference) nr.getRelatedTo().getNomenclaturalReference();\r
- relatedCitation = ref.getTitleCache();\r
+ \r
+ TaxonNameBase tnbRelatedFrom = nr.getFromName();\r
+ if(tnbRelatedFrom != null) {\r
+ System.out.println("tnbRelatedTo not null");\r
+ relatednameCache = tnbRelatedFrom.getTitleCache();\r
+ Reference ref = (Reference) tnbRelatedFrom.getNomenclaturalReference();\r
+ if(ref !=null) {\r
+ relatedCitation = ref.getTitleCache();\r
+ }\r
- response.addToNameRelationships(typeString, \r
- NameInformationResponse.NameRelationshipInfo.DIRECTION_TO, \r
+ response.addNameRelationships(typeString,\r
relatednameCache, \r
relatedCitation);\r
} \r
relatednameCache, \r
relatedCitation);\r
} \r
return this.citation; \r
}\r
\r
return this.citation; \r
}\r
\r
- public void addToNameRelationships(String type, String direction, String relatedName, String citation) {\r
+ public void addNameRelationships(String type, String relatedName, String citation) {\r
NameInformation.NameInformationResponse.NameRelationshipInfo nr = \r
new NameInformation.NameInformationResponse.NameRelationshipInfo();\r
NameInformation.NameInformationResponse.NameRelationshipInfo nr = \r
new NameInformation.NameInformationResponse.NameRelationshipInfo();\r
- nr.setRelationInfo(type, direction, relatedName, citation);\r
+ nr.setRelationInfo(type, relatedName, citation);\r
nameRelationships.add(nr);\r
}\r
\r
nameRelationships.add(nr);\r
}\r
\r
\r
public class NameRelationshipInfo {\r
private String type;\r
\r
public class NameRelationshipInfo {\r
private String type;\r
- private String direction;\r
private String relatedName;\r
private String citation;\r
\r
private String relatedName;\r
private String citation;\r
\r
- public final static String DIRECTION_TO = "TO";\r
- public final static String DIRECTION_FROM = "FROM";\r
\r
public NameRelationshipInfo() {\r
\r
}\r
\r
\r
public NameRelationshipInfo() {\r
\r
}\r
\r
- public void setRelationInfo(String type, String direction, String relatedName, String citation) {\r
+ public void setRelationInfo(String type, String relatedName, String citation) {\r
- this.direction = direction;\r
this.relatedName = relatedName;\r
this.citation = citation; \r
}\r
this.relatedName = relatedName;\r
this.citation = citation; \r
}\r