ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.cdmlib / src / main / java / eu / etaxonomy / taxeditor / session / ICdmEntitySessionManager.java
index 2dc43a5902f83731401fe42769b614c6ffa37547..2b890d239f155eb60a63f3db28a03603ba2f8eef 100644 (file)
@@ -2,53 +2,78 @@ package eu.etaxonomy.taxeditor.session;
 
 import java.util.Collection;
 
-import eu.etaxonomy.cdm.api.service.IService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.persistence.dto.MergeResult;
 
 public interface ICdmEntitySessionManager {
 
-       public abstract ICdmEntitySession getActiveSession();
+    public abstract ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive);
 
-       public abstract ICdmEntitySession getSession(
-                       ISessionEventListener sessionOwner);
+    /**
+     * @param sessionOwner
+     * @return
+     */
+    public ICdmEntitySession bindNullSession();
 
-       public abstract void bind(ISessionEventListener sessionOwner);
 
-       public abstract <T extends Object> T load(
-                       ISessionEventListener sessionOwner, T obj);
+       public abstract void bind(ICdmEntitySessionEnabled sessionOwner);
 
-       public abstract <T extends Object> T load(T obj);
 
-       public abstract <T extends CdmBase> T load(
-                       ISessionEventListener sessionOwner, T cdmBase);
+       public abstract <T extends Object> T load(T obj, boolean update);
 
-       public abstract <T extends CdmBase> T load(T cdmBase);
 
-       public abstract <T extends CdmBase> Collection<T> load(
-                       ISessionEventListener sessionOwner, Collection<T> cdmBaseList);
+       public abstract <T extends CdmBase> T load(T cdmBase, boolean update);
 
-       public abstract <T extends CdmBase> Collection<T> load(
-                       Collection<T> cdmBaseList);
 
-       public abstract void dispose(ISessionEventListener owner);
-       
-       //FIXME:Remoting would be nice to have these methods working,
-       //      but they can only be useful if we can 'intelligently'
-       //      get from a model class to the correspoding service class        
-       
-//     @SuppressWarnings("unchecked")
-//     public abstract <T extends CdmBase> void addRootEntity(T cdmBase);
-//
-//     @SuppressWarnings("unchecked")
-//     public abstract <T extends Object> void addRootEntities(
-//                     Collection<T> cdmBaseList);
+       public abstract UpdateResult load(UpdateResult updateResult, boolean update);
 
-//     public abstract void commit();
-//
-//     public abstract void commit(ISessionEventListener sessionOwner);
-//
-//     public abstract void commit(IService service, CdmBase cdmBase);
+       public abstract MergeResult load(MergeResult mergeResult, boolean update);
 
 
+       public abstract <T extends CdmBase> Collection<T> load(Collection<T> cdmBaseList, boolean update);
 
-}
\ No newline at end of file
+
+    /**
+     * @return
+     */
+    public ICdmEntitySession getActiveSession();
+
+    public Collection<ICdmEntitySession> getSessions();
+
+    public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver);
+
+
+
+
+    public boolean isRemoting();
+
+    /**
+     * @param owner
+     */
+    public void dispose(ICdmEntitySessionEnabled owner);
+
+    /**
+     *
+     */
+    public void disposeAll();
+
+
+    /**
+     *
+     */
+    public <T extends CdmBase> void update();
+
+    /**
+     * @param sessionOwner
+     * @return
+     */
+    public boolean contains(ICdmEntitySessionEnabled sessionOwner);
+
+    /**
+     * @return
+     */
+    public ICdmEntitySession getNullSession();
+
+
+}