Niclas Hedhman wrote:
> Priority 1; // Definately
> =========================
> ImmutableProperty<Boolean> activated();

Will this ever return false is one question? I.e. will an application be 
active but one or more modules are not? This is open for now I think.

> ImmutableProperty<String> name();
> ImmutableProperty<Layer> layer();
> 
> Priority 2; // Maybe
> ==========================
> Module moduleForComposite( Class<? extends Composite> compositetype );
> Module moduleForMixinType( Class<?> mixintype );

This is syntactic sugar for 
moduleForComposite(lookupComposite(mixinType)), right?

> Module moduleForObject( Class<?> objecttype );
> boolean isPublic( Class<?> compositeOrObject );
> Class<? extends Composite> lookupComposite( Class<?> mixintype );
> 
> Priority 3; // Maybe not.
> ==========================
> ServiceReference<T> lookupService( Class<T> serviceType );
> Iterable<ServiceReference<T>> lookupServices( Class<T> serviceType );

These would be the most interesting ones I think as it allows in 
particular UI's to see things from the "Domain perspective". The problem 
I see with it is that if a UI-module A is allowed to access a Domain 
Composite B in another Module, but not Infrastructure which B can 
access, then doing moduleForComposite(B).lookupService() by A is a way 
to get around the visibility rules (which would be the benefit at the 
same time). Is this ok is the question?

> void activate();
> void passivate();
> 
> And something like;
> 
> public interface Layer
> {
>     ImmutableProperty<String> name();
>     Iterable<Layer> usesLayers();
>     Iterable<Layer> usedByLayers();
>     Iterable<Module> modules();
>     boolean isPublic( Class<?> compositeOrObject );
> }

Looks reasonably ok.

/Rickard


_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to