/******************************************************************************* * Copyright (c) 2011, 2016 Eurotech and/or its affiliates * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Eurotech *******************************************************************************/ package org.eclipse.kura.net.admin.modem; import org.eclipse.kura.linux.net.modem.SupportedSerialModemInfo; import org.eclipse.kura.linux.net.modem.SupportedSerialModemsInfo; import org.eclipse.kura.net.admin.modem.telit.he910.TelitHe910ConfigGenerator; import org.eclipse.kura.net.admin.modem.telit.he910.TelitHe910ModemFactory; public class SupportedSerialModemsFactoryInfo { public enum SerialModemFactoryInfo { Telit_HE910_NAD(SupportedSerialModemsInfo .getModem(), TelitHe910ModemFactory.class, TelitHe910ConfigGenerator.class); private final SupportedSerialModemInfo m_serialModemInfo; private final Class<? extends CellularModemFactory> m_factoryClass; private final Class<? extends ModemPppConfigGenerator> m_configClass; private SerialModemFactoryInfo(SupportedSerialModemInfo modemInfo, Class<? extends CellularModemFactory> factoryClass, Class<? extends ModemPppConfigGenerator> configClass) { this.m_serialModemInfo = modemInfo; this.m_factoryClass = factoryClass; this.m_configClass = configClass; } public SupportedSerialModemInfo getSerialModemInfo() { return this.m_serialModemInfo; } public Class<? extends CellularModemFactory> getModemFactoryClass() { return this.m_factoryClass; } public Class<? extends ModemPppConfigGenerator> getConfigGeneratorClass() { return this.m_configClass; } } public static SerialModemFactoryInfo getModem(SupportedSerialModemInfo modemInfo) { if (modemInfo == null) { return null; } for (SerialModemFactoryInfo modem : SerialModemFactoryInfo.values()) { if (modemInfo.equals(modem.getSerialModemInfo())) { return modem; } } return null; } }