package org.gradle.plugins.site.data; import org.gradle.api.Plugin; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.Nested; import java.util.ArrayList; import java.util.List; /** * The data descriptor for the whole project. */ public class ProjectDescriptor { private final String name; private final String group; private final String description; private final String version; private final List<Class<? extends Plugin>> pluginClasses = new ArrayList<Class<? extends Plugin>>(); private final List<TaskDescriptor> tasks = new ArrayList<TaskDescriptor>(); private final EnvironmentDescriptor environment; private JavaProjectDescriptor javaProject; public ProjectDescriptor(String name, String group, String description, String version, EnvironmentDescriptor environment) { this.name = name; this.group = group; this.description = description; this.version = version; this.environment = environment; } @Input public String getName() { return name; } @Input public String getGroup() { return group; } @Input public String getDescription() { return description; } @Input public String getVersion() { return version; } @Input public List<TaskDescriptor> getTasks() { return tasks; } public void addTask(TaskDescriptor task) { tasks.add(task); } @Input public List<Class<? extends Plugin>> getPluginClasses() { return pluginClasses; } public void addPluginClass(Class<? extends Plugin> pluginClass) { this.pluginClasses.add(pluginClass); } @Nested public JavaProjectDescriptor getJavaProject() { return javaProject; } public void setJavaProject(JavaProjectDescriptor javaProject) { this.javaProject = javaProject; } @Nested public EnvironmentDescriptor getEnvironment() { return environment; } }