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);