class CategoryNode extends AbstractNode {

    private final Category category;

    public CategoryNode(FiltersExplorer.Utils utils, Category category) {
        super(
            utils.isLeaf(category) ? Children.LEAF : Children.create(new CategoryChildFactory(utils, category), true));
        this.category = category;
        if (category != null) {
            setName(category.getName());
        } else {
            setName(NbBundle.getMessage(CategoryNode.class, "RootNode.name"));
        }
    }

    @Override
    public Image getIcon(int type) {<FILL_FUNCTION_BODY>}

    @Override
    public Image getOpenedIcon(int type) {
        return getIcon(type);
    }

    @Override
    public PasteType getDropType(final Transferable t, int action, int index) {
        if (category == null || !category.equals(FiltersExplorer.QUERIES)) {
            return null;
        }
        final Node dropNode = NodeTransfer.node(t, DnDConstants.ACTION_COPY_OR_MOVE);
        if (dropNode != null && dropNode instanceof QueryNode) {
            return new PasteType() {

                @Override
                public Transferable paste() throws IOException {
                    QueryNode queryNode = (QueryNode) dropNode;
                    FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
                    FilterLibrary library = filterController.getModel().getLibrary();
                    library.saveQuery(queryNode.getQuery());
                    return null;
                }
            };

        }
        return null;
    }

    public Category getCategory() {
        return category;
    }

    @Override
    public Action[] getActions(boolean context) {
        return new Action[0];
    }
}

        try {
            if (category.getIcon() != null) {
                return ImageUtilities.icon2Image(category.getIcon());
            }
        } catch (Exception e) {
        }
        if (category == null) {
            return ImageUtilities.loadImage("DesktopFilters/library.png", false);
        } else {
            return ImageUtilities.loadImage("DesktopFilters/folder.png", false);
        }
    
<no_super_class>