// THIS CODE WAS GENERATED WITH THE GENERIC WORKFLOW NODES FOR KNIME NODE GENERATOR
// DO NOT MODIFY
package de.openms.knime;

import java.util.Arrays;
import java.util.List;

import org.osgi.framework.BundleContext;

import com.genericworkflownodes.knime.custom.GenericActivator;
import com.genericworkflownodes.knime.custom.config.IPluginConfiguration;
import com.genericworkflownodes.knime.custom.config.impl.PluginConfiguration;
import com.genericworkflownodes.knime.toolfinderservice.ExternalTool;

public class PluginActivator extends GenericActivator {

    private static PluginActivator INSTANCE = null;   
    private static IPluginConfiguration PLUGIN_CONFIG = null;
    private static final List<ExternalTool> TOOLS = Arrays.asList(new ExternalTool("de.openms", "AccurateMassSearch", "AccurateMassSearch"), new ExternalTool("de.openms", "AdditiveSeries", "AdditiveSeries"), new ExternalTool("de.openms", "BaselineFilter", "BaselineFilter"), new ExternalTool("de.openms", "CompNovo", "CompNovo"), new ExternalTool("de.openms", "CompNovoCID", "CompNovoCID"), new ExternalTool("de.openms", "ConsensusID", "ConsensusID"), new ExternalTool("de.openms", "ConsensusMapNormalizer", "ConsensusMapNormalizer"), new ExternalTool("de.openms", "ConvertTraMLToTSV", "ConvertTraMLToTSV"), new ExternalTool("de.openms", "ConvertTSVToTraML", "ConvertTSVToTraML"), new ExternalTool("de.openms", "CVInspector", "CVInspector"), new ExternalTool("de.openms", "Decharger", "Decharger"), new ExternalTool("de.openms", "DecoyDatabase", "DecoyDatabase"), new ExternalTool("de.openms", "DeMeanderize", "DeMeanderize"), new ExternalTool("de.openms", "Digestor", "Digestor"), new ExternalTool("de.openms", "DigestorMotif", "DigestorMotif"), new ExternalTool("de.openms", "DTAExtractor", "DTAExtractor"), new ExternalTool("de.openms", "EICExtractor", "EICExtractor"), new ExternalTool("de.openms", "ERPairFinder", "ERPairFinder"), new ExternalTool("de.openms", "ExecutePipeline", "ExecutePipeline"), new ExternalTool("de.openms", "ExternalCalibration", "ExternalCalibration"), new ExternalTool("de.openms", "FalseDiscoveryRate", "FalseDiscoveryRate"), new ExternalTool("de.openms", "FeatureFinderCentroided", "FeatureFinderCentroided"), new ExternalTool("de.openms", "FeatureFinderIdentification", "FeatureFinderIdentification"), new ExternalTool("de.openms", "FeatureFinderIsotopeWavelet", "FeatureFinderIsotopeWavelet"), new ExternalTool("de.openms", "FeatureFinderMetabo", "FeatureFinderMetabo"), new ExternalTool("de.openms", "FeatureFinderMRM", "FeatureFinderMRM"), new ExternalTool("de.openms", "FeatureFinderMultiplex", "FeatureFinderMultiplex"), new ExternalTool("de.openms", "FeatureFinderSuperHirn", "FeatureFinderSuperHirn"), new ExternalTool("de.openms", "FeatureLinkerLabeled", "FeatureLinkerLabeled"), new ExternalTool("de.openms", "FeatureLinkerUnlabeled", "FeatureLinkerUnlabeled"), new ExternalTool("de.openms", "FeatureLinkerUnlabeledQT", "FeatureLinkerUnlabeledQT"), new ExternalTool("de.openms", "FFEval", "FFEval"), new ExternalTool("de.openms", "FidoAdapter", "FidoAdapter"), new ExternalTool("de.openms", "FileConverter", "FileConverter"), new ExternalTool("de.openms", "FileFilter", "FileFilter"), new ExternalTool("de.openms", "FileInfo", "FileInfo"), new ExternalTool("de.openms", "FileMerger", "FileMerger"), new ExternalTool("de.openms", "FuzzyDiff", "FuzzyDiff"), new ExternalTool("de.openms", "HighResPrecursorMassCorrector", "HighResPrecursorMassCorrector"), new ExternalTool("de.openms", "IDConflictResolver", "IDConflictResolver"), new ExternalTool("de.openms", "IDDecoyProbability", "IDDecoyProbability"), new ExternalTool("de.openms", "IDExtractor", "IDExtractor"), new ExternalTool("de.openms", "IDFileConverter", "IDFileConverter"), new ExternalTool("de.openms", "IDFilter", "IDFilter"), new ExternalTool("de.openms", "IDMapper", "IDMapper"), new ExternalTool("de.openms", "IDMassAccuracy", "IDMassAccuracy"), new ExternalTool("de.openms", "IDMerger", "IDMerger"), new ExternalTool("de.openms", "IDPosteriorErrorProbability", "IDPosteriorErrorProbability"), new ExternalTool("de.openms", "IDRipper", "IDRipper"), new ExternalTool("de.openms", "IDRTCalibration", "IDRTCalibration"), new ExternalTool("de.openms", "IDScoreSwitcher", "IDScoreSwitcher"), new ExternalTool("de.openms", "IDSplitter", "IDSplitter"), new ExternalTool("de.openms", "ImageCreator", "ImageCreator"), new ExternalTool("de.openms", "InclusionExclusionListCreator", "InclusionExclusionListCreator"), new ExternalTool("de.openms", "INIUpdater", "INIUpdater"), new ExternalTool("de.openms", "InternalCalibration", "InternalCalibration"), new ExternalTool("de.openms", "IsobaricAnalyzer", "IsobaricAnalyzer"), new ExternalTool("de.openms", "ITRAQAnalyzer", "ITRAQAnalyzer"), new ExternalTool("de.openms", "LabeledEval", "LabeledEval"), new ExternalTool("de.openms", "LowMemPeakPickerHiRes", "LowMemPeakPickerHiRes"), new ExternalTool("de.openms", "LuciphorAdapter", "LuciphorAdapter"), new ExternalTool("de.openms", "MapAlignerIdentification", "MapAlignerIdentification"), new ExternalTool("de.openms", "MapAlignerPoseClustering", "MapAlignerPoseClustering"), new ExternalTool("de.openms", "MapAlignerSpectrum", "MapAlignerSpectrum"), new ExternalTool("de.openms", "MapAlignmentEvaluation", "MapAlignmentEvaluation"), new ExternalTool("de.openms", "MapNormalizer", "MapNormalizer"), new ExternalTool("de.openms", "MapRTTransformer", "MapRTTransformer"), new ExternalTool("de.openms", "MapStatistics", "MapStatistics"), new ExternalTool("de.openms", "MascotAdapterOnline", "MascotAdapterOnline"), new ExternalTool("de.openms", "MassCalculator", "MassCalculator"), new ExternalTool("de.openms", "MassTraceExtractor", "MassTraceExtractor"), new ExternalTool("de.openms", "MetaboliteSpectralMatcher", "MetaboliteSpectralMatcher"), new ExternalTool("de.openms", "MetaProSIP", "MetaProSIP"), new ExternalTool("de.openms", "MRMMapper", "MRMMapper"), new ExternalTool("de.openms", "MRMPairFinder", "MRMPairFinder"), new ExternalTool("de.openms", "MRMTransitionGroupPicker", "MRMTransitionGroupPicker"), new ExternalTool("de.openms", "MSGFPlusAdapter", "MSGFPlusAdapter"), new ExternalTool("de.openms", "MSSimulator", "MSSimulator"), new ExternalTool("de.openms", "MultiplexResolver", "MultiplexResolver"), new ExternalTool("de.openms", "MyriMatchAdapter", "MyriMatchAdapter"), new ExternalTool("de.openms", "MzMLSplitter", "MzMLSplitter"), new ExternalTool("de.openms", "MzTabExporter", "MzTabExporter"), new ExternalTool("de.openms", "NoiseFilterGaussian", "NoiseFilterGaussian"), new ExternalTool("de.openms", "NoiseFilterSGolay", "NoiseFilterSGolay"), new ExternalTool("de.openms", "OMSSAAdapter", "OMSSAAdapter"), new ExternalTool("de.openms", "OpenSwathAnalyzer", "OpenSwathAnalyzer"), new ExternalTool("de.openms", "OpenSwathAssayGenerator", "OpenSwathAssayGenerator"), new ExternalTool("de.openms", "OpenSwathChromatogramExtractor", "OpenSwathChromatogramExtractor"), new ExternalTool("de.openms", "OpenSwathConfidenceScoring", "OpenSwathConfidenceScoring"), new ExternalTool("de.openms", "OpenSwathDecoyGenerator", "OpenSwathDecoyGenerator"), new ExternalTool("de.openms", "OpenSwathDIAPreScoring", "OpenSwathDIAPreScoring"), new ExternalTool("de.openms", "OpenSwathFeatureXMLToTSV", "OpenSwathFeatureXMLToTSV"), new ExternalTool("de.openms", "OpenSwathFileSplitter", "OpenSwathFileSplitter"), new ExternalTool("de.openms", "OpenSwathRewriteToFeatureXML", "OpenSwathRewriteToFeatureXML"), new ExternalTool("de.openms", "OpenSwathRTNormalizer", "OpenSwathRTNormalizer"), new ExternalTool("de.openms", "OpenSwathWorkflow", "OpenSwathWorkflow"), new ExternalTool("de.openms", "PeakPickerHiRes", "PeakPickerHiRes"), new ExternalTool("de.openms", "PeakPickerIterative", "PeakPickerIterative"), new ExternalTool("de.openms", "PeakPickerWavelet", "PeakPickerWavelet"), new ExternalTool("de.openms", "PeptideIndexer", "PeptideIndexer"), new ExternalTool("de.openms", "PhosphoScoring", "PhosphoScoring"), new ExternalTool("de.openms", "PrecursorIonSelector", "PrecursorIonSelector"), new ExternalTool("de.openms", "PrecursorMassCorrector", "PrecursorMassCorrector"), new ExternalTool("de.openms", "ProteinInference", "ProteinInference"), new ExternalTool("de.openms", "ProteinQuantifier", "ProteinQuantifier"), new ExternalTool("de.openms", "ProteinResolver", "ProteinResolver"), new ExternalTool("de.openms", "PTModel", "PTModel"), new ExternalTool("de.openms", "PTPredict", "PTPredict"), new ExternalTool("de.openms", "QCCalculator", "QCCalculator"), new ExternalTool("de.openms", "QCEmbedder", "QCEmbedder"), new ExternalTool("de.openms", "QCExporter", "QCExporter"), new ExternalTool("de.openms", "QCExtractor", "QCExtractor"), new ExternalTool("de.openms", "QCImporter", "QCImporter"), new ExternalTool("de.openms", "QCMerger", "QCMerger"), new ExternalTool("de.openms", "QCShrinker", "QCShrinker"), new ExternalTool("de.openms", "Resampler", "Resampler"), new ExternalTool("de.openms", "RNPxl", "RNPxl"), new ExternalTool("de.openms", "RNPxlXICFilter", "RNPxlXICFilter"), new ExternalTool("de.openms", "RTAnnotator", "RTAnnotator"), new ExternalTool("de.openms", "RTEvaluation", "RTEvaluation"), new ExternalTool("de.openms", "RTModel", "RTModel"), new ExternalTool("de.openms", "RTPredict", "RTPredict"), new ExternalTool("de.openms", "SeedListGenerator", "SeedListGenerator"), new ExternalTool("de.openms", "SemanticValidator", "SemanticValidator"), new ExternalTool("de.openms", "SequenceCoverageCalculator", "SequenceCoverageCalculator"), new ExternalTool("de.openms", "SimpleSearchEngine", "SimpleSearchEngine"), new ExternalTool("de.openms", "SpecLibCreator", "SpecLibCreator"), new ExternalTool("de.openms", "SpecLibSearcher", "SpecLibSearcher"), new ExternalTool("de.openms", "SpectraFilterBernNorm", "SpectraFilterBernNorm"), new ExternalTool("de.openms", "SpectraFilterMarkerMower", "SpectraFilterMarkerMower"), new ExternalTool("de.openms", "SpectraFilterNLargest", "SpectraFilterNLargest"), new ExternalTool("de.openms", "SpectraFilterNormalizer", "SpectraFilterNormalizer"), new ExternalTool("de.openms", "SpectraFilterParentPeakMower", "SpectraFilterParentPeakMower"), new ExternalTool("de.openms", "SpectraFilterScaler", "SpectraFilterScaler"), new ExternalTool("de.openms", "SpectraFilterSqrtMower", "SpectraFilterSqrtMower"), new ExternalTool("de.openms", "SpectraFilterThresholdMower", "SpectraFilterThresholdMower"), new ExternalTool("de.openms", "SpectraFilterWindowMower", "SpectraFilterWindowMower"), new ExternalTool("de.openms", "SpectraMerger", "SpectraMerger"), new ExternalTool("de.openms", "TextExporter", "TextExporter"), new ExternalTool("de.openms", "TICCalculator", "TICCalculator"), new ExternalTool("de.openms", "TMTAnalyzer", "TMTAnalyzer"), new ExternalTool("de.openms", "TOFCalibration", "TOFCalibration"), new ExternalTool("de.openms", "TopPerc", "TopPerc"), new ExternalTool("de.openms", "TransformationEvaluation", "TransformationEvaluation"), new ExternalTool("de.openms", "XMLValidator", "XMLValidator"), new ExternalTool("de.openms", "XTandemAdapter", "XTandemAdapter"));

    @Override
    public void start(final BundleContext context) throws Exception {
        super.start(context);
        initializePlugin();
        INSTANCE = this;
    }

    public static PluginActivator getInstance() {
        return INSTANCE;
    }
    
    @Override
    public List<ExternalTool> getTools() {
        return TOOLS;
    }
    
    @Override
    public IPluginConfiguration getPluginConfiguration() {
        if (PLUGIN_CONFIG == null) {
            // construct the plugin config
            PLUGIN_CONFIG = new PluginConfiguration("de.openms", "OpenMS", 
                PluginActivator.getInstance().getProperties(), getClass());
        }
        return PLUGIN_CONFIG;
    }
}
