package org.netbeans.gradle.project.properties;
import java.io.File;
import org.jtrim.utils.ExceptionHelper;
import org.netbeans.gradle.project.NbStrings;
import org.netbeans.gradle.project.properties.GradleLocation.Applier;
import org.netbeans.gradle.project.tasks.vars.StringResolver;
import org.openide.filesystems.FileUtil;
public final class GradleLocationDirectory implements GradleLocation {
public static final String UNIQUE_TYPE_NAME = "INST";
private final File gradleHome;
public GradleLocationDirectory(File gradleHome) {
ExceptionHelper.checkNotNullArgument(gradleHome, "gradleHome");
this.gradleHome = gradleHome;
}
public static GradleLocationRef getLocationRef(final String rawDir) {
ExceptionHelper.checkNotNullArgument(rawDir, "rawDir");
return new GradleLocationRef() {
@Override
public String getUniqueTypeName() {
return UNIQUE_TYPE_NAME;
}
@Override
public String asString() {
return rawDir;
}
@Override
public GradleLocation getLocation(StringResolver resolver) {
String resolvedDir = resolver.resolveStringIfValid(rawDir);
if (resolvedDir == null) {
return GradleLocationDefault.DEFAULT;
}
File gradleHome = FileUtil.normalizeFile(new File(resolvedDir));
return new GradleLocationDirectory(gradleHome);
}
};
}
public File tryGetGradleHome() {
return gradleHome;
}
@Override
public void applyLocation(Applier applier) {
applier.applyDirectory(gradleHome);
}
@Override
public String toLocalizedString() {
return NbStrings.getGradleLocationLocal(gradleHome);
}
}