ref #6805 Set moved node as CDM entity for UpdateResult
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / FeatureNodeServiceImpl.java
index 59d4058f90feeafb9580ec8796c0749ae8c73bf8..b0725fb59187954d150281997411aa947c0edba9 100644 (file)
@@ -24,7 +24,6 @@ import eu.etaxonomy.cdm.api.service.config.NodeDeletionConfigurator.ChildHandlin
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
@@ -102,23 +101,18 @@ public class FeatureNodeServiceImpl extends VersionableServiceBase<FeatureNode,
 
         @Override
         public UpdateResult createChildFeatureNode(FeatureNode node, Feature featureChild){
-            DefinedTermBase feature = termService.save(featureChild);
-            FeatureNode childNode = FeatureNode.NewInstance(featureChild);
-            save(childNode);
-            UpdateResult result = new UpdateResult();
-            node.addChild(childNode);
-            result.addUpdatedObject(node);
-            result.setCdmEntity(node.getFeatureTree());
-            return result;
+            Feature feature = (Feature) termService.save(featureChild);
+            return addChildFeatureNode(node, feature);
         }
 
         @Override
         public UpdateResult addChildFeatureNode(FeatureNode node, Feature featureChild){
-            UpdateResult result = new UpdateResult();
             FeatureNode childNode = FeatureNode.NewInstance(featureChild);
+            UpdateResult result = new UpdateResult();
             node.addChild(childNode);
+            save(childNode);
             result.addUpdatedObject(node);
-            result.setCdmEntity(node.getFeatureTree());
+            result.setCdmEntity(childNode);
             return result;
         }
 
@@ -169,7 +163,7 @@ public class FeatureNodeServiceImpl extends VersionableServiceBase<FeatureNode,
         if(parent!=null){
             result.addUpdatedObject(parent);
         }
-        result.setCdmEntity(targetNode.getFeatureTree());
+        result.setCdmEntity(movedNode);
         return result;
     }