public int compare(Object o1, Object o2) { MediaNode m1 = (MediaNode) o1; MediaNode m2 = (MediaNode) o2; boolean f1 = (m1 == null) ? false : m1.isFolder(); boolean f2 = (m2 == null) ? false : m2.isFolder(); if (f1 != f2) return f1 ? -1 : 1; sage.Show a1 = sage.PredefinedJEPFunction.getShowObj(m1.getDataObject()); sage.Show a2 = sage.PredefinedJEPFunction.getShowObj(m2.getDataObject()); String s1 = (a1 == null) ? "" : a1.getRated(); String s2 = (a2 == null) ? "" : a2.getRated(); return (ascending ? 1 : -1) * s1.compareToIgnoreCase(s2); }