private static String getAttributionIfValidFor(final Uri filePath) {

        if (OFFLINE_MAP_ATTRIBUTIONS.containsKey(filePath)) {
            return OFFLINE_MAP_ATTRIBUTIONS.get(filePath);
        }
        final InputStream mapStream = createMapFileInputStream(filePath);
        if (mapStream == null) {
            //do NOT put this in cache, might be a temporary access problem
            return null;
        }

        OFFLINE_MAP_ATTRIBUTIONS.put(filePath, readAttributionFromMapFileIfValid(String.valueOf(filePath), mapStream));
        return OFFLINE_MAP_ATTRIBUTIONS.get(filePath);
    }
checks whether the given Uri is a valid map file.
Thie methos uses cached results from previous checks
Note: this method MUST be static because it is indirectly used in MapsforgeMapProvider-constructur
main/src/main/java/cgeo/geocaching/maps/mapsforge/MapsforgeMapProvider.java