childNodes[row1]).getValueObject();
childNodes[row2]).getValueObject();
    private int compare(Object[] childNodes, int row1, int row2) {        Object o1 = null;        Object o2 = null;        if (sort == SORT_FILENAME) {            Search.SearchEntry entry1 = (Search.SearchEntry) ( (SearchNode)                childNodes[row1]).getValueObject();            Search.SearchEntry.FileName[] filenames = entry1.getFileNames();            int haeufigkeit = 0;            String dateiname = "";            for (int i = 0; i < filenames.length; i++) {                if (filenames[i].getHaeufigkeit() > haeufigkeit) {                    haeufigkeit = filenames[i].getHaeufigkeit();                    dateiname = filenames[i].getDateiName();                }            }            o1 = dateiname;            Search.SearchEntry entry2 = (Search.SearchEntry) ( (SearchNode)                childNodes[row2]).getValueObject();            filenames = entry2.getFileNames();            haeufigkeit = 0;            dateiname = "";            for (int i = 0; i < filenames.length; i++) {                if (filenames[i].getHaeufigkeit() > haeufigkeit) {                    haeufigkeit = filenames[i].getHaeufigkeit();                    dateiname = filenames[i].getDateiName();                }            }            o2 = dateiname;        }        else if (sort == SORT_GROESSE) {            Search.SearchEntry entry1 = (Search.SearchEntry) ( (SearchNode)                childNodes[row1]).getValueObject();            o1 = new Long(entry1.getGroesse());            Search.SearchEntry entry2 = (Search.SearchEntry) ( (SearchNode)                childNodes[row2]).getValueObject();            o2 = new Long(entry2.getGroesse());        }        else if (sort == SORT_ANZAHL) {            Search.SearchEntry entry1 = (Search.SearchEntry) ( (SearchNode)                childNodes[row1]).getValueObject();            Search.SearchEntry.FileName[] filenames = entry1.getFileNames();            int haeufigkeit = 0;            for (int i = 0; i < filenames.length; i++) {                haeufigkeit += filenames[i].getHaeufigkeit();            }            o1 = new Integer(haeufigkeit);            Search.SearchEntry entry2 = (Search.SearchEntry) ( (SearchNode)                childNodes[row1]).getValueObject();            filenames = entry2.getFileNames();            haeufigkeit = 0;            for (int i = 0; i < filenames.length; i++) {                haeufigkeit += filenames[i].getHaeufigkeit();            }            o2 = new Integer(haeufigkeit);        }        if (o1 == null && o2 == null) {            return 0;        }        else if (o1 == null) {            return -1;        }        else if (o2 == null) {            return 1;        }        else {            if (o1.getClass().getSuperclass() == Number.class) {                return compare( (Number) o1, (Number) o2);            }            else if (o1.getClass() == Boolean.class) {                return compare( (Boolean) o1, (Boolean) o2);            }            else {                return ( (String) o1).compareToIgnoreCase( (String) o2);            }        }    }