diff -r ca8a1b6995f6 -r 52e343bb8f80 tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/TraceConstantTable.java --- a/tracefw/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/model/TraceConstantTable.java Tue Aug 31 16:45:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +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: -* -* Integer-to-string mapping table for parameters -* -*/ -package com.nokia.tracecompiler.model; - -import java.util.ArrayList; -import java.util.Iterator; - -/** - * Integer-to-string mapping table for parameters - * - */ -public class TraceConstantTable extends TraceObject implements - Iterable { - - /** - * Table entries - */ - private ArrayList entries = new ArrayList(); - - /** - * Table type - */ - private String type = TraceParameter.UDEC32; - - /** - * Parameter reference count - */ - private ArrayList parameterReferences = new ArrayList(); - - /** - * Creates a new constant table - * - * @param model - * the trace model - */ - TraceConstantTable(TraceModel model) { - setModel(model); - model.addConstantTable(this); - } - - /** - * Gets the type - * - * @return the type - */ - public String getType() { - return type; - } - - /** - * Sets the constant type - * - * @param type - * the parameter type - */ - public void setType(String type) { - this.type = type; - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceObject#setName(java.lang.String) - */ - @Override - public void setName(String name) throws TraceCompilerException { - super.setName(name); - // Note: Currently name changes are disabled when a table is referenced - // by parameters. If enabled at some point, a notification about this - // needs to be sent to the parameters - } - - /** - * Adds a constant table entry to this table. This is called from the - * constant table entry constructor, to this is not public. Generates a - * objectAdded event to model listeners - * - * @see TraceModelListener#objectAdded(TraceObject, TraceObject) - * @param entry - * the table entry - */ - void addEntry(TraceConstantTableEntry entry) { - entries.add(entry); - getModel().notifyObjectAdded(this, entry); - } - - /** - * Removes the given constant table entry. Creates a objectRemoved event to - * the model listeners - * - * @see TraceModelListener#objectRemoved(TraceObject, TraceObject) - * @param entry - * the entry to be removed - * @throws TraceCompilerException - */ - public void removeEntry(TraceConstantTableEntry entry) throws TraceCompilerException { - if (entries.remove(entry)) { - getModel().notifyObjectRemoved(this, entry); - entry.reset(); - } - } - - /** - * Gets the entry which has given ID - * - * @param id - * the id - * @return the entry or null - */ - public TraceConstantTableEntry findEntryByID(int id) { - TraceConstantTableEntry retval = null; - for (TraceConstantTableEntry entry : entries) { - if (entry.getID() == id) { - retval = entry; - break; - } - } - return retval; - } - - /** - * Gets the entry which has the given name - * - * @param name - * the name - * @return the entry or null - */ - public TraceConstantTableEntry findEntryByName(String name) { - TraceConstantTableEntry retval = null; - for (TraceConstantTableEntry entry : entries) { - if (entry.getName().equals(name)) { - retval = entry; - break; - } - } - return retval; - } - - /** - * Gets the constant table entries - * - * @return the entries iterator - */ - public Iterator getEntries() { - return entries.iterator(); - } - - /* - * (non-Javadoc) - * - * @see java.lang.Iterable#iterator() - */ - public Iterator iterator() { - return entries.iterator(); - } - - /** - * Determines if there are any entries in this table - * - * @return true if there are entries - */ - public boolean hasEntries() { - return !entries.isEmpty(); - } - - /** - * Adds a parameter reference - * - * @param parameter - * the parameter to be added - */ - void addParameterReference(TraceParameter parameter) { - parameterReferences.add(parameter); - } - - /** - * Removes a parameter reference - * - * @param parameter - * the reference to be removed - */ - void removeParameterReference(TraceParameter parameter) { - parameterReferences.remove(parameter); - } - - /** - * Checks if there are parameter references - * - * @return true if this table is referenced from parameters - */ - public boolean hasParameterReferences() { - return !parameterReferences.isEmpty(); - } - - /** - * Gets the parameter references - * - * @return the iterator of the references - */ - public Iterator getParameterReferences() { - return parameterReferences.iterator(); - } - - /** - * Gets the largest constant ID + 1 - * - * @return the ID - */ - public int getNextEntryID() { - int max = 0; - for (TraceConstantTableEntry entry : entries) { - int id = entry.getID(); - if (id > max) { - max = id; - } - } - return max + 1; - } - - /* - * (non-Javadoc) - * - * @see com.nokia.tracecompiler.model.TraceObject#reset() - */ - @Override - void reset() { - for (TraceConstantTableEntry entry : entries) { - // Model listeners are not notified on reset, but if the - // entry itself implements a delete notification interface, - // it must be called to do appropriate cleanup - notifyOnDelete(entry); - entry.reset(); - } - super.reset(); - } - -}