class AttributeRangeFilter<K extends Element> extends AbstractAttributeFilter<K>
        implements RangeFilter {

        private Range range;

        public AttributeRangeFilter(Column column) {
            super(NbBundle.getMessage(AttributeRangeBuilder.class, "AttributeRangeBuilder.name"),
                column);

            //Add property
            addProperty(Range.class, "range");
        }

        @Override
        public boolean init(Graph graph) {
            if (AttributeUtils.isNodeColumn(column)) {
                return graph.getNodeCount() != 0;
            } else if (AttributeUtils.isEdgeColumn(column)) {
                return graph.getEdgeCount() != 0;
            }
            return true;
        }

        @Override
        public boolean evaluate(Graph graph, Element element) {
            Object val = element.getAttribute(column, graph.getView());
            if (val != null) {
                return range.isInRange((Number) val);
            }
            return false;

        }

        @Override
        public void finish() {
        }

        @Override
        public Number[] getValues(Graph graph) {<FILL_FUNCTION_BODY>}

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

        public Range getRange() {
            return range;
        }

        public void setRange(Range range) {
            this.range = range;
        }

        public static class Node extends AttributeRangeFilter<org.gephi.graph.api.Node> implements NodeFilter {

            public Node(Column column) {
                super(column);
            }
        }

        public static class Edge extends AttributeRangeFilter<org.gephi.graph.api.Edge> implements EdgeFilter {

            public Edge(Column column) {
                super(column);
            }
        }
    }

            List<Number> vals = new ArrayList<>();
            if (AttributeUtils.isNodeColumn(column)) {
                for (Element n : graph.getNodes()) {
                    Object val = n.getAttribute(column, graph.getView());
                    if (val != null) {
                        vals.add((Number) val);
                    }
                }
            } else {
                for (Element e : graph.getEdges()) {
                    Object val = e.getAttribute(column, graph.getView());
                    if (val != null) {
                        vals.add((Number) val);
                    }
                }
            }
            return vals.toArray(new Number[0]);
        
<no_super_class>