1 package org.sourceforge.jemm.client.events; 2 3 /** 4 * A Contextual tracker of thread execution. 5 * 6 * @see EntityContext 7 * @see LockContext 8 * @see MethodContext 9 * @author Paul 10 * 11 */ 12 public interface Context { 13 /** 14 * Adds to the context a thread. 15 * 16 * If the same thread is entered more than once then an equal 17 * number of removes is required to actually remove it. 18 * 19 * @param thread The thread that is 20 */ 21 void add(Thread thread); 22 23 /** 24 * Adds to the context the current thread. 25 * 26 * @see Context#add(Thread) 27 */ 28 void add(); 29 30 /** 31 * Returns true if the thread has previously been added to the context 32 * otherwise false. 33 * 34 * @param t The thread to look for 35 * @return True if thread has been added, false otherwise 36 */ 37 boolean has(Thread t); 38 39 /** 40 * Calls has with the Thread.currentThread(). 41 * 42 * @See #has(Thread) 43 * @return True if the current thread thread has been added, false otherwise 44 */ 45 boolean has(); 46 47 /** 48 * Removes the thread from the context. 49 * 50 * Only removes the thread if the number of calls to remove 51 * is the same as the number of times the thread was added. 52 * 53 * @param t The thread to remove 54 */ 55 void remove(Thread t); 56 57 /** 58 * Removes the current thread 59 * 60 * @see #remove(Thread) 61 */ 62 void remove(); 63 }