ref #6913 Remove defined term editor
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / editor / CdmEntitySessionInput.java
index 7b83c4bce264183c308a6f3f0aaf2fb9b7f0b0d1..aec18138929dd4c4376bed2c2972c4cf7b6dbb6e 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2015 EDIT
 * European Distributed Institute of Taxonomy
@@ -23,9 +22,15 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled {
 
-    private final ICdmEntitySession cdmEntitySession;
+    private ICdmEntitySession cdmEntitySession;
 
-    public CdmEntitySessionInput() {
+    public CdmEntitySessionInput(boolean init) {
+        if(init) {
+            initSession();
+        }
+    }
+
+    protected void initSession() {
         cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
     }
 
@@ -35,11 +40,20 @@ public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled
     }
 
     public void bind() {
-        cdmEntitySession.bind();
+        if(cdmEntitySession!=null){
+            cdmEntitySession.bind();
+        }
+        else {
+            initSession();
+        }
     }
 
     public void dispose() {
-        cdmEntitySession.dispose();
+        if (cdmEntitySession != null){
+            cdmEntitySession.dispose();
+        }
+        cdmEntitySession = null;
+
     }
 
     public abstract void merge();