import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
+import eu.etaxonomy.cdm.model.name.HybridRelationship;
import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
List<String> propertyPaths = Arrays.asList(new String[]{});
return CdmStore.getService(INameService.class).load(entityUuid, getPropertyPaths());
}
+ @Override
+ public void addSaveCandidate(TaxonName name){
+ if (!name.getHybridChildRelations().isEmpty()){
+ for (HybridRelationship rel: name.getHybridChildRelations()){
+ if (!rel.getParentName().isPersited()){
+ super.addSaveCandidate(rel.getParentName());
+ }
+ if (!rel.getHybridName().isPersited()){
+ super.addSaveCandidate(rel.getHybridName());
+ }
+ }
+ }
+
+ super.addSaveCandidate(name);
+ }
private List<String> getPropertyPaths(){
import java.util.List;\r
import java.util.UUID;\r
\r
+import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;\r
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;\r
import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;\r
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
+import eu.etaxonomy.cdm.model.name.HybridRelationship;\r
+import eu.etaxonomy.cdm.model.name.TaxonName;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
/** Constant <code>ID="bulkeditor.input.taxon"</code> */\r
public static final String ID = "bulkeditor.input.taxon";\r
\r
+ private List<TaxonName> saveNameCandidates = new ArrayList<>();\r
\r
\r
/**\r
\r
}\r
\r
+ @Override\r
+ public void addSaveCandidate(TaxonBase taxonBase){\r
+ if (!taxonBase.getName().getHybridChildRelations().isEmpty()){\r
+ for (HybridRelationship rel: taxonBase.getName().getHybridChildRelations()){\r
+ if (!rel.getParentName().isPersited()){\r
+ this.saveNameCandidates.add(rel.getParentName());\r
+ }\r
+ if (!rel.getHybridName().isPersited()){\r
+ this.saveNameCandidates.add(rel.getHybridName());\r
+ }\r
+ }\r
+ }\r
+\r
+ super.addSaveCandidate(taxonBase);\r
+ }\r
+\r
+ @Override\r
+ public void saveModel(boolean resetMerge){\r
+ CdmStore.getService(INameService.class).save(this.saveNameCandidates);\r
+ super.saveModel(resetMerge);\r
+ }\r
+\r
}\r