Interface TypedZPath<T>

Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface TypedZPath<T>

Abstraction that allows the construction of ZPaths using strongly typed parameter replacements. For example, given a path such as "/root/registry/people/{id}" where "id" should be PersonId.


 TypedZPath<PersonId> typedPath = TypedZPath.from("/root/registry/people/{id}");

 ...

 ZPath path = typedPath.resolved(personId);
 

Additionally, if you have a model/class that implements NodeName you can pass that when resolving. E.g.


 public class MyModel implements NodeName {
     ...
     public String nodeName() {
         return modelId;
     }
 }

 TypedZPath<MyModel> typedPath = TypedZPath.from("/foo/bar/{id}");

 MyModel model = ...
 ZPath path = typedPath.resolved(model);