diff -r a151135b0cf9 -r aa2539c91954 tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/Trace.java --- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/Trace.java Wed Sep 29 17:45:35 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,273 +0,0 @@ -/* -* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -* Represents the mapping of a trace ID into actual trace string -* -*/ -package com.nokia.tracecompiler.model; - -import java.util.ArrayList; -import java.util.Iterator; - -/** - * Represents the mapping of a trace ID into actual trace string. When a trace - * is decoded, the trace ID found from the binary trace file is converted to the - * text stored in this trace. - * - */ -public class Trace extends TraceObject implements Iterable { - - /** - * The trace string - */ - private String trace = ""; //$NON-NLS-1$ - - /** - * List of TraceParameter objects. - */ - private ArrayList parameters = new ArrayList(); - - /** - * The trace group this trace belongs to - */ - private TraceGroup group; - - /** - * Creates a new trace and associates it with given TraceGroup - * - * @param group - * the trace group - */ - Trace(TraceGroup group) { - setModel(group.getModel()); - this.group = group; - group.addTrace(this); - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceObject#reset() - */ - @Override - void reset() { - super.reset(); - for (TraceParameter parameter : parameters) { - // Model listeners are not notified on reset, but if the - // parameter itself implements a delete notification interface, - // it must be called to do appropriate cleanup - notifyOnDelete(parameter); - parameter.reset(); - } - parameters.clear(); - } - - /** - * Sets the trace string. Generates propertyUpdated event to model listeners - * if the string changes - * - * @see TraceModelListener#propertyUpdated(TraceObject, int) - * @param trace - * the trace string - * @throws TraceCompilerException - */ - public void setTrace(String trace) throws TraceCompilerException { - if (trace == null) { - trace = ""; //$NON-NLS-1$ - } - if (!trace.equals(this.trace)) { - this.trace = trace; - getModel().notifyPropertyUpdated(this, TraceModelListener.TRACE); - } - } - - /** - * Returns the trace string. This never returns null - * - * @return the trace string - */ - public String getTrace() { - return trace; - } - - /** - * Returns the group to which this trace belongs - * - * @return trace group - */ - public TraceGroup getGroup() { - return group; - } - - /** - * Adds a new parameter to the end of parameter list. Generates objectAdded - * event to model listeners - * - * @see TraceModelListener#objectAdded(TraceObject, TraceObject) - * @param parameter - * the new parameter - */ - public void addParameter(TraceParameter parameter) { - parameters.add(parameter); - getModel().notifyObjectAdded(this, parameter); - } - - /** - * Inserts a new parameter to the given location. Generates objectAdded - * event to model listeners - * - * @see TraceModelListener#objectAdded(TraceObject, TraceObject) - * @param index - * the index for new parameter - * @param parameter - * the new parameter - */ - void insertParameter(int index, TraceParameter parameter) { - parameters.add(index, parameter); - getModel().notifyObjectAdded(this, parameter); - } - - /** - * Removes a parameter from this trace object. Generates a objectRemoved - * event to model listeners if the parameter is actually removed - * - * @see TraceModelListener#objectRemoved(TraceObject, TraceObject) - * @param parameter - * the parameter to be removed - * @throws TraceCompilerException - */ - public void removeParameter(TraceParameter parameter) throws TraceCompilerException { - if (parameters.remove(parameter)) { - getModel().notifyObjectRemoved(this, parameter); - parameter.reset(); - } - } - - /** - * Removes parameter at given index - * - * @param index - * the index of the parameter - * @throws TraceCompilerException - */ - public void removeParameterAt(int index) throws TraceCompilerException { - if (index >= 0 && index < parameters.size()) { - TraceParameter parameter = parameters.get(index); - parameters.remove(index); - getModel().notifyObjectRemoved(this, parameter); - parameter.reset(); - } - } - - /** - * Determines if this object has parameters. - * - * @return true if this object has parameters - */ - public boolean hasParameters() { - return !parameters.isEmpty(); - } - - /** - * Gets the number of parameters - * - * @return the number of parameters - */ - public int getParameterCount() { - return parameters.size(); - } - - /** - * Returns highest parameter ID + 1. Can be used to create an unique ID for - * a new parameter. - * - * @return the next parameter ID - */ - public int getNextParameterID() { - int max = 0; - for (TraceParameter parameter : parameters) { - int id = parameter.getID(); - if (id > max) { - max = id; - } - } - return max + 1; - } - - /** - * Gets the parameter at given index - * - * @param index - * the parameter index - * @return the parameter at the index - */ - public TraceParameter getParameter(int index) { - return parameters.get(index); - } - - /** - * Returns the parameters of this object - * - * @return iterator over the parameters - */ - public Iterator getParameters() { - return parameters.iterator(); - } - - /* - * (non-Javadoc) - * - * @see java.lang.Iterable#iterator() - */ - public Iterator iterator() { - return parameters.iterator(); - } - - /** - * Gets a parameter by ID - * - * @param id - * the parameter ID - * @return the parameter or null - */ - public TraceParameter findParameterByID(int id) { - TraceParameter retval = null; - for (TraceParameter parameter : parameters) { - if (parameter.getID() == id) { - retval = parameter; - break; - } - } - return retval; - } - - /** - * Gets a parameter by name - * - * @param name - * the name of a parameter - * @return the parameter or null - */ - public TraceParameter findParameterByName(String name) { - TraceParameter retval = null; - for (TraceParameter parameter : parameters) { - if (parameter.getName().equals(name)) { - retval = parameter; - break; - } - } - return retval; - } -}