class NotOperatorEdge implements Operator {

        @Override
        public int getInputCount() {
            return 1;
        }

        @Override
        public String getName() {
            return NbBundle.getMessage(NOTBuilderEdge.class, "NOTBuilderEdge.name");
        }

        @Override
        public FilterProperty[] getProperties() {
            return null;
        }

        @Override
        public Graph filter(Subgraph[] graphs) {<FILL_FUNCTION_BODY>}

        @Override
        public Graph filter(Graph graph, Filter[] filters) {
            if (filters.length > 1) {
                throw new IllegalArgumentException("Not Filter accepts a single filter in parameter");
            }

            Filter filter = filters[0];
            if (filter instanceof EdgeFilter && ((EdgeFilter) filter).init(graph)) {
                EdgeFilter edgeFilter = (EdgeFilter) filter;
                List<Edge> edgesToRemove = new ArrayList<>();
                for (Edge e : graph.getEdges()) {
                    if (edgeFilter.evaluate(graph, e)) {
                        edgesToRemove.add(e);
                    }
                }
                graph.removeAllEdges(edgesToRemove);
                edgeFilter.finish();
            }

            return graph;
        }
    }

            if (graphs.length > 1) {
                throw new IllegalArgumentException("Not Filter accepts a single graph in parameter");
            }

            Graph graph = graphs[0];
            Graph mainGraph = graph.getView().getGraphModel().getGraph();
            for (Edge e : mainGraph.getEdges()) {
                Node source = e.getSource();
                Node target = e.getTarget();
                if (graph.contains(source) && graph.contains(target)) {
                    Edge edgeInGraph = graph.getEdge(source, target, e.getType());
                    if (edgeInGraph == null) {
                        //The edge is not in graph
                        graph.addEdge(e);
                    } else {
                        //The edge is in the graph
                        graph.removeEdge(edgeInGraph);
                    }
                }
            }
            return graph;
        
<no_super_class>