package it.angelic.soulissclient.model; import android.content.Context; import android.util.Log; import it.angelic.soulissclient.Constants; import it.angelic.soulissclient.helpers.SoulissPreferenceHelper; import it.angelic.soulissclient.model.db.SoulissTypicalDTO; import it.angelic.soulissclient.model.typicals.SoulissTypical11DigitalOutput; import it.angelic.soulissclient.model.typicals.SoulissTypical12DigitalOutputAuto; import it.angelic.soulissclient.model.typicals.SoulissTypical13DigitalInput; import it.angelic.soulissclient.model.typicals.SoulissTypical14PulseOutput; import it.angelic.soulissclient.model.typicals.SoulissTypical15; import it.angelic.soulissclient.model.typicals.SoulissTypical16AdvancedRGB; import it.angelic.soulissclient.model.typicals.SoulissTypical18StepRelay; import it.angelic.soulissclient.model.typicals.SoulissTypical19AnalogChannel; import it.angelic.soulissclient.model.typicals.SoulissTypical1ALightsArray; import it.angelic.soulissclient.model.typicals.SoulissTypical21; import it.angelic.soulissclient.model.typicals.SoulissTypical22; import it.angelic.soulissclient.model.typicals.SoulissTypical31Heating; import it.angelic.soulissclient.model.typicals.SoulissTypical32AirCon; import it.angelic.soulissclient.model.typicals.SoulissTypical41AntiTheft; import it.angelic.soulissclient.model.typicals.SoulissTypical42AntiTheftPeer; import it.angelic.soulissclient.model.typicals.SoulissTypical43AntiTheftLocalPeer; import it.angelic.soulissclient.model.typicals.SoulissTypical51AnalogueSensor; import it.angelic.soulissclient.model.typicals.SoulissTypical52TemperatureSensor; import it.angelic.soulissclient.model.typicals.SoulissTypical53HumiditySensor; import it.angelic.soulissclient.model.typicals.SoulissTypical54LuxSensor; import it.angelic.soulissclient.model.typicals.SoulissTypical58PressureSensor; import it.angelic.soulissclient.model.typicals.SoulissTypical5nCurrentVoltagePowerSensor; import it.angelic.soulissclient.model.typicals.SoulissTypical6nAnalogue; import static junit.framework.Assert.assertTrue; public class SoulissTypicalFactory { /** * get the concrete typical and instantiate it * * @param typ * @param parent * @return */ public static SoulissTypical getTypical(Context ctx, short typ, SoulissNode parent, SoulissTypicalDTO dto, SoulissPreferenceHelper opts) { SoulissTypical rest = null; assertTrue(opts != null); switch (typ) { case Constants.Typicals.Souliss_T11: rest = new SoulissTypical11DigitalOutput(ctx, opts); break; case Constants.Typicals.Souliss_T12: rest = new SoulissTypical12DigitalOutputAuto(ctx, opts); break; case Constants.Typicals.Souliss_T13: rest = new SoulissTypical13DigitalInput(ctx, opts); break; case Constants.Typicals.Souliss_T14: rest = new SoulissTypical14PulseOutput(ctx, opts); break; case Constants.Typicals.Souliss_T15_RGB: rest = new SoulissTypical15(ctx, opts); break; case Constants.Typicals.Souliss_T16: rest = new SoulissTypical16AdvancedRGB(ctx, opts); break; case Constants.Typicals.Souliss_T18: rest = new SoulissTypical18StepRelay(ctx, opts); break; case Constants.Typicals.Souliss_T19: rest = new SoulissTypical19AnalogChannel(ctx, opts); break; case Constants.Typicals.Souliss_T1A: rest = new SoulissTypical1ALightsArray(ctx, opts); break; case Constants.Typicals.Souliss_T21: rest = new SoulissTypical21(ctx, opts); break; case Constants.Typicals.Souliss_T22: rest = new SoulissTypical22(ctx, opts); break; case Constants.Typicals.Souliss_T31: rest = new SoulissTypical31Heating(ctx, opts); break; case Constants.Typicals.Souliss_T32_IrCom_AirCon: rest = new SoulissTypical32AirCon(ctx, opts); break; case Constants.Typicals.Souliss_T41_Antitheft_Main: //set the isAntitheftConfigure option TRUE rest = new SoulissTypical41AntiTheft(ctx, opts); break; case Constants.Typicals.Souliss_T42_Antitheft_Peer: rest = new SoulissTypical42AntiTheftPeer(ctx, opts); break; case Constants.Typicals.Souliss_T43_Antitheft_LocalPeer: rest = new SoulissTypical43AntiTheftLocalPeer(ctx, opts); break; case Constants.Typicals.Souliss_T_related: rest = new SoulissTypical(ctx, opts); rest.setRelated(true); break; case Constants.Typicals.Souliss_T51: rest = new SoulissTypical51AnalogueSensor(ctx, opts); break; case Constants.Typicals.Souliss_T52_TemperatureSensor: rest = new SoulissTypical52TemperatureSensor(ctx, opts); break; case Constants.Typicals.Souliss_T53_HumiditySensor: rest = new SoulissTypical53HumiditySensor(ctx, opts); break; case Constants.Typicals.Souliss_T54_LuxSensor: rest = new SoulissTypical54LuxSensor(ctx, opts); break; case Constants.Typicals.Souliss_T55_VoltageSensor: rest = new SoulissTypical5nCurrentVoltagePowerSensor(ctx, opts, typ); break; case Constants.Typicals.Souliss_T56_CurrentSensor: rest = new SoulissTypical5nCurrentVoltagePowerSensor(ctx, opts, typ); break; case Constants.Typicals.Souliss_T57_PowerSensor: rest = new SoulissTypical5nCurrentVoltagePowerSensor(ctx, opts, typ); break; case Constants.Typicals.Souliss_T58_PressureSensor: rest = new SoulissTypical58PressureSensor(ctx, opts); break; case Constants.Typicals.Souliss_T61: case Constants.Typicals.Souliss_T62: case Constants.Typicals.Souliss_T63: case Constants.Typicals.Souliss_T64: case Constants.Typicals.Souliss_T65: case Constants.Typicals.Souliss_T66: case Constants.Typicals.Souliss_T67: case Constants.Typicals.Souliss_T68: rest = new SoulissTypical6nAnalogue(ctx, opts); break; default: Log.w(Constants.Typicals.TAG, "warning, unknown typical"); rest = new SoulissTypical(ctx, opts); break; } rest.setTypicalDTO(dto); rest.setParentNode(parent); rest.setPrefs(opts); return rest; } }