package qubexplorer;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.util.Properties;
import org.netbeans.api.project.Project;
import org.netbeans.api.project.ProjectUtils;
import org.openide.filesystems.FileObject;
public class PlainDirectoryProject implements SonarQubeProjectConfiguration {
private final Project project;
private Properties properties;
public PlainDirectoryProject(Project project){
this.project = project;
try {
loadProjectProperties();
} catch (IOException ex) {
throw new SonarQubeProjectException(ex);
}
}
private void loadProjectProperties() throws IOException {
properties = new Properties();
FileObject fileObject = project.getProjectDirectory().getFileObject("sonar.properties");
if (fileObject != null) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(fileObject.getInputStream(), StandardCharsets.UTF_8))) {
properties.load(reader);
}
}
}
@Override
public String getName() {
return properties.getProperty(SonarMvnProject.PROPERTY_NAME, ProjectUtils.getInformation(project).getName());
}
@Override
public ResourceKey getKey() {
String propertyValue = properties.getProperty(SonarMvnProject.PROPERTY_KEY);
if (propertyValue != null) {
return ResourceKey.valueOf(propertyValue);
} else {
return new ResourceKey(getName());
}
}
@Override
public String getVersion() {
return properties.getProperty(SonarMvnProject.PROPERTY_VERSION, "1.0");
}
@Override
public SonarQubeProjectConfiguration createConfiguration(Project subproject) {
return new PlainDirectoryProject(subproject);
}
@Override
public Properties getProperties() {
return properties;
}
}