package org.shedlang.compiler.backends.paths; import org.shedlang.compiler.types.NamespaceName; import java.nio.file.Path; public class TargetDir { private final Path targetDir; public TargetDir(Path targetDir) { this.targetDir = targetDir; } public PartialTargetPath bin(String name) { return new PartialTargetPath( targetDir.resolve("bin").resolve(name) ); } public PartialTargetPath namespace(NamespaceName namespaceName) { var path = targetDir.resolve("namespaces"); for (var part : namespaceName.parts()) { path = path.resolve(part); } return new PartialTargetPath(path); } public Path topLevel(String name) { return targetDir.resolve(name); } }