package net.djpowell.liverepl.discovery; import java.lang.ref.WeakReference; public class ClassLoaderInfo implements Comparable { public final String id; private final WeakReference<ClassLoader> classLoader; public final String info; public ClassLoaderInfo(String id, ClassLoader classLoader, String info) { this.id = id; this.classLoader = new WeakReference<ClassLoader>(classLoader); this.info = info; } public ClassLoader getClassLoader() { return classLoader.get(); } public String getClassLoaderName() { ClassLoader cl = classLoader.get(); if (cl == null) { return "<null>"; } else { return cl.getClass().getSimpleName(); } } public static final String header = String.format("#%-3s %-20s : %s", "Id", "ClassLoader", "Info"); public String toString() { return String.format("#%-3s %-20s : %s", id, getClassLoaderName(), info); } public int compareTo(Object o) { ClassLoaderInfo cli = (ClassLoaderInfo)o; return id.compareTo(cli.id); } }