blob: a059b3cac3b531c3ffc998b117a8a89e4eb904a7 [file] [log] [blame]
/**
* Copyright (c) 2019 CEA.
* 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:
* CEA - initial API and implementation and/or initial documentation
*/
package org.eclipse.sensinact.studio.http.messages.snamessage;
import org.eclipse.sensinact.studio.http.messages.snamessage.actresponse.MsgActResponse;
import org.eclipse.sensinact.studio.http.messages.snamessage.attributevalueupdated.MsgAttributeValueUpdated;
import org.eclipse.sensinact.studio.http.messages.snamessage.completelist.MsgCompleteList;
import org.eclipse.sensinact.studio.http.messages.snamessage.describeresource.MsgDescribeRessource;
import org.eclipse.sensinact.studio.http.messages.snamessage.getresponse.MsgGetResponse;
import org.eclipse.sensinact.studio.http.messages.snamessage.lifecycle.*;
import org.eclipse.sensinact.studio.http.messages.snamessage.resourceslist.MsgResourcesList;
import org.eclipse.sensinact.studio.http.messages.snamessage.serviceslist.MsgServicesList;
import org.eclipse.sensinact.studio.http.messages.snamessage.setresponse.MsgSetResponse;
import org.eclipse.sensinact.studio.http.messages.snamessage.subscriberesponse.MsgSubscribeResponse;
import org.eclipse.sensinact.studio.http.messages.snamessage.tokencreation.MsgTokenCreation;
import org.eclipse.sensinact.studio.http.messages.snamessage.unsubscriberesponse.MsgUnsubscribeResponse;
/**
* @author Etienne Gandrille
*/
public enum MsgTypes {
// Token management
TOKEN_CREATION (MsgTokenCreation.KEY, MsgTokenCreation.class),
/* TOKEN_RENEW */
// List and describe (there will be much more than this two...)
COMPLETE_LIST (MsgCompleteList.KEY, MsgCompleteList.class),
SERVICES_LIST (MsgServicesList.KEY, MsgServicesList.class),
RESOURCES_LIST (MsgResourcesList.KEY, MsgResourcesList.class),
DESCRIBE_RESOURCE (MsgDescribeRessource.KEY, MsgDescribeRessource.class),
// Access methods
GET_RESPONSE (MsgGetResponse.KEY, MsgGetResponse.class),
SET_RESPONSE (MsgSetResponse.KEY, MsgSetResponse.class),
ACT_RESPONSE (MsgActResponse.KEY, MsgActResponse.class),
SUBSCRIBE_RESPONSE (MsgSubscribeResponse.KEY, MsgSubscribeResponse.class),
UNSUBSCRIBE_RESPONSE (MsgUnsubscribeResponse.KEY, MsgUnsubscribeResponse.class),
// CALLBACK
PROVIDER_APPEARING (MsgProviderAppearing.KEY, MsgProviderAppearing.class),
PROVIDER_DISAPPEARING (MsgProviderDisappearing.KEY, MsgProviderDisappearing.class),
SERVICE_APPEARING (MsgServiceAppearing.KEY, MsgServiceAppearing.class),
SERVICE_DISAPPEARING (MsgServiceDisappearing.KEY, MsgServiceDisappearing.class),
RESOURCE_APPEARING (MsgResourceAppearing.KEY, MsgResourceAppearing.class),
RESOURCE_DISAPPEARING (MsgResourceDisappearing.KEY, MsgResourceDisappearing.class),
// Other
ATTRIBUTE_VALUE_UPDATED (MsgAttributeValueUpdated.KEY, MsgAttributeValueUpdated.class);
private final String type;
private final Class<?> clazz;
private MsgTypes(String type, Class<?> clazz) {
this.type = type;
this.clazz = clazz;
}
public static MsgTypes get(String type) {
for (MsgTypes val : values()) {
if (val.type.equals(type))
return val;
}
return null;
}
public Class<?> getTargetClass() {
return clazz;
}
}