Java 8 has a Path interface which comes very handy when we need to parse through a file or some path of an entity to build other objects.
Path interface has some useful methods like:
- int getNameCount() – Returns the number of name elements in the path.
- getParent(), getRoot(),
- Path resolve(String path)
- Path toAbsolutePath()
The standard imports:
This can be best explained with an example use-case.
A business has digital assets (files) that have Tags on each of them. And these Tags as in a hierarchy. Like
- Asset 1: Tags
- SuperCategory: Talk
- Category: Kids
- Channel: Kids Place
- Show: Back to School
Some Assets may not have all the levels of tags. We need to build a search service that should return 4 lists (SuperCategory, Category, Channel, Show) and put Assets in each of these.
For each asset, if the tag is marked, they are saved as a Path. Like /etc/tags/namespace/super-category/category/channel/show/show-name
Since the value being saved for each Asset is like a Path, we can use Java Path, break it down, see until what level the Tag is marked for each file.
- Asset 1: /etc/tags/namespace/shows/talk/kids/kids-place/back-to-school
- Asset 2: /etc/tags/namespace/shows/entertainment
- Asset 3: /etc/tags/namespace/shows/religion/family-talk
i know this is weird but there was such a requirement
Note: Please contact me for full code.