Project

General

Profile

« Previous | Next » 

Revision 703e8efc

Added by Cherian Mathew about 9 years ago

CdmRemoteCacheManager : added cache getter methods
CdmTransientEntityCacher, CdmEntitySession, CdmEntitySessionManager, ICdmEntitySession, ICdmEntitySessionManager, ICdmEntitySessionManagerObserver, MockCdmEntitySession, MockCdmEntitySessionManager , eu.etaxonomy.taxeditor.cdmlib/src/main/resources/cdmlib-ehcache.xml : added statistics config , getter method for live stats and observer to update when sessions are bound and disposed
eu.etaxonomy.taxeditor.store/plugin.xml, SessionsViewPart : added new sessions debug view
MatchStrategyConfigurator : moved to cdmlib
ParseHandler, AbstractMatchingPreferences, NonViralNameMatchingPreference, ReferenceMatchingPreference, TeamOrPersonMatchingPreference : refactored after removal of MatchStrategyConfigurator replaced by enum MatchStrategy

View differences:

eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java
9 9
*/
10 10
package eu.etaxonomy.taxeditor.session;
11 11

  
12
import java.util.ArrayList;
12 13
import java.util.Collection;
13 14
import java.util.HashMap;
15
import java.util.List;
14 16
import java.util.Map;
15 17

  
16 18
import org.apache.log4j.Logger;
......
27 29
public class CdmEntitySessionManager implements ICdmEntitySessionManager {
28 30
	private static final Logger logger = Logger.getLogger(CdmEntitySessionManager.class);
29 31

  
30
    private final Map<ICdmEntitySessionEnabled, CdmEntitySession> ownerSessionMap =
31
    		new HashMap<ICdmEntitySessionEnabled, CdmEntitySession>();
32
    private final Map<ICdmEntitySessionEnabled, ICdmEntitySession> ownerSessionMap =
33
    		new HashMap<ICdmEntitySessionEnabled, ICdmEntitySession>();
34

  
35
    private final List<ICdmEntitySessionManagerObserver> sessionObservers = new ArrayList<ICdmEntitySessionManagerObserver>();
32 36

  
33 37
    private ICdmEntitySession activeSession;
34 38

  
35 39
    @Override
36 40
	public ICdmEntitySession newSession(ICdmEntitySessionEnabled sessionOwner, boolean setAsActive) {
37
		CdmEntitySession session = ownerSessionMap.get(sessionOwner);
41
		ICdmEntitySession session = ownerSessionMap.get(sessionOwner);
38 42
		if(session == null) {
39 43
			session = new CdmEntitySession(sessionOwner, this);
40 44
			addToOwnerSessionMap(sessionOwner, session);
45

  
41 46
		}
42 47

  
43 48
		if(setAsActive) {
44 49
			activeSession = session;
50

  
45 51
		}
52

  
46 53
		return session;
47 54
	}
48 55

  
49 56
    @Override
50 57
    public ICdmEntitySession getActiveSession() {
51

  
52 58
        return activeSession;
53 59
    }
54 60

  
61

  
62
    /* (non-Javadoc)
63
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#getSessions()
64
     */
65
    @Override
66
    public Collection<ICdmEntitySession> getSessions() {
67
        return ownerSessionMap.values();
68
    }
69

  
70

  
55 71
	/* (non-Javadoc)
56 72
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#bind(eu.etaxonomy.taxeditor.session.ISessionEventListener)
57 73
	 */
......
65 81
		if(session == null) {
66 82
			session = newSession(sessionOwner,true);
67 83
		}
84

  
68 85
		activeSession = session;
86

  
69 87
	}
70 88

  
71 89

  
......
109 127
	/* (non-Javadoc)
110 128
	 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#dispose(eu.etaxonomy.taxeditor.session.ISessionEventListener)
111 129
	 */
112
	@Override
113
	public void dispose(ICdmEntitySessionEnabled owner) {
130
	void dispose(ICdmEntitySessionEnabled owner) {
114 131
		ICdmEntitySession session = ownerSessionMap.get(owner);
115 132
		if(session == null) {
116 133
			logger.info("No Session connected to owner, nothing to dispose");
117 134
			return;
118 135
		}
119
		session.dispose();
136
		ownerSessionMap.remove(owner);
137
		notifyObservers();
120 138
	}
121 139

  
122
	 void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, CdmEntitySession session) {
140
	 void addToOwnerSessionMap(ICdmEntitySessionEnabled owner, ICdmEntitySession session) {
123 141
		ownerSessionMap.put(owner, session);
124 142
	}
125 143

  
144
    /* (non-Javadoc)
145
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#addSessionListener()
146
     */
147
    @Override
148
    public void addSessionObserver(ICdmEntitySessionManagerObserver sessionObserver) {
149
        sessionObservers.add(sessionObserver);
150
    }
151

  
152
    public void notifyObservers() {
153
        for(ICdmEntitySessionManagerObserver sessionObserver : sessionObservers) {
154
            sessionObserver.changed();
155
        }
156
    }
157

  
158
    /* (non-Javadoc)
159
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager#isRemoting()
160
     */
161
    @Override
162
    public boolean isRemoting() {
163
        // FIXME:Remoting stupid method to check whether we are in remoting
164
        return true;
165
    }
166

  
167

  
168

  
169

  
126 170

  
127 171
}

Also available in: Unified diff