2018/9/13 10:21:26 -0700, roger.ri...@oracle.com:
> Consider:
> 
> public class SearchPath {
>   public static SearchPath of(String searchPath) {...}
> public static SearchPath of(List<String> elements) {...}
> public Stream<String> stream() {...}
> public List<String> asList() {...}
>   public String toString() {...}
>   private SearchPath() {};
> }
> 
> A SearchPath can be constructed from various forms of search path 
> elements and can create other forms as needed.
> As a class it would be extensible and can start small and grow as needed.
> 
> Examples:
>    List<String> list = SearchPath.of("a:b:c").asList();
> 
>  Path p = SearchPath.of("x:y:z").stream()
>     .filter(Predicate.not(String::isEmpty))
>     .map(Path::of)
>     .filter(Files::isDirectory)
>   .filter(q -> Files.exists(q.resolve("x.jar)))
>     .findFirst()
>     .orElseThrow();
> 
> If that seems like a reasonable base, I (or some other volunteer) can 
> flesh it out with the suggestions.

Yes -- this is along the lines of what I was trying to suggest.
Stick to the goal of representing a search path, and leave actual
I/O operations, if any, to the caller.

I think that puts this class squarly in the realm of java.util
rather than java.nio.file.

- Mark

Reply via email to