/*******************************************************************************
- * Copyright (c) 2012 Ericsson
- *
+ * Copyright (c) 2012, 2013 Ericsson
+ *
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v1.0 which
* accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
* Francois Chouinard - Initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.tmf.core.event;
+import java.util.Collection;
+
/**
- * <b><u>ITmfEventType</u></b>
+ * The generic event type in TMF. It contains a reference to the full field structure
+ * for that event type.
* <p>
+ * Types are unique within their context space.
+ *
+ * @version 1.0
+ * @author Francois Chouinard
+ *
+ * @see ITmfEvent
+ * @see ITmfEventField
*/
-public interface ITmfEventType extends Cloneable {
+public interface ITmfEventType {
- /**
- * @return the event type context
- */
- public String getContext();
+ // ------------------------------------------------------------------------
+ // Constants
+ // ------------------------------------------------------------------------
/**
- * @return the event type ID
+ * The default event type content
*/
- public String getId();
+ public static final String DEFAULT_CONTEXT_ID = "TmfContext"; //$NON-NLS-1$
/**
- * @return the number of fields
+ * The default event type name
*/
- public int getNbFields();
+ public static final String DEFAULT_TYPE_ID = "TmfType"; //$NON-NLS-1$
+
+ // ------------------------------------------------------------------------
+ // Getters
+ // ------------------------------------------------------------------------
/**
- * @return the event field labels
+ * @return the event type context
*/
- public String[] getFieldLabels();
+ String getContext();
/**
- * @param index the event field index
- * @return the corresponding event field label
+ * @return the event type ID
*/
- public String getFieldLabel(int index) throws TmfNoSuchFieldException;
+ String getName();
/**
- * @param fieldId the event field ID
- * @return the corresponding event field index
+ * @return the event type root field
*/
- public int getFieldIndex(String fieldId) throws TmfNoSuchFieldException;
+ ITmfEventField getRootField();
/**
- * @return a clone of the event content
+ * @return the event field names (labels)
+ * @since 3.0
*/
- public ITmfEventType clone();
-
+ Collection<String> getFieldNames();
}