package org.signalml.plugin.impl;
import java.io.File;
import java.util.ArrayList;
import org.signalml.plugin.export.config.SvarogAccessConfig;
import org.signalml.plugin.export.config.SvarogConfiguration;
import org.signalml.plugin.loader.PluginLoaderHi;
/**
* Svarog configuration facade (for plugins).
*
* @author Stanislaw Findeisen
*/
public class ConfigAccessImpl extends AbstractAccess implements SvarogAccessConfig {
private ConfigAccessImpl() { }
private static final ConfigAccessImpl _instance = new ConfigAccessImpl();
protected static ConfigAccessImpl getInstance() {
return _instance;
}
@Override
public SvarogConfiguration getSvarogConfiguration() {
return getViewerElementManager().getApplicationConfig();
}
@Override
public File getProfileDirectory() {
return new File(getViewerElementManager().getProfileDir().getAbsolutePath());
}
@Override
public File[] getPluginDirectories() {
PluginLoaderHi loader = PluginLoaderHi.getInstance();
ArrayList<File> files = loader.getPluginDirs();
if (files == null) throw new RuntimeException("no profile directories stored");
File[] filesArray = new File[files.size()];
int i = 0;
for (File file : files) {
filesArray[i++] = new File(file.getAbsolutePath());
}
return filesArray;
}
}