1 /*******************************************************************************
2 * Copyright (c) 2009 Ericsson
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
10 * Alvaro Sanchez-Leon (alvsan09@gmail.com) - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.lttng
.state
.experiment
;
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
;
26 public class StateManagerFactory
{
27 // ========================================================================
29 // =======================================================================
31 private static StateExperimentManager experimentManager
= null;
32 private static Map
<String
, StateManager
> instanceBook
= null;
34 // ========================================================================
36 // =======================================================================
39 * Provide a stateManager instance per trace
43 public static StateManager
getManager(String traceUniqueId
) {
45 if (traceUniqueId
== null) {
51 if (instanceBook
.containsKey(traceUniqueId
)) {
52 return instanceBook
.get(traceUniqueId
);
55 LttngTraceState traceModel
= StateModelFactory
.getStateEntryInstance();
56 StateStacksHandler stateInputHandler
= new StateStacksHandler(
58 StateManager manager
= new StateManager(stateInputHandler
);
60 instanceBook
.put(traceUniqueId
, manager
);
65 * Provide the State trace set manager
69 public static StateExperimentManager
getExperimentManager() {
71 return experimentManager
;
75 * Remove previously registered managers
77 * @param traceUniqueId
79 public static void removeManager(String traceUniqueId
) {
81 if (traceUniqueId
!= null && instanceBook
.containsKey(traceUniqueId
)) {
82 instanceBook
.remove(traceUniqueId
);
87 * initialization of factory
89 private static void initCheck() {
90 if (experimentManager
== null) {
91 experimentManager
= new StateExperimentManager();
92 instanceBook
= experimentManager
.getManagersByID();
99 public static void dispose() {
100 if (experimentManager
!= null) {
101 experimentManager
.dispose();
102 experimentManager
= null;