package krasa.formatter.settings.provider;
import krasa.formatter.common.ModifiableFile;
import krasa.formatter.plugin.InvalidPropertyFile;
import krasa.formatter.settings.Settings;
import java.io.File;
import java.util.Properties;
/**
* @author Vojtech Krasa
*/
public class JavaPropertiesProvider extends CachedPropertiesProvider {
protected String profile;
public JavaPropertiesProvider(Settings settings) {
super(new ModifiableFile(settings.getPathToConfigFileJava()));
this.profile = settings.getSelectedJavaProfile();
}
@Override
protected Properties readFile(File file) throws InvalidPropertyFile {
if (file.getName().endsWith("xml")) {
return readXmlFile(file, profile);
} else if (file.getName().endsWith("epf")) {
return readConfigFromWorkspaceMechanicFile(file);
} else {
// properties file
return super.readFile(file);
}
}
private Properties readConfigFromWorkspaceMechanicFile(final File file) {
Properties result = new Properties();
Properties properties = super.readFile(file);
final String prefix = "/instance/org.eclipse.jdt.core/";
for (Object object : properties.keySet()) {
String key = (String) object;
if (key.startsWith(prefix)) {
String value = properties.getProperty(key);
result.put(key.substring(prefix.length()), value);
}
}
return result;
}
}