tmf/lttng: Remove unneeded (non-Javadoc) comments
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / event / TmfEventTypeManager.java
CommitLineData
d06468c7 1/*******************************************************************************
11252342
AM
2 * Copyright (c) 2012, 2013 Ericsson
3 *
d06468c7
FC
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
11252342 8 *
d06468c7
FC
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
12
13package org.eclipse.linuxtools.tmf.core.event;
14
15import java.util.HashMap;
b9e37ffd 16import java.util.Map;
d06468c7
FC
17
18/**
f7703ed6
FC
19 * A central repository for the available event types. Types are managed by
20 * context space.
11252342 21 *
b9e37ffd
FC
22 * @version 1.0
23 * @author Francois Chouinard
11252342 24 *
b9e37ffd 25 * @see ITmfEventType
d06468c7
FC
26 */
27public final class TmfEventTypeManager {
28
29 // ------------------------------------------------------------------------
30 // Attributes
31 // ------------------------------------------------------------------------
32
33 // The event type manager singleton
34 private static TmfEventTypeManager fEventTypeManager = null;
35
36 // The available types, per context
b9e37ffd 37 private final Map<String, HashMap<String, ITmfEventType>> fEventTypes;
d06468c7
FC
38
39 // ------------------------------------------------------------------------
40 // Constructors
41 // ------------------------------------------------------------------------
42
d7dbf09a
FC
43 /**
44 * The singleton constructor
45 */
d06468c7
FC
46 private TmfEventTypeManager() {
47 fEventTypes = new HashMap<String, HashMap<String, ITmfEventType>>();
48 }
49
d7dbf09a
FC
50 /**
51 * @return the TmfEventTypeManager singleton
52 */
d06468c7 53 public static synchronized TmfEventTypeManager getInstance() {
b9e37ffd 54 if (fEventTypeManager == null) {
d06468c7 55 fEventTypeManager = new TmfEventTypeManager();
b9e37ffd 56 }
d06468c7
FC
57 return fEventTypeManager;
58 }
59
60 // ------------------------------------------------------------------------
61 // Operations
62 // ------------------------------------------------------------------------
63
64 /**
65 * Add a context:type pair to the available types
11252342 66 *
d06468c7
FC
67 * @param context the target context
68 * @param type the type to add
69 */
085d898f 70 public synchronized void add(final String context, final ITmfEventType type) {
d06468c7 71 HashMap<String, ITmfEventType> types = fEventTypes.get(context);
b9e37ffd 72 if (types == null) {
d06468c7 73 types = new HashMap<String, ITmfEventType>();
b9e37ffd 74 }
4c564a2d 75 types.put(type.getName(), type);
d06468c7
FC
76 fEventTypes.put(context, types);
77 }
78
79 /**
80 * Return the list of currently defined contexts
11252342 81 *
d06468c7
FC
82 * @return the list of contexts
83 */
84 public synchronized String[] getContexts() {
85 return fEventTypes.keySet().toArray(new String[fEventTypes.size()]);
86 }
87
88 /**
89 * Return the list of types defined for a given context
11252342 90 *
d06468c7
FC
91 * @param context the context to look into
92 * @return the list of types defined for that context
93 */
085d898f
FC
94 public synchronized ITmfEventType[] getTypes(final String context) {
95 final HashMap<String, ITmfEventType> types = fEventTypes.get(context);
b9e37ffd 96 if (types != null) {
d06468c7 97 return types.values().toArray(new ITmfEventType[types.size()]);
b9e37ffd 98 }
8b63ffb9 99 return new ITmfEventType[0];
d06468c7
FC
100 }
101
102 /**
103 * Return an event type
11252342 104 *
d06468c7
FC
105 * @param context the context to look into
106 * @param typeId the type ID
107 * @return the corresponding type
108 */
085d898f
FC
109 public synchronized ITmfEventType getType(final String context, final String typeId) {
110 final HashMap<String, ITmfEventType> types = fEventTypes.get(context);
b9e37ffd 111 if (types != null) {
d06468c7 112 return types.get(typeId);
b9e37ffd 113 }
d06468c7
FC
114 return null;
115 }
116
117 /**
118 * Remove the types associated to a context
11252342 119 *
d06468c7
FC
120 * @param context the context to remove
121 */
085d898f 122 public synchronized void clear(final String context) {
d06468c7
FC
123 fEventTypes.remove(context);
124 }
125
126 /**
127 * Remove all contexts and types
128 */
129 public synchronized void clear() {
130 fEventTypes.clear();
131 }
132
133 // ------------------------------------------------------------------------
134 // Object
135 // ------------------------------------------------------------------------
136
137 @Override
138 @SuppressWarnings("nls")
139 public String toString() {
140 return "TmfEventTypeManager [fEventTypes=" + fEventTypes + "]";
141 }
142
143}
This page took 0.0540119999999999 seconds and 5 git commands to generate.