package won.protocol.message; import org.apache.jena.rdf.model.Resource; import won.protocol.vocabulary.WONMSG; import java.net.URI; /** * User: ypanchenko * Date: 13.08.2014 */ public enum WonMessageType { // main messages CREATE_NEED(WONMSG.TYPE_CREATE), CONNECT(WONMSG.TYPE_CONNECT), DEACTIVATE(WONMSG.TYPE_DEACTIVATE), ACTIVATE(WONMSG.TYPE_ACTIVATE), CLOSE(WONMSG.TYPE_CLOSE), OPEN(WONMSG.TYPE_OPEN), CONNECTION_MESSAGE(WONMSG.TYPE_CONNECTION_MESSAGE), HINT_MESSAGE(WONMSG.TYPE_HINT), HINT_FEEDBACK_MESSAGE(WONMSG.TYPE_HINT_FEEDBACK), // notification messages HINT_NOTIFICATION(WONMSG.TYPE_HINT_NOTIFICATION), NEED_CREATED_NOTIFICATION(WONMSG.TYPE_NEED_CREATED_NOTIFICATION), // response messages SUCCESS_RESPONSE(WONMSG.TYPE_SUCCESS_RESPONSE), FAILURE_RESPONSE(WONMSG.TYPE_FAILURE_RESPONSE); private Resource resource; private WonMessageType(Resource resource) { this.resource = resource; } public Resource getResource() { return resource; } public URI getURI(){ return URI.create(getResource().getURI().toString()); } public static WonMessageType getWonMessageType(URI uri){ return getWonMessageType(WONMSG.toResource(uri)); } public boolean isIdentifiedBy(URI uri){ if (uri == null) return false; return getResource().getURI().toString().equals(uri.toString()); } public static WonMessageType getWonMessageType(Resource resource) { if (WONMSG.TYPE_CREATE.equals(resource)) return CREATE_NEED; if (WONMSG.TYPE_CONNECT.equals(resource)) return CONNECT; if (WONMSG.TYPE_DEACTIVATE.equals(resource)) return DEACTIVATE; if (WONMSG.TYPE_ACTIVATE.equals(resource)) return ACTIVATE; if (WONMSG.TYPE_OPEN.equals(resource)) return OPEN; if (WONMSG.TYPE_CLOSE.equals(resource)) return CLOSE; if (WONMSG.TYPE_CONNECTION_MESSAGE.equals(resource)) return CONNECTION_MESSAGE; if (WONMSG.TYPE_HINT.equals(resource)) return HINT_MESSAGE; if (WONMSG.TYPE_HINT_FEEDBACK.equals(resource)) return HINT_FEEDBACK_MESSAGE; // response classes if (WONMSG.TYPE_SUCCESS_RESPONSE.equals(resource)) return SUCCESS_RESPONSE; if (WONMSG.TYPE_FAILURE_RESPONSE.equals(resource)) return FAILURE_RESPONSE; //notification classes if (WONMSG.TYPE_HINT_NOTIFICATION.equals(resource)) return HINT_NOTIFICATION; if (WONMSG.TYPE_NEED_CREATED_NOTIFICATION.equals(resource)) return NEED_CREATED_NOTIFICATION; return null; } }