public ImmutableProjectReactor(ProjectDefinition root) { if (root.getParent() != null) { throw new IllegalArgumentException("Not a root project: " + root); } this.root = root; collectProjects(root); }