(no commit message)
[utils] / system / TODO.txt
1 SetterConfiguration:
2 - setNonPublic(boolean aNonPublic): by default publicOnly = true
3 - add select(Class aType) to select a specific setter as an alternative
4   to the name based selection.
5 - add values(Class aType) method for selecting a setter. 
6 - add add(Class aType) method for selecting a type. 
7 - verify that superclass setters are also taken into account.
8
9
10
11 opzoeken waar de provided interfaces van de scope gebruikt worden, als het
12 goed is nog nergens. Scope moet een Component worden en publiceren van een 
13 interface leidt tot een nieuw provided interface.
14
15 Component infrastructure
16 * support simple component
17   - requires through constructor
18   - provides through getters
19 * optional start and stop methods
20 * giving names to a component must be optional
21 * support for cached components and non-cached components.
22
23
24 - Annotaties definieren
25
26
27 @Component
28   class MyComponent {  
29
30   public MyComponent(Def aArg, Ghi aArg2) { 
31   }
32
33   @Provided(name = "name")
34   public Xyz getXyz();
35
36   @Start
37   public void myStart(); // Unlike the component
38 }
39
40 - Algemene classes maken die de constructor, start method, en 
41   methodes  identificeren om de component als Component te benaderen. 
42   in een object, samen met een wrapper die deze info gebruikt om het
43   object als Component te exportern. 
44   Er moet ook een wrapper zijn voor reeds geinstantieerde  objecten.
45
46 - wrapper maken die geannoteerde classes interpreteert en via de eerdere
47   wrapper het object ontsluiten als component. 
48   Zowel geinstantieerde objecten als classes ondersteunen. 
49
50 - add support for private setters.
51 - add support or exposing provided services 
52   - superclass or interface of the concrete type instead of the concrete type
53     or not based on the concrete type at all. 
54   - based on getters. 
55 - add support for field injection. 
56
57 - add support for annotation based configuration instead of API-based
58
59 - add support for type conversions. 
60
61 - add support for multiplicity. 
62
63 - add support for aggregating multiple servicss. 
64
65 - add support for explicitly configuring which provided interface of 
66   a container is provided by which internal service. 
67
68 - do not use equality but use logic for matching external required and
69   provided interfaces of a container. 
70
71   e.g. a service T provided by a container can be provided by a service 
72   U that provides subclasses of the provided interfaces of T
73
74   a service T required by a component inside a container is covered
75   by stronger requirements for subclasses of T. 
76
77 - separate logic for connecting required and provided interfaces 
78   through a general graph model of the application. 
79   Then use generic filters, validations, and graph traversal APIs 
80   to implement the current functionality in the container.