class FileExtraZipper {

    /**
     * Merge the specified lists by looking up a possible entry in
     * {@code extras} for every element in {@code entries}.
     *
     * @param entries list of {@link DirectoryEntry} instances
     * @param extras  some OpenGrok-analyzed extra metadata
     */
    public void zip(List<DirectoryEntry> entries, List<NullableNumLinesLOC> extras) {<FILL_FUNCTION_BODY>}

    private NullableNumLinesLOC findExtra(Map<String, NullableNumLinesLOC> byName, File fileobj) {
        String key = fileobj.getName();
        return byName.get(key);
    }

    private Map<String, NullableNumLinesLOC> indexExtraByName(List<NullableNumLinesLOC> extras) {
        Map<String, NullableNumLinesLOC> byPath = new HashMap<>();
        for (NullableNumLinesLOC extra : extras) {
            if (extra.getPath() != null) {
                File f = new File(extra.getPath());
                String filename = f.getName();
                byPath.put(filename, extra);
            }
        }
        return byPath;
    }
}


        if (extras == null) {
            return;
        }

        Map<String, NullableNumLinesLOC> byName = indexExtraByName(extras);

        for (DirectoryEntry entry : entries) {
            NullableNumLinesLOC extra = findExtra(byName, entry.getFile());
            entry.setExtra(extra);
        }
    
<no_super_class>