class NameSimilarityEdgeFilter implements EdgeFilter {

    @Override
    public final boolean accept(EdgeIteratorState iter) {
        if (!edgeFilter.accept(iter)) {
            return false;
        }

        if (pointHint.isEmpty()) {
            return true;
        }

        String name = iter.getName();
        if (name == null || name.isEmpty()) {
            return false;
        }

        name = removeRelation(name);
        String edgeName = prepareName(name);
        return isJaroWinklerSimilar(pointHint, edgeName);
    }

    public  NameSimilarityEdgeFilter(EdgeFilter edgeFilter, String pointHint);
    public  NameSimilarityEdgeFilter(EdgeFilter edgeFilter, String pointHint, Map<String, String> rewriteMap);

}