class CategoryChildFactory extends ChildFactory<Object> {

    private final Category category;
    private final FiltersExplorer.Utils utils;

    public CategoryChildFactory(FiltersExplorer.Utils utils, Category category) {
        this.utils = utils;
        this.category = category;
    }

    @Override
    protected boolean createKeys(List<Object> toPopulate) {
        Object[] children = utils.getChildren(category);
        Arrays.sort(children, new Comparator() {

            @Override
            public int compare(Object o1, Object o2) {<FILL_FUNCTION_BODY>}
        });
        toPopulate.addAll(Arrays.asList(children));
        return true;
    }

    @Override
    protected Node[] createNodesForKey(Object key) {
        if (key instanceof Category) {
            return new Node[] {new CategoryNode(utils, (Category) key)};
        } else if (key instanceof FilterBuilder) {
            return new Node[] {new FilterBuilderNode((FilterBuilder) key)};
        } else {
            return new Node[] {new SavedQueryNode((Query) key)};
        }
    }
}

                String s1;
                String s2;
                if (o1 == FiltersExplorer.QUERIES || o2 == FiltersExplorer.QUERIES) {
                    return o1 == FiltersExplorer.QUERIES ? 1 : -1;
                } else if (o1 instanceof Category && o2 instanceof Category) {
                    s1 = ((Category) o1).getName();
                    s2 = ((Category) o2).getName();
                    return s1.compareTo(s2);
                } else if (o1 instanceof FilterBuilder && o2 instanceof FilterBuilder) {
                    s1 = ((FilterBuilder) o1).getName();
                    s2 = ((FilterBuilder) o2).getName();
                    return s1.compareTo(s2);
                } else if (o1 instanceof Query && o2 instanceof Query) {
                    s1 = ((Query) o1).getName();
                    s2 = ((Query) o2).getName();
                    return s1.compareTo(s2);
                } else if (o1 instanceof Category) {
                    return -1;
                }
                return 1;
            
<no_super_class>