Class DataRootPathMatcher


  • public class DataRootPathMatcher
    extends Object
    Find the dataRoot path from the request, by getting the longest match. Use a TreeSet for minimum in-memory use. Keep the objects in a separate map that could be off-heap and persistent.
    Since:
    4/1/2015
    • Method Detail

      • contains

        public boolean contains​(String path)
        See if this object already exists in the collection
        Parameters:
        path - find object that has this key
        Returns:
        true if already contains the key
      • getValues

        public Set<Map.Entry<String,​DataRootExt>> getValues()
        Get an iterator over the dataRoot keys and values. debug
        Returns:
        iterator
      • findLongestPathMatch

        public String findLongestPathMatch​(String reqPath)
        Find the longest path match.
        Parameters:
        reqPath - find object with longest match where reqPath.startsWith( key)
        Returns:
        the value whose key is the longest that matches path, or null if none
      • findDataRoot

        public DataRoot findDataRoot​(String reqPath)
        Find the longest DataRoot match.
        Parameters:
        reqPath - find object with longest match where reqPath.startsWith( key)
        Returns:
        the value whose key is the longest that matches path, or null if none
      • extractDataRoots

        public void extractDataRoots​(String catalogRelPath,
                                     List<thredds.client.catalog.Dataset> dsList,
                                     boolean checkDups,
                                     Map<String,​String> idMap)
        Finds datasetScan, datasetFmrc Look for duplicate Ids (give message). Dont follow catRefs.
        Parameters:
        dsList - the list of Dataset