+
+ List<String> TAXON_INIT_STRATEGY = Arrays.asList(new String []{
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // IdentifiableEntity : toMany-> "credits, extensions, rights, sources"
+ // : toOne-> "lsid"
+ // TaxonBase : toOne-> "homotypicgroup, name, sec"
+ // Taxon : toMany-> "descriptions, heterotypicSynonymyGroups, homotypicSynonymsByHomotypicGroup, homotypicSynonymsByHomotypicRelationship, homotypicSynonymyGroups, misappliedNames, relationsFromThisTaxon, relationsToThisTaxon, synonymNames, synonymRelations, synonyms, synonymsSortedByType, taxonNodes, taxonRelations"
+ // : toOne-> "imageGallery"
+ "*",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "" (available: "annotations, markers")
+ // LanguageStringBase : toOne-> "language"
+ // Annotation : toOne-> "annotatedObj, annotationType, commentator, linkbackUrl
+ "annotations.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // Marker : toOne-> "markedObj, markerType"
+ "markers.$",
+ "markers.markerType.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // AnnotatableEntity : toMany-> "" (available: "annotations, markers")
+ // LanguageStringBase : toOne-> "language"
+ // Annotation : toOne-> "annotatedObj, annotationType, commentator, linkbackUrl
+ // Credit : toOne-> "agent"
+ "credits.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // Extension : toOne-> "extendedObj, type"
+ "extensions.$",
+ "extensions.type.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "" (available: "annotations, markers")
+ // LanguageStringBase : toOne-> "language"
+ // Rights : toOne-> "agent, type, uri"
+ "rights.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "" (available: "annotations, markers")
+ // ReferencedEntityBase : toOne-> "citation"
+ // OriginalSourceBase :
+ // IdentifiableSource : toOne-> "sourcedObj"
+ "sources.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // AnnotatableEntity : toMany-> "" (available: "annotations, markers")
+ // HomotypicalGroup : toMany-> "" (available: "basionymAndReplacedSynonymRelations, basionyms, basionymsOrReplacedSynonyms, nameTypeDesignations, newCombinations, replacedSynonym, specimenTypeDesignations, synonymsInGroup, typeDesignations, typifiedNames, unrelatedNames" )
+ "homotypicGroup.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // AnnotatableEntity : toMany-> "" (available: "annotations, markers")
+ // TaxonNameBase : toMany-> "" (available: "basionyms, descriptions, nameRelations, nameTypeDesignations, relationsFromThisName, relationsToThisName, specimenTypeDesignations, specimenTypeDesignationsOfHomotypicalGroup, status, synonyms, taggedName, taxa, taxonBases, typeDesignations" )
+ // : toOne-> "basionym, citation, homotypicalGroup, nomenclaturalCode, nomenclaturalReference, rank"
+ // ViralName
+ // NonViralName : toMany->"" (available: "childRelationships, hybridChildRelations, hybridParentRelations, orderedChildRelationships, parentRelationships")
+ // : toOne-> "basionymAuthorTeam, combinationAuthorTeam, exBasionymAuthorTeam, exCombinationAuthorTeam"
+ "name.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // IdentifiableEntity : toMany-> "credits, extensions, rights, sources"
+ // : toOne-> "lsid"
+ // IdentifiableMediaEntity : toMany->"" (available: "media")
+ // Reference : toOne->"authorTeam, datePublished, inBook, inJournal, inProceedings, inReference, inSeries, institution, school, type, uri"
+ "sec.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // IdentifiableEntity : toMany-> "credits, extensions, rights, sources"
+ // : toOne-> "lsid"
+ // DescriptionBase : toMany->"" (available: "describedSpecimenOrObservations, descriptiveSystem, elements, workingSets" )
+ // TaxonDescription : toMany->"" (available: "geoScopes, scopes" )
+ // : toOne-> "taxon"
+ "descriptions.$",
+
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // ReferencedEntityBase : toOne-> "citation"
+ // RelationshipBase :
+ // TaxonRelationship : toOne->"fromTaxon, relatedFrom, relatedTo, toTaxon, type"
+ "relationsFromThisTaxon.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // ReferencedEntityBase : toOne-> "citation"
+ // RelationshipBase :
+ // TaxonRelationship : toOne->"fromTaxon, relatedFrom, relatedTo, toTaxon, type"
+ "relationsToThisTaxon.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // ReferencedEntityBase : toOne-> "citation"
+ // RelationshipBase :
+ // SynonymRelationship : toOne->"acceptedTaxon, relatedFrom, relatedTo, synonym, type"
+ "synonymRelations.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // IdentifiableEntity : toMany-> "credits, extensions, rights, sources"
+ // : toOne-> "lsid"
+ // TaxonBase : toOne-> "homotypicgroup, name, sec"
+ // Synonym : toMany-> "" (available: "acceptedTaxa, relationType, synonymRelations" )
+ "synonyms.$",
+
+
+ "misappliedNames.$",
+ "misappliedNames.name.extensions.type.$",
+ "misappliedNames.name.status.$",
+ "misappliedNames.name.status.type.$",
+ "misappliedNames.name.descriptions.elements.$",
+ "misappliedNames.name.typeDesignations.$",
+ "misappliedNames.name.typeDesignations.typeStatus.$",
+
+// "relationsFromThisTaxon.fromTaxon.$",
+// "relationsFromThisTaxon.fromTaxon.name.status.$",
+// "relationsFromThisTaxon.fromTaxon.name.status.type.$",
+// "relationsFromThisTaxon.fromTaxon.name.descriptions.elements.$",
+// "relationsFromThisTaxon.fromTaxon.name.typeDesignations.typeStatus.$",
+// "relationsFromThisTaxon.toTaxon.$",
+//// "relationsFromThisTaxon.toTaxon.name.extensions.type.$",
+// "relationsFromThisTaxon.toTaxon.name.status.$",
+// "relationsFromThisTaxon.toTaxon.name.status.type.$",
+// "relationsFromThisTaxon.toTaxon.name.descriptions.elements.$",
+// "relationsFromThisTaxon.toTaxon.name.typeDesignations.typeStatus.$",
+
+// "relationsToThisTaxon.fromTaxon.$",
+// "relationsToThisTaxon.fromTaxon.name.extensions.type.$",
+// "relationsToThisTaxon.fromTaxon.name.status.type.$",
+// "relationsToThisTaxon.fromTaxon.name.descriptions.elements.$",
+// "relationsToThisTaxon.fromTaxon.name.typeDesignations.typeStatus.$",
+// "relationsToThisTaxon.toTaxon.$",
+// "relationsToThisTaxon.toTaxon.name.status.type.$",
+// "relationsToThisTaxon.toTaxon.name.descriptions.elements.$",
+// "relationsToThisTaxon.toTaxon.name.typeDesignations.typeStatus.$",
+
+ // TaxonNameEditor.createOrUpdateNameComposites()
+ // ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup()
+ "name.homotypicalGroup.typifiedNames.$",
+ "name.homotypicalGroup.synonymsInGroup",
+ "name.synonymRelations",
+ "name.descriptions.elements.$",
+
+// "name.descriptions.scopes.$",
+// "name.descriptions.scopes.terms.$",
+ "name.descriptions.geoscopes.$",
+ "name.descriptions.geoscopes.vocabulary.$",
+ "name.descriptions.geoscopes.vocabulary.terms.$",
+
+ // ContainerFactory.createOrUpdateAcceptedTaxonsHomotypicGroup()
+ "name.homotypicalGroup.$",
+ "name.homotypicalGroup.typifiedNames:$",
+
+ "synonymRelations.synonym.name.$",
+ "synonymRelations.synonym.name.descriptions.elements.$",
+ "synonymRelations.synonym.name.homotypicalGroup.$",
+ "synonymRelations.synonym.name.homotypicalGroup.typifiedNames.$",
+ "synonymRelations.synonym.name.status.$",
+
+ "synonymRelations.synonym.name.typeDesignations.$",
+ "synonymRelations.synonym.name.typeDesignations.typifiedNames.$",
+ "synonymRelations.synonym.name.typeDesignations.typeStatus.$",
+ "synonymRelations.synonym.name.typeDesignations.typeName.$",
+ "synonymRelations.synonym.name.typeDesignations.typeSpecimen.$",
+
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // DescriptionElementBase : toMany->"" (available: "media, modifiers, modifyingText, sources" )
+ // : toOne-> "feature, inDescription"
+ // CategoricalData : toMany->"" (available: "states" )
+ // CommonTaxaName : toOne->"area, language"
+ // Distribution : toOne->"area, status"
+ // IndividualsAssociation : toMany->"" (available: "description" )
+ // : toOne-> "associatedSpecimenOrObserviation"
+ // QuantitativeData : toMany->"" (available: "statisticalValues" )
+ // : toOne-> "unit"
+ // TaxonInteraction : toMany->"" (available: "descriptions" )
+ // : toOne-> "taxon2"
+ // TextData : toMany->"" (available: "multilanguageText" )
+ // : toOne-> "format, languageText, preferredLanguageString"
+ "descriptions.elements.$",
+
+ "descriptions.elements.annotations.$",
+ "descriptions.elements.markers.markerType.$",
+
+ "descriptions.elements.modifiers.$",
+ "descriptions.elements.modifyingText.$",
+
+ "descriptions.elements.description.$",
+
+ "descriptions.elements.associatedSpecimenOrObservation.$",
+ "descriptions.elements.associatedSpecimenOrObservation.annotations.$",
+ "descriptions.elements.associatedSpecimenOrObservation.annotations.annotationType.$",
+ "descriptions.elements.associatedSpecimenOrObservation.markers.markerType.$",
+ "descriptions.elements.associatedSpecimenOrObservation.credits.$",
+ "descriptions.elements.associatedSpecimenOrObservation.extensions.type.$",
+ "descriptions.elements.associatedSpecimenOrObservation.rights.$",
+ "descriptions.elements.associatedSpecimenOrObservation.sources.$",
+ "descriptions.elements.associatedSpecimenOrObservation.media.$",
+ "descriptions.elements.associatedSpecimenOrObservation.media.representations.parts.$",
+
+ "descriptions.elements.descriptions.$",
+
+ "descriptions.elements.multilanguageText.$",
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // IdentifiableEntity : toMany-> "credits, extensions, rights, sources"
+ // : toOne-> "lsid"
+ // Media : toMany->"allDescriptions, allTitles, representations"
+ // : toOne-> "artist, description, mediaCreated, title"
+ "descriptions.elements.media.$",
+// "descriptions.elements.media.allDescriptions.$",
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // MediaRepresentation : toMany-> "parts"
+ // : toOne-> "media"
+ // MediaRepresentationPart : toOne-> "mediaRepresentation, size, uri"
+ "descriptions.elements.media.representations.parts.$",
+
+ "descriptions.elements.media.annotations.$",
+ "descriptions.elements.media.annotations.annotationType.$",
+ "descriptions.elements.media.credits.$",
+ "descriptions.elements.media.extensions.$",
+ "descriptions.elements.media.extensions.type.$",
+ "descriptions.elements.media.markers.$",
+ "descriptions.elements.media.markers.marker.Type.$",
+ "descriptions.elements.media.rights.$",
+ "descriptions.elements.media.sources.$",
+
+ "descriptions.elements.states.$",
+ "descriptions.elements.statisticalValues.$",
+
+
+ // DescriptiveContentProvider.getContainerTreeForDesription()
+ // FeatureNodeContainerTree.getDescriptionsElementsForFeature()
+ // DescriptionHelper.getElementText()
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // ReferencedEntityBase : toOne-> "citation"
+ // DescriptionElementSource : toOne-> "nameUsedInSource, sourcedObj"
+ "descriptions.elements.sources.$",
+
+ // NamedArea.labelWithLevel()
+
+ // CdmBase : toOne-> "created, createdBy, uuid"
+ // VersionableEntity : toOne-> "updated, updatedBy"
+ // AnnotatableEntity : toMany-> "annotations, markers"
+ // ReferencedEntityBase : toOne-> "citation"
+ // NamedArea : toMany->"" (available: "allLevelList, generalizationOf, includes, waterbodiesOrCountries" )
+ // : toOne-> "hierarchieList, kindOf, level, partOf, pointApproximation, shape, type, validPeriod"
+ "descriptions.elements.area.$",
+ "descriptions.elements.area.allLevelList.$",
+ "descriptions.elements.area.allLevelList.vocabulary.$",
+ "descriptions.elements.area.allLevelList.vocabulary.terms.$",
+ "descriptions.elements.area.vocabulary.$",
+ "descriptions.elements.area.vocabulary.terms.$",
+ "descriptions.elements.vocabulary.$",
+ "descriptions.elements.vocabulary.terms.$",
+
+
+// "descriptions.scopes.$",
+// "descriptions.scopes.terms.$",
+// "descriptions.geoscopes.$",
+// "descriptions.geoscopes.vocabulary.$",
+// "descriptions.geoscopes.vocabulary.terms.$",
+
+ // NameRelationshipDetailSection.createElementComposite()
+ // NameRelationshipDetailElement.setEntity()
+ "name.nameRelations.$",
+
+
+ "name.extensions.$",
+ "name.extensions.type.$",
+
+ "name.basionymAuthorTeam.$",
+ "name.basionymAuthorTeam.annotations.$",
+ "name.basionymAuthorTeam.annotations.annotationType.$",
+ "name.basionymAuthorTeam.markers.markerType.$",
+ "name.basionymAuthorTeam.credits.$",
+ "name.basionymAuthorTeam.extensions.type.$",
+ "name.basionymAuthorTeam.rights.$",
+ "name.basionymAuthorTeam.sources.$",
+ "name.basionymAuthorTeam.media.$",
+ "name.basionymAuthorTeam.media.representations.parts.$",
+ "name.basionymAuthorTeam.teamMembers.$",
+ "name.basionymAuthorTeam.teamMembers.annotations.$",
+ "name.basionymAuthorTeam.teamMembers.annotations.annotationType.$",
+ "name.basionymAuthorTeam.teamMembers.markers.markerType.$",
+ "name.basionymAuthorTeam.teamMembers.credits.$",
+ "name.basionymAuthorTeam.teamMembers.extensions.type.$",
+ "name.basionymAuthorTeam.teamMembers.rights.$",
+ "name.basionymAuthorTeam.teamMembers.sources.$",
+ "name.basionymAuthorTeam.teamMembers.media.$",
+ "name.basionymAuthorTeam.teamMembers.media.representations.parts.$",
+
+ "name.combinationAuthorTeam.$",
+ "name.combinationAuthorTeam.annotations.$",
+ "name.combinationAuthorTeam.annotations.annotationType.$",
+ "name.combinationAuthorTeam.markers.markerType.$",
+ "name.combinationAuthorTeam.credits.$",
+ "name.combinationAuthorTeam.extensions.type.$",
+ "name.combinationAuthorTeam.rights.$",
+ "name.combinationAuthorTeam.sources.$",
+ "name.combinationAuthorTeam.media.$",
+ "name.combinationAuthorTeam.media.representations.parts.$",
+ "name.combinationAuthorTeam.teamMembers.$",
+ "name.combinationAuthorTeam.teamMembers.annotations.$",
+ "name.combinationAuthorTeam.teamMembers.annotations.annotationType.$",
+ "name.combinationAuthorTeam.teamMembers.markers.markerType.$",
+ "name.combinationAuthorTeam.teamMembers.credits.$",
+ "name.combinationAuthorTeam.teamMembers.extensions.type.$",
+ "name.combinationAuthorTeam.teamMembers.rights.$",
+ "name.combinationAuthorTeam.teamMembers.sources.$",
+ "name.combinationAuthorTeam.teamMembers.media.$",
+ "name.combinationAuthorTeam.teamMembers.media.representations.parts.$",
+
+ "name.exBasionymAuthorTeam.$",
+ "name.exBasionymAuthorTeam.annotations.$",
+ "name.exBasionymAuthorTeam.annotations.annotationType.$",
+ "name.exBasionymAuthorTeam.markers.markerType.$",
+ "name.exBasionymAuthorTeam.credits.$",
+ "name.exBasionymAuthorTeam.extensions.type.$",
+ "name.exBasionymAuthorTeam.rights.$",
+ "name.exBasionymAuthorTeam.sources.$",
+ "name.exBasionymAuthorTeam.media.$",
+ "name.exBasionymAuthorTeam.media.representations.parts.$",
+ "name.exBasionymAuthorTeam.teamMembers.$",
+ "name.exBasionymAuthorTeam.teamMembers.annotations.$",
+ "name.exBasionymAuthorTeam.teamMembers.annotations.annotationType.$",
+ "name.exBasionymAuthorTeam.teamMembers.markers.markerType.$",
+ "name.exBasionymAuthorTeam.teamMembers.credits.$",
+ "name.exBasionymAuthorTeam.teamMembers.extensions.type.$",
+ "name.exBasionymAuthorTeam.teamMembers.rights.$",
+ "name.exBasionymAuthorTeam.teamMembers.sources.$",
+ "name.exBasionymAuthorTeam.teamMembers.media.$",
+ "name.exBasionymAuthorTeam.teamMembers.media.representations.parts.$",
+
+ "name.exCombinationAuthorTeam.$",
+ "name.exCombinationAuthorTeam.annotations.$",
+ "name.exCombinationAuthorTeam.annotations.annotationType.$",
+ "name.exCombinationAuthorTeam.markers.markerType.$",
+ "name.exCombinationAuthorTeam.credits.$",
+ "name.exCombinationAuthorTeam.extensions.type.$",
+ "name.exCombinationAuthorTeam.rights.$",
+ "name.exCombinationAuthorTeam.sources.$",
+ "name.exCombinationAuthorTeam.media.$",
+ "name.exCombinationAuthorTeam.media.representations.parts.$",
+ "name.exCombinationAuthorTeam.teamMembers.$",
+ "name.exCombinationAuthorTeam.teamMembers.annotations.$",
+ "name.exCombinationAuthorTeam.teamMembers.annotations.annotationType.$",
+ "name.exCombinationAuthorTeam.teamMembers.markers.markerType.$",
+ "name.exCombinationAuthorTeam.teamMembers.credits.$",
+ "name.exCombinationAuthorTeam.teamMembers.extensions.type.$",
+ "name.exCombinationAuthorTeam.teamMembers.rights.$",
+ "name.exCombinationAuthorTeam.teamMembers.sources.$",
+ "name.exCombinationAuthorTeam.teamMembers.media.$",
+ "name.exCombinationAuthorTeam.teamMembers.media.representations.parts.$",
+
+ "name.nomenclaturalReference.annotations.$",
+ "name.nomenclaturalReference.annotations.annotationType.$",
+ "name.nomenclaturalReference.authorTeam.$",
+ "name.nomenclaturalReference.authorTeam.media.$",
+ "name.nomenclaturalReference.authorTeam.media.representations.parts.$",
+ "name.nomenclaturalReference.markers.markerType.$",
+ "name.nomenclaturalReference.credits.$",
+ "name.nomenclaturalReference.extensions.type.$",
+ "name.nomenclaturalReference.rights.$",
+ "name.nomenclaturalReference.rights.type.$",
+ "name.nomenclaturalReference.sources.$",
+ "name.nomenclaturalReference.media.$",
+ "name.nomenclaturalReference.media.representations.parts.$",
+ "name.nomenclaturalReference.inReference.$",
+ "name.nomenclaturalReference.inReference.annotations.$",
+ "name.nomenclaturalReference.inReference.annotations.annotationType.$",
+ "name.nomenclaturalReference.inReference.markers.markerType.$",
+
+ "name.nomenclaturalReference.inReference.credits.$",
+ "name.nomenclaturalReference.inReference.extensions.type.$",
+ "name.nomenclaturalReference.inReference.rights.$",
+ "name.nomenclaturalReference.inReference.rights.type.$",
+ "name.nomenclaturalReference.inReference.sources.$",
+ "name.nomenclaturalReference.inReference.media.$",
+ "name.nomenclaturalReference.inReference.media.representations.parts.$",
+
+ "name.status.$",
+ "name.status.annotations.$",
+ "name.status.annotations.annotationType.$",
+ "name.status.markers.markerType.$",
+ "name.status.type.$",
+
+ "name.typeDesignations.$",
+ "name.typeDesignations.typifiedNames.$",
+ "name.typeDesignations.typeStatus.$",
+ "name.typeDesignations.typeName.$",
+ "name.typeDesignations.typeSpecimen.$",
+
+ });
+
+ return (Taxon) CdmStore.getService(ITaxonService.class).load(taxonNode.getTaxon().getUuid(), TAXON_INIT_STRATEGY);
+