On 30.6.2015 18:16, Niclas Hedhman wrote:
Ah! The full expansion of supertypes doesn't affect HasTypes#types() until
after the assembly declarations are completed. I should have realized that
up front.

domainLayer.values( hasTypes -> matchesAny(
     type -> Task.class.isAssignableFrom( type ), hasTypes.types() )
).withMixins( Identity.class );


since Task is expected to be a 'hard' super type.


Semi-OT, in Qi4CS (current name) the same is achieved with:

Snippet          assembler
            .ForExistingPlainComposite()
            .OfTypes( typeof( Task ) )
            .WithMixins( typeof( Identity ) );

The "ForExistingPlainComposite" returns the same "CompositeAssemblyDeclaration" (IIRC this is same name as in Zest) interface as when declaring new composites with the "NewPlainComposite()" method. "PlainComposite" here is a Qi4CS term which roughly is same as "TransientComposite" in Zest. And "assembler" is architecture-neutral interface allowing the declaration of composites.

Lately though, I also been thinking of exposing the composite declarations more directly, like the "values" in your snippet, Niclas.
It would certainly bring more consistency between Qi4CS and Zest.

Reply via email to