/* * Jabox Open Source Version * Copyright (C) 2009-2010 Dimitris Kapanidis * * This file is part of Jabox * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package org.jabox.apis; import java.util.ArrayList; import java.util.List; import java.util.Set; import org.jabox.apis.cis.CISConnector; import org.jabox.apis.cis.CISConnectorConfig; import org.jabox.apis.cqm.CQMConnector; import org.jabox.apis.cqm.CQMConnectorConfig; import org.jabox.apis.its.ITSConnector; import org.jabox.apis.its.ITSConnectorConfig; import org.jabox.apis.rms.RMSConnector; import org.jabox.apis.rms.RMSConnectorConfig; import org.jabox.apis.scm.SCMConnector; import org.jabox.apis.scm.SCMConnectorConfig; import com.google.inject.Inject; public class Manager implements IManager { private final Set<ITSConnector> _itsConnectors; private final Set<CISConnector> _cisConnectors; private final Set<SCMConnector> _scmConnectors; private final Set<RMSConnector> _rmsConnectors; private final Set<CQMConnector> _cqmConnectors; @Inject public Manager(Set<ITSConnector> its, Set<CISConnector> cis, Set<SCMConnector> scm, Set<RMSConnector> rms, Set<CQMConnector> cqm) { this._itsConnectors = its; this._cisConnectors = cis; this._scmConnectors = scm; this._rmsConnectors = rms; this._cqmConnectors = cqm; } /* * (non-Javadoc) * @see * org.jabox.apis.IManager#getConnectorInstance(org.jabox.apis.ConnectorConfig * ) */ public Connector getConnectorInstance( final ConnectorConfig connectorConfig) { return getEntry(connectorConfig.getPluginId()); } /* * (non-Javadoc) * @seeorg.jabox.apis.IManager#getScmConnectorInstance(org.jabox.apis.scm. * SCMConnectorConfig) */ public SCMConnector<SCMConnectorConfig> getScmConnectorInstance( SCMConnectorConfig config) { if (config == null) { return null; } for (SCMConnector connectorInstance : _scmConnectors) { if (config.getPluginId().equals(connectorInstance.getId())) { return connectorInstance; } } return null; } /* * (non-Javadoc) * @seeorg.jabox.apis.IManager#getItsConnectorInstance(org.jabox.apis.its. * ITSConnectorConfig) */ public ITSConnector<ITSConnectorConfig> getItsConnectorInstance( ITSConnectorConfig config) { if (config == null) { return null; } for (ITSConnector connectorInstance : _itsConnectors) { if (config.getPluginId().equals(connectorInstance.getId())) { return connectorInstance; } } return null; } /* * (non-Javadoc) * @seeorg.jabox.apis.IManager#getRmsConnectorInstance(org.jabox.apis.rms. * RMSConnectorConfig) */ public RMSConnector getRmsConnectorInstance(RMSConnectorConfig config) { if (config == null) { return null; } for (RMSConnector connectorInstance : _rmsConnectors) { if (config.getPluginId().equals(connectorInstance.getId())) { return connectorInstance; } } return null; } /* * (non-Javadoc) * @seeorg.jabox.apis.IManager#getCisConnectorInstance(org.jabox.apis.cis. * CISConnectorConfig) */ public CISConnector getCisConnectorInstance(CISConnectorConfig config) { if (config == null) { return null; } for (CISConnector connectorInstance : _cisConnectors) { if (config.getPluginId().equals(connectorInstance.getId())) { return connectorInstance; } } return null; } /* * (non-Javadoc) * @seeorg.jabox.apis.IManager#getCqmConnectorInstance(org.jabox.apis.cqm. * CQMConnectorConfig) */ public CQMConnector getCqmConnectorInstance(CQMConnectorConfig config) { if (config == null) { return null; } for (CQMConnector connectorInstance : _cqmConnectors) { if (config.getPluginId().equals(connectorInstance.getId())) { return connectorInstance; } } return null; } @Override public Connector getEntry(String pluginId) { List<Connector> connectors = getAllConnectors(); if (pluginId == null) { return null; } for (Connector connectorInstance : connectors) { if (pluginId.equals(connectorInstance.getId())) { return connectorInstance; } } return null; } private List<Connector> getAllConnectors() { List<Connector> connectors = new ArrayList<Connector>(); connectors.addAll(_itsConnectors); connectors.addAll(_scmConnectors); connectors.addAll(_rmsConnectors); connectors.addAll(_cisConnectors); connectors.addAll(_cqmConnectors); return connectors; } @Override public List<? extends String> getIds( Class<? extends Connector> connectorClass) { List<Connector> connectors = getAllConnectors(); List<String> ids = new ArrayList<String>(); for (Connector connector : connectors) { if (connectorClass.isAssignableFrom(connector.getClass())) { ids.add(connector.getId()); } } return ids; } }