Skip to content

Instantly share code, notes, and snippets.

@jkeesh
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jkeesh/0b39f6a5ecfd3f65cecb to your computer and use it in GitHub Desktop.
Save jkeesh/0b39f6a5ecfd3f65cecb to your computer and use it in GitHub Desktop.
import java.util.*;
import java.lang.*;
public class ObjectTracker{
// Code for grader
private static HashMap<String, ArrayList<Object>> objTracker = new HashMap<String, ArrayList<Object>>();
// create instancetracker
private static final int CALLER_INDEX = 3;
public static void printObjectTracker()
{
for(String className: objTracker.keySet())
{
System.out.println("Objects for " + className);
ArrayList<Object> objs = objTracker.get(className);
for(Object o: objs)
{
System.out.println("\t(" + o.getClass() + ") " + o);
}
}
}
public static ArrayList<Object> getObjectsForClass(String className)
{
return objTracker.get(className);
}
public static void addObjectForClass(String className, Object o)
{
ArrayList<Object> list = objTracker.get(className);
if(list == null)
{
list = new ArrayList<Object>();
}
list.add(o);
objTracker.put(className, list);
}
public ObjectTracker()
{
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
StackTraceElement e = stackTraceElements[CALLER_INDEX];
String className = e.getClassName();
System.out.println(className);
addObjectForClass(className, this);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment