/**
  * 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 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;
 }
 /**
  * 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;
 }
 /*
  * (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();
 }
 /**
  * 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();
   }
 }