On 10/01/2024 10:29, PavelTurk wrote:
:
Still can't get reference to read modules:
layerC.configuration().modules().stream().forEach((m) -> {
for (ResolvedModule r : m.reads()) {
//LINE X
}
});
At LINE X I need to get `Module` from `ResolvedModule` to use
Module.getLayer() method. How to do it?
Starting in model world (Configuration/ResolvedModule) is right and you
first need to find the Configuration containing the moduleX that moduleY
reads, this should do it:
Configuration cf = layerC.configuration()
.findModule("moduleY")
.orElseThrow()
.reads().stream()
.filter(m -> m.name().equals("moduleX"))
.map(ResolvedModule::configuration)
.findAny()
.orElseThrow();
Once you have the Configuration then you need to find the ModuleLayer
that was reifed from that Configuration, this should do it:
ModuleLayer layer = layerC.parents().stream()
.filter(l -> l.configuration() == cf)
.findAny()
.orElseThrow();
Can you try it?
-Alan