package cc.blynk.server.core.protocol.model.messages; import cc.blynk.server.core.protocol.exceptions.UnsupportedCommandException; import cc.blynk.server.core.protocol.model.messages.appllication.*; import cc.blynk.server.core.protocol.model.messages.appllication.sharing.*; import cc.blynk.server.core.protocol.model.messages.common.HardwareConnectedMessage; import cc.blynk.server.core.protocol.model.messages.common.HardwareMessage; import cc.blynk.server.core.protocol.model.messages.common.PingMessage; import cc.blynk.server.core.protocol.model.messages.hardware.*; import static cc.blynk.server.core.protocol.enums.Command.*; /** * The Blynk Project. * Created by Dmitriy Dumanskiy. * Created on 2/1/2015. */ public class MessageFactory { public static MessageBase produce(int messageId, short command, String body) { switch (command) { case REGISTER : return new RegisterMessage(messageId, body); case LOGIN : return new LoginMessage(messageId, body); case LOAD_PROFILE_GZIPPED : return new LoadProfileGzippedStringMessage(messageId, body); case APP_SYNC: return new AppSyncMessage(messageId, body); case SHARING : return new SharingMessage(messageId, body); case GET_TOKEN : return new GetTokenMessage(messageId, body); case ASSIGN_TOKEN : return new AssignTokenMessage(messageId, body); case PING : return new PingMessage(messageId); case ACTIVATE_DASHBOARD : return new ActivateDashboardMessage(messageId, body); case DEACTIVATE_DASHBOARD : return new DeActivateDashboardMessage(messageId, body); case REFRESH_TOKEN : return new RefreshTokenMessage(messageId, body); case GET_GRAPH_DATA : return new GetGraphDataStringMessage(messageId, body); case EXPORT_GRAPH_DATA : return new ExportDataMessage(messageId, body); case SET_WIDGET_PROPERTY : return new SetWidgetPropertyMessage(messageId, body); case TWEET : return new TwitMessage(messageId, body); case EMAIL : return new MailMessage(messageId, body); case PUSH_NOTIFICATION : return new PushMessage(messageId, body); case SMS : return new SMSMessage(messageId, body); case BRIDGE : return new BridgeMessage(messageId, body); case SHARE_LOGIN : return new ShareLoginMessage(messageId, body); case GET_SHARE_TOKEN : return new GetShareTokenMessage(messageId, body); case REFRESH_SHARE_TOKEN : return new RefreshShareTokenMessage(messageId, body); case GET_SHARED_DASH : return new GetSharedDashMessage(messageId, body); case HARDWARE : return new HardwareMessage(messageId, body); case HARDWARE_CONNECTED : return new HardwareConnectedMessage(messageId, body); case REDEEM : return new RedeemMessage(messageId, body); case CREATE_DASH : return new CreateDashMessage(messageId, body); case UPDATE_DASH: return new UpdateDashMessage(messageId, body); case DELETE_DASH : return new DeleteDashMessage(messageId, body); case UPDATE_PROJECT_SETTINGS : return new UpdateDashSettingsMessage(messageId, body); case ADD_PUSH_TOKEN : return new AddPushToken(messageId, body); case HARDWARE_SYNC : return new HardwareSyncMessage(messageId, body); case BLYNK_INTERNAL: return new BlynkInternalMessage(messageId, body); case CREATE_WIDGET : return new CreateWidget(messageId, body); case UPDATE_WIDGET : return new UpdateWidget(messageId, body); case DELETE_WIDGET : return new DeleteWidget(messageId, body); case CREATE_DEVICE : return new CreateDevice(messageId, body); case UPDATE_DEVICE : return new UpdateDevice(messageId, body); case DELETE_DEVICE : return new DeleteDevice(messageId, body); case GET_DEVICES : return new GetDevices(messageId, body); case CREATE_TAG : return new CreateTag(messageId, body); case UPDATE_TAG : return new UpdateTag(messageId, body); case DELETE_TAG : return new DeleteTag(messageId, body); case GET_TAGS : return new GetTags(messageId, body); case GET_ENERGY : return new GetEnergy(messageId, body); case ADD_ENERGY : return new AddEnergy(messageId, body); case GET_SERVER : return new GetServerMessage(messageId, body); case CONNECT_REDIRECT : return new ConnectRedirectMessage(messageId, body); case APP_CONNECTED : return new AppConnectedMessage(messageId); case CREATE_APP : return new CreateAppMessage(messageId, body); case UPDATE_APP : return new UpdateAppMessage(messageId, body); case DELETE_APP : return new DeleteAppMessage(messageId, body); case GET_PROJECT_BY_TOKEN : return new GetProjectByTokenStringMessage(messageId, body); case EMAIL_QR : return new EmailQRsMessage(messageId, body); default: throw new UnsupportedCommandException("Command not supported. Code : " + command, messageId); } } }