From c74bbf03b4340d78e04a77bb8b9f56e5eb6796bd Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Tue, 24 Feb 2026 17:41:16 +0000 Subject: [PATCH] small fixes --- .../models/BuilderPipelineContext.java | 21 ++++++------------- .../workspaces/BuilderPipelineService.java | 4 ++-- .../compiler/workspaces/PipelineStage.java | 3 ++- .../workspaces/stages/DepsPipelineStage.java | 18 ++++++++-------- .../compiler/models/DependencyContext.java | 2 +- .../workspaces/DependencyService.java | 2 +- .../workspaces/phases/StackPhase.java | 2 +- .../workspaces/phases/ValidatePhase.java | 10 ++++----- .../structures/ReadOnlyCollection.java | 13 ++++++++---- 9 files changed, 35 insertions(+), 40 deletions(-) diff --git a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/models/BuilderPipelineContext.java b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/models/BuilderPipelineContext.java index eebce034..9fef890a 100644 --- a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/models/BuilderPipelineContext.java +++ b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/models/BuilderPipelineContext.java @@ -1,27 +1,18 @@ package p.studio.compiler.models; -import lombok.Getter; -import lombok.Setter; import p.studio.compiler.messages.BuilderPipelineConfig; -import p.studio.utilities.logs.LogAggregator; public class BuilderPipelineContext { - @Getter - private final BuilderPipelineConfig config; - @Getter - private final LogAggregator logs; - @Getter - @Setter - private ResolvedWorkspace resolvedWorkspace; + public final BuilderPipelineConfig config; + + public ResolvedWorkspace resolvedWorkspace; private BuilderPipelineContext( - final BuilderPipelineConfig config, - final LogAggregator logs) { + final BuilderPipelineConfig config) { this.config = config; - this.logs = logs; } - public static BuilderPipelineContext seed(BuilderPipelineConfig config, LogAggregator logAggregator) { - return new BuilderPipelineContext(config, logAggregator); + public static BuilderPipelineContext basedOn(BuilderPipelineConfig config) { + return new BuilderPipelineContext(config); } } diff --git a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/BuilderPipelineService.java b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/BuilderPipelineService.java index 2f56bc69..d8c59153 100644 --- a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/BuilderPipelineService.java +++ b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/BuilderPipelineService.java @@ -30,10 +30,10 @@ public class BuilderPipelineService { public void run( final BuilderPipelineConfig config, final LogAggregator logs) { - final var ctx = BuilderPipelineContext.seed(config, logs); + final var ctx = BuilderPipelineContext.basedOn(config); for (final var builderPipelineStage : stages) { - final var issues = builderPipelineStage.run(ctx); + final var issues = builderPipelineStage.run(ctx, logs); var error = false; if (ReadOnlyCollection.isNotEmpty(issues)) { for (final var issue : issues) { diff --git a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/PipelineStage.java b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/PipelineStage.java index 842805d3..4d24f498 100644 --- a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/PipelineStage.java +++ b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/PipelineStage.java @@ -2,8 +2,9 @@ package p.studio.compiler.workspaces; import p.studio.compiler.messages.BuildingIssue; import p.studio.compiler.models.BuilderPipelineContext; +import p.studio.utilities.logs.LogAggregator; import p.studio.utilities.structures.ReadOnlyCollection; public interface PipelineStage { - ReadOnlyCollection run(BuilderPipelineContext ctx); + ReadOnlyCollection run(BuilderPipelineContext ctx, LogAggregator logs); } diff --git a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/stages/DepsPipelineStage.java b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/stages/DepsPipelineStage.java index f964d5f9..1d530d86 100644 --- a/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/stages/DepsPipelineStage.java +++ b/prometeu-compiler/prometeu-build-pipeline/src/main/java/p/studio/compiler/workspaces/stages/DepsPipelineStage.java @@ -5,33 +5,33 @@ import p.studio.compiler.messages.DependencyConfig; import p.studio.compiler.models.BuilderPipelineContext; import p.studio.compiler.workspaces.DependencyService; import p.studio.compiler.workspaces.PipelineStage; +import p.studio.utilities.logs.LogAggregator; import p.studio.utilities.structures.ReadOnlyCollection; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.List; public class DepsPipelineStage implements PipelineStage { @Override - public ReadOnlyCollection run(final BuilderPipelineContext ctx) { + public ReadOnlyCollection run(final BuilderPipelineContext ctx, LogAggregator logs) { final Path rootCanonPath; try { - rootCanonPath = Paths.get(ctx.getConfig().getRootProjectPath()).toRealPath(); + rootCanonPath = Paths.get(ctx.config.getRootProjectPath()).toRealPath(); } catch (IOException e) { - return ReadOnlyCollection.wrap(List.of(BuildingIssue + return ReadOnlyCollection.with(BuildingIssue .builder() .error(true) - .message("[DEPS]: rootProjectId directory no found: " + ctx.getConfig().getRootProjectPath()) - .build())); + .message("[DEPS]: rootProjectId directory no found: " + ctx.config.getRootProjectPath()) + .build()); } final var cfg = new DependencyConfig(false, rootCanonPath); - final var resolvedWorkspace = DependencyService.INSTANCE.run(cfg, ctx.getLogs()); + final var resolvedWorkspace = DependencyService.INSTANCE.run(cfg, logs); for (final var pId : resolvedWorkspace.stack().projects()) { final var pd = resolvedWorkspace.graph().projectTable().get(pId); - ctx.getLogs().info("Project [ " + pd.getName() + " ] read"); + logs.info("Project [ " + pd.getName() + " ] read"); } - ctx.setResolvedWorkspace(resolvedWorkspace); + ctx.resolvedWorkspace = resolvedWorkspace; return ReadOnlyCollection.empty(); } } diff --git a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/models/DependencyContext.java b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/models/DependencyContext.java index d754f618..941e5b1c 100644 --- a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/models/DependencyContext.java +++ b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/models/DependencyContext.java @@ -34,7 +34,7 @@ public final class DependencyContext { this.config = config; } - public static DependencyContext seed(DependencyConfig config) { + public static DependencyContext basedOn(DependencyConfig config) { return new DependencyContext(config); } diff --git a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/DependencyService.java b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/DependencyService.java index f59c887b..aad52604 100644 --- a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/DependencyService.java +++ b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/DependencyService.java @@ -35,7 +35,7 @@ public final class DependencyService { public ResolvedWorkspace run( final DependencyConfig config, final LogAggregator logs) { - final var ctx = DependencyContext.seed(config); + final var ctx = DependencyContext.basedOn(config); for (final var dependencyPhase : phases) { final var issues = dependencyPhase.run(ctx); diff --git a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/StackPhase.java b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/StackPhase.java index 5ece5615..53edc874 100644 --- a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/StackPhase.java +++ b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/StackPhase.java @@ -90,7 +90,7 @@ public final class StackPhase implements DependencyPhase { .collect(joining("\n")); var issue = BuildingIssue.builder().error(true).message(msg).build(); - return ReadOnlyCollection.wrap(List.of(issue)); + return ReadOnlyCollection.with(issue); } ctx.stack = new BuildStack(ReadOnlyList.wrap(travesalOrder)); diff --git a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/ValidatePhase.java b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/ValidatePhase.java index f4c45599..62f6575a 100644 --- a/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/ValidatePhase.java +++ b/prometeu-compiler/prometeu-deps/src/main/java/p/studio/compiler/workspaces/phases/ValidatePhase.java @@ -5,11 +5,9 @@ import p.studio.compiler.models.DependencyContext; import p.studio.compiler.workspaces.DependencyPhase; import p.studio.utilities.structures.ReadOnlyCollection; -import java.util.List; - public final class ValidatePhase implements DependencyPhase { @Override - public ReadOnlyCollection run(DependencyContext ctx) { + public ReadOnlyCollection run(final DependencyContext ctx) { // ensure rootProjectId is set if (ctx.rootProjectId == null) { final var issue = BuildingIssue @@ -17,7 +15,7 @@ public final class ValidatePhase implements DependencyPhase { .error(true) .message("[DEPS]: rootProjectId ProjectId not set") .build(); - return ReadOnlyCollection.wrap(List.of(issue)); + return ReadOnlyCollection.with(issue); } // ensure the dependenciesByProject matches the number of projectDescriptors @@ -27,7 +25,7 @@ public final class ValidatePhase implements DependencyPhase { .error(true) .message("[DEPS]: internal error: dependenciesByProject and projectDescriptors size mismatch") .build(); - return ReadOnlyCollection.wrap(List.of(issue)); + return ReadOnlyCollection.with(issue); } // ensure uniformity to version across the same projects (associated by name) @@ -40,7 +38,7 @@ public final class ValidatePhase implements DependencyPhase { .error(true) .message("[DEPS]: inconsistent version for project: " + name + " (" + versions + ")") .build(); - return ReadOnlyCollection.wrap(List.of(issue)); + return ReadOnlyCollection.with(issue); } } diff --git a/prometeu-infra/src/main/java/p/studio/utilities/structures/ReadOnlyCollection.java b/prometeu-infra/src/main/java/p/studio/utilities/structures/ReadOnlyCollection.java index eecb278e..169a0758 100644 --- a/prometeu-infra/src/main/java/p/studio/utilities/structures/ReadOnlyCollection.java +++ b/prometeu-infra/src/main/java/p/studio/utilities/structures/ReadOnlyCollection.java @@ -1,11 +1,9 @@ package p.studio.utilities.structures; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Spliterator; +import java.util.*; import java.util.function.Function; import java.util.function.Supplier; +import java.util.stream.Collectors; import java.util.stream.Stream; public class ReadOnlyCollection implements Iterable { @@ -23,6 +21,13 @@ public class ReadOnlyCollection implements Iterable { return new ReadOnlyCollection<>(collection); } + @SafeVarargs + public static ReadOnlyCollection with(final T... ts) { + if (ts == null) return ReadOnlyCollection.empty(); + if (ts.length == 0) return ReadOnlyCollection.empty(); + return new ReadOnlyCollection<>(Stream.of(ts).toList()); + } + public static boolean isEmpty(final ReadOnlyCollection c) { if (c == null) return true; return c.isEmpty();