/**
* Copyright (c) 2010-2016 by the respective copyright holders.
*
* 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
*/
package org.openhab.binding.souliss.internal.network.typicals;
import java.net.DatagramSocket;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* This class return istance of Typical
*
* @author Tonino Fazio
* @since 1.7.0
*/
public class TypicalFactory {
private static Logger logger = LoggerFactory.getLogger(TypicalFactory.class);
public static SoulissGenericTypical getClass(short soulissType, DatagramSocket _datagramsocket,
String sSoulissNodeIPAddressOnLAN, int iIDNodo, int iSlot, String sOHType, byte iBit, String sUseSlot) {
SoulissGenericTypical T = null;
switch (soulissType) {
case Constants.Souliss_T11:
T = new SoulissT11(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T12:
T = new SoulissT12(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T13:
T = new SoulissT13(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T14:
T = new SoulissT14(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T1n_RGB:
break;
case Constants.Souliss_T16:
T = new SoulissT16(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T18:
T = new SoulissT18(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T19:
T = new SoulissT19(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T1A:
T = new SoulissT1A(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType, iBit);
break;
case Constants.Souliss_T21:
T = new SoulissT21(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T22:
T = new SoulissT22(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T31:
T = new SoulissT31(_datagramsocket, sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T52_TemperatureSensor:
T = new SoulissT52(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T53_HumiditySensor:
T = new SoulissT53(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T54_LuxSensor:
T = new SoulissT54(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T55_VoltageSensor:
T = new SoulissT55(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T56_CurrentSensor:
T = new SoulissT56(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T57_PowerSensor:
T = new SoulissT57(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_T58_PressureSensor:
T = new SoulissT58(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_TService_NODE_HEALTY:
T = new SoulissTServiceNODE_HEALTY(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
case Constants.Souliss_TService_NODE_TIMESTAMP:
T = new SoulissTServiceNODE_TIMESTAMP(sSoulissNodeIPAddressOnLAN, iIDNodo, iSlot, sOHType);
break;
default:
logger.debug("Typical Unknown");
}
return T;
}
}