class EdgeSearchCategoryImpl extends SearchCategoryImpl {

        @Override
        public String getId() {
            return EDGE_ID;
        }
    }

    public static SearchCategory NODES() {
        return Lookup.getDefault().lookupAll(SearchCategory.class).stream()
            .filter(c -> c.getId().equals(NODE_ID)).findFirst().orElse(null);
    }

    public static SearchCategory EDGES() {
        return Lookup.getDefault().lookupAll(SearchCategory.class).stream()
            .filter(c -> c.getId().equals(EDGE_ID)).findFirst().orElse(null);
    }

    @Override
    public abstract String getId();

    @Override
    public String getDisplayName() {
        return NbBundle.getMessage(SearchCategoryImpl.class, "Category." + getId() + ".displayName");
    }

    @Override
    public String toString() {
        return getDisplayName();
    }

    @Override
    public boolean equals(Object o) {<FILL_FUNCTION_BODY>

        if (this == o) {
            return true;
        }
        if (!(o instanceof SearchCategoryImpl)) {
            return false;
        }

        SearchCategory that = (SearchCategory) o;

        return getId().equals(that.getId());
    
<no_super_class>