code: public List<NodeData> getChildNodes(final NodeData parent, final QPathEntryFilter pattern)
     {
        // get list of children uuids
        final Map<QPathEntryFilter, Set<String>> patterns =
           (Map<QPathEntryFilter, Set<String>>)cache.get(new CachePatternNodesId(getOwnerId(), parent.getIdentifier()));
  
        if (patterns == null)
        {
           return null;
        }
  
        Set<String> set = patterns.get(pattern);
        if (set == null)
        {
           return null;
        }
  
        final List<NodeData> childs = new ArrayList<NodeData>();
  
        for (String childId : set)
        {
           NodeData child = (NodeData)cache.get(new CacheId(getOwnerId(), childId));
           if (child == null)
           {
              return null;
           }
  
           childs.add(child);
        }
  
        // order children by orderNumber, as HashSet returns children in other order
        Collections.sort(childs, new NodesOrderComparator<NodeData>());
        return childs;
  
     }
docs: {@inheritDoc}