/* * Copyright (c) 2015 the original author or authors. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Etienne Studer & Donát Csikós (Gradle Inc.) - initial API and implementation and initial documentation */ package org.eclipse.buildship.core.projectimport; import java.io.File; import java.util.List; import com.gradleware.tooling.toolingutils.binding.Property; import com.gradleware.tooling.toolingutils.binding.Validator; import com.gradleware.tooling.toolingutils.binding.Validators; import org.eclipse.buildship.core.CorePlugin; import org.eclipse.buildship.core.configuration.BuildConfiguration; import org.eclipse.buildship.core.util.gradle.GradleDistributionWrapper; /** * Serves as the data model of the project import wizard. */ public final class ProjectImportConfiguration { private final Property<File> projectDir; private final Property<GradleDistributionWrapper> gradleDistribution; private final Property<Boolean> applyWorkingSets; private final Property<List<String>> workingSets; public ProjectImportConfiguration() { this(Validators.<File> noOp(), Validators.<GradleDistributionWrapper> noOp(), Validators.<Boolean> noOp(), Validators.<List<String>> noOp()); } public ProjectImportConfiguration(Validator<File> projectDirValidator, Validator<GradleDistributionWrapper> gradleDistributionValidator, Validator<Boolean> applyWorkingSetsValidator, Validator<List<String>> workingSetsValidators) { this.projectDir = Property.create(projectDirValidator); this.gradleDistribution = Property.create(gradleDistributionValidator); this.applyWorkingSets = Property.create(applyWorkingSetsValidator); this.workingSets = Property.create(workingSetsValidators); } public Property<File> getProjectDir() { return this.projectDir; } public void setProjectDir(File projectDir) { this.projectDir.setValue(projectDir); } public Property<GradleDistributionWrapper> getGradleDistribution() { return this.gradleDistribution; } public void setGradleDistribution(GradleDistributionWrapper gradleDistribution) { this.gradleDistribution.setValue(gradleDistribution); } public Property<Boolean> getApplyWorkingSets() { return this.applyWorkingSets; } public void setApplyWorkingSets(Boolean applyWorkingSets) { this.applyWorkingSets.setValue(applyWorkingSets); } public Property<List<String>> getWorkingSets() { return this.workingSets; } public void setWorkingSets(List<String> workingSets) { this.workingSets.setValue(workingSets); } public BuildConfiguration toBuildConfig() { return CorePlugin.configurationManager().createBuildConfiguration(getProjectDir().getValue(), getGradleDistribution().getValue().toGradleDistribution(), false, false, false); } }