temporary re-factoring project
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng / src / org / eclipse / linuxtools / lttng / state / experiment / StateManagerFactory.java
1 /*******************************************************************************
2 * Copyright (c) 2009 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.lttng.state.experiment;
14
15 import java.util.Map;
16
17 import org.eclipse.linuxtools.lttng.state.StateManager;
18 import org.eclipse.linuxtools.lttng.state.StateStacksHandler;
19 import org.eclipse.linuxtools.lttng.state.model.LttngTraceState;
20 import org.eclipse.linuxtools.lttng.state.model.StateModelFactory;
21
22 /**
23 * @author alvaro
24 *
25 */
26 public class StateManagerFactory {
27 // ========================================================================
28 // Data
29 // =======================================================================
30
31 private static StateExperimentManager experimentManager = null;
32 private static Map<String, StateManager> instanceBook = null;
33
34 // ========================================================================
35 // Methods
36 // =======================================================================
37
38 /**
39 * Provide a stateManager instance per trace
40 *
41 * @return
42 */
43 public static StateManager getManager(String traceUniqueId) {
44
45 if (traceUniqueId == null) {
46 return null;
47 }
48
49 initCheck();
50
51 if (instanceBook.containsKey(traceUniqueId)) {
52 return instanceBook.get(traceUniqueId);
53 }
54
55 LttngTraceState traceModel = StateModelFactory.getStateEntryInstance();
56 StateStacksHandler stateInputHandler = new StateStacksHandler(
57 traceModel);
58 StateManager manager = new StateManager(stateInputHandler);
59
60 instanceBook.put(traceUniqueId, manager);
61 return manager;
62 }
63
64 /**
65 * Provide the State trace set manager
66 *
67 * @return
68 */
69 public static StateExperimentManager getExperimentManager() {
70 initCheck();
71 return experimentManager;
72 }
73
74 /**
75 * Remove previously registered managers
76 *
77 * @param traceUniqueId
78 */
79 public static void removeManager(String traceUniqueId) {
80 initCheck();
81 if (traceUniqueId != null && instanceBook.containsKey(traceUniqueId)) {
82 instanceBook.remove(traceUniqueId);
83 }
84 }
85
86 /**
87 * initialization of factory
88 */
89 private static void initCheck() {
90 if (experimentManager == null) {
91 experimentManager = new StateExperimentManager();
92 instanceBook = experimentManager.getManagersByID();
93 }
94 }
95
96 /**
97 * Clea up resources
98 */
99 public static void dispose() {
100 if (experimentManager != null) {
101 experimentManager.dispose();
102 experimentManager = null;
103 instanceBook = null;
104 }
105 }
106 }
This page took 0.042795 seconds and 5 git commands to generate.