Interface TypedModeledFramework<M,P1>

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 TypedModeledFramework<M,P1>

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


 // Step 1. Create a typed ZPath
 TypedZPath<PersonId> typedPath = TypedZPath.from("/root/registry/people/{id}");

 // Step 2. Create a typed ModelSpec (see TypedModelSpec for details)
 TypedModelSpec<Person, PersonId> typedModelSpec = TypedModelSpec.from(builder, path);

 // Step 3. Create a ModeledFramework builder (do not build at this point)
 ModeledFrameworkBuilder<Person> builder = ModeledFramework.builder()... // add any other needed options

 // Step 4. Create a typed TypedModeledFramework using the typed ZPath, typed ModelSpec, and ModeledFramework builder
 TypedModeledFramework<Person, PersonId> clientSpec = TypedModeledFramework.from(builder, modelSpec);

 // later on the TypedModelSpec can be resolved into a useable ModeledFramework
 ModeledFramework<Person> client = clientSpec.resolve(personId);
 

  • Method Details

    • resolved

      ModeledFramework<M> resolved(AsyncCuratorFramework client, P1 p1)
      Resolve into a ModeledFramework using the given parameter
      Parameters:
      client - the curator instance to use
      p1 - the parameter
      Returns:
      ZPath
    • from

      static <M, P1> TypedModeledFramework<M,P1> from(ModeledFrameworkBuilder<M> frameworkBuilder, TypedModelSpec<M,P1> modelSpec)
      Return a new TypedModeledFramework using the given modeled framework builder and typed model spec. When resolved(AsyncCuratorFramework, Object) is called the actual ModeledFramework is generated with the resolved model spec
      Parameters:
      frameworkBuilder - ModeledFrameworkBuilder
      modelSpec - TypedModelSpec
      Returns:
      new TypedModeledFramework
    • from

      static <M, P1> TypedModeledFramework<M,P1> from(ModeledFrameworkBuilder<M> frameworkBuilder, ModelSpecBuilder<M> modelSpecBuilder, String pathWithIds)
      Return a new TypedModeledFramework using the given modeled framework builder, model spec builder and a path with ids. When resolved(AsyncCuratorFramework, Object) is called the actual ModeledFramework is generated with the resolved model spec and resolved path
      Parameters:
      frameworkBuilder - ModeledFrameworkBuilder
      modelSpecBuilder - model spec builder
      pathWithIds - path with {XXXX} parameters
      Returns:
      new TypedModeledFramework