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 Detail

      • 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,
                                                                   java.lang.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