class RootNode extends AbstractNode {

    public RootNode(Children children) {
        super(children);
        setName(NbBundle.getMessage(RootNode.class, "RootNode.name"));
        setIconBaseWithExtension("DesktopFilters/queries.png");
    }

    @Override
    public PasteType getDropType(Transferable t, int action, int index) {<FILL_FUNCTION_BODY>}

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

        final Node dropNode = NodeTransfer.node(t, DnDConstants.ACTION_COPY_OR_MOVE);

        if (t.isDataFlavorSupported(FilterBuilderNode.DATA_FLAVOR)) {
            try {
                final FilterBuilder fb = (FilterBuilder) t.getTransferData(FilterBuilderNode.DATA_FLAVOR);
                return new PasteType() {

                    @Override
                    public Transferable paste() throws IOException {
                        FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
                        Query f = filterController.createQuery(fb);
                        filterController.add(f);
                        return null;
                    }
                };
            } catch (Exception ex) {
                Exceptions.printStackTrace(ex);
            }
        } else if (dropNode != null && dropNode instanceof SavedQueryNode) {
            return new PasteType() {

                @Override
                public Transferable paste() throws IOException {
                    SavedQueryNode node = (SavedQueryNode) dropNode;
                    FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
                    filterController.add(node.getQuery());
                    return null;
                }
            };
        } else if (dropNode != null && dropNode instanceof QueryNode &&
            ((QueryNode) dropNode).getQuery().getParent() != null) {
            return new PasteType() {

                @Override
                public Transferable paste() throws IOException {
                    QueryNode queryNode = (QueryNode) dropNode;
                    FilterController filterController = Lookup.getDefault().lookup(FilterController.class);
                    filterController.removeSubQuery(queryNode.getQuery(), queryNode.getQuery().getParent());
                    filterController.add(queryNode.getQuery());
                    return null;
                }
            };
        }
        return null;
    
<no_super_class>