tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/TraceGroup.java
changeset 56 aa2539c91954
parent 54 a151135b0cf9
child 60 e54443a6878c
child 62 1c2bb2fc7c87
--- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/TraceGroup.java	Wed Sep 29 17:45:35 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +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 a logical collection of traces somehow related to each other
-*
-*/
-package com.nokia.tracecompiler.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-
-/**
- * Represents a logical collection of traces somehow related to each other. Each
- * trace group specifies a prefix that is attached to all trace lines made
- * within that group.
- * 
- */
-public class TraceGroup extends TraceObject implements Iterable<Trace> {
-
-	/**
-	 * List of traces, sorted by ID
-	 */
-	private ArrayList<Trace> tracesByID = new ArrayList<Trace>();
-
-	/**
-	 * List of traces, sorted by name
-	 */
-	private ArrayList<Trace> tracesByName = new ArrayList<Trace>();
-
-	/**
-	 * Creates a new trace group and associates it with given trace model.
-	 * 
-	 * @param model
-	 *            the trace model
-	 */
-	TraceGroup(TraceModel model) {
-		setModel(model);
-		model.addGroup(this);
-	}
-
-	/**
-	 * Adds a trace to this group. Creates objectAdded event to model listeners
-	 * 
-	 * @see TraceModelListener#objectAdded(TraceObject, TraceObject)
-	 * @param trace
-	 *            the trace to be added
-	 */
-	void addTrace(Trace trace) {
-		// Sorted when ID is set to trace
-		tracesByID.add(trace);
-		// Sorted when name is set to trace
-		tracesByName.add(trace);
-		getModel().notifyObjectAdded(this, trace);
-	}
-
-	/**
-	 * Removes a trace from this group. Creates objectRemoved event to model
-	 * listeners
-	 * 
-	 * @see TraceModelListener#objectRemoved(TraceObject, TraceObject)
-	 * @param trace
-	 *            the trace to be removed
-	 * @throws TraceCompilerException 
-	 */
-	public void removeTrace(Trace trace) throws TraceCompilerException {
-		int index = Collections.binarySearch(tracesByID, trace,
-				TraceObjectUtils.traceObjectIDComparator);
-		if (index >= 0) {
-			tracesByID.remove(index);
-			index = Collections.binarySearch(tracesByName, trace,
-					TraceObjectUtils.traceObjectNameComparator);
-			tracesByName.remove(index);
-			getModel().notifyObjectRemoved(this, trace);
-			trace.reset();
-		}
-	}
-
-	/**
-	 * Determines if this group has traces.
-	 * 
-	 * @return true if the group contains traces
-	 */
-	public boolean hasTraces() {
-		return !tracesByID.isEmpty();
-	}
-
-	/**
-	 * Gets the number of traces in this group.
-	 * 
-	 * @return the number of traces
-	 */
-	public int getTraceCount() {
-		return tracesByID.size();
-	}
-
-	/**
-	 * Returns an iterator over the traces within this group.
-	 * 
-	 * @return the iterator
-	 */
-	public Iterator<Trace> getTraces() {
-		return tracesByID.iterator();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Iterable#iterator()
-	 */
-	public Iterator<Trace> iterator() {
-		return tracesByID.iterator();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see com.nokia.tracecompiler.model.TraceObject#reset()
-	 */
-	@Override
-	void reset() {
-		// Reset removes constant table references
-		for (Trace trace : tracesByID) {
-			// Model listeners are not notified on reset, but if the
-			// trace itself implements a delete notification interface,
-			// it must be called to do appropriate cleanup
-			notifyOnDelete(trace);
-			trace.reset();
-		}
-		tracesByID.clear();
-		tracesByName.clear();
-		super.reset();
-	}
-
-	/**
-	 * Returns highest trace ID + 1. Can be used to create an unique ID for a
-	 * new trace.
-	 * 
-	 * @return the next trace ID
-	 */
-	public int getNextTraceID() {
-		int ret;
-		if (tracesByID.size() > 0) {
-			ret = tracesByID.get(tracesByID.size() - 1).getID() + 1;
-		} else {
-			ret = 1;
-		}
-		return ret;
-	}
-
-	/**
-	 * Gets the trace which has given ID
-	 * 
-	 * @param id
-	 *            the trace ID
-	 * @return the trace or null
-	 */
-	public Trace findTraceByID(int id) {
-		int index = Collections.binarySearch(tracesByID, id,
-				TraceObjectUtils.traceToIDComparator);
-		Trace retval;
-		if (index >= 0) {
-			retval = tracesByID.get(index);
-		} else {
-			retval = null;
-		}
-		return retval;
-	}
-
-	/**
-	 * Called by the model when a trace property is updated
-	 * 
-	 * @param source
-	 *            the trace that was changed
-	 * @param property
-	 *            the property that was changed
-	 */
-	void tracePropertyUpdated(TraceObject source, int property) {
-		if (property == TraceModelListener.NAME) {
-			Collections.sort(tracesByName,
-					TraceObjectUtils.traceObjectNameComparator);
-		} else if (property == TraceModelListener.ID) {
-			traceIDsUpdated();
-		}
-	}
-
-	/**
-	 * Sorts the trace array based on new ID configuration
-	 */
-	void traceIDsUpdated() {
-		Collections.sort(tracesByID, TraceObjectUtils.traceObjectIDComparator);
-	}
-}