2 * Copyright (C) 2014 Cisco Systems, Inc.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 * Authors : Thomas Bachman
10 package org.opendaylight.groupbasedpolicy.renderer.opflex.lib;
12 import java.util.ArrayList;
13 import java.util.List;
15 import org.opendaylight.groupbasedpolicy.jsonrpc.RpcMessage;
16 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointDeclareRequest;
17 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointDeclareResponse;
18 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointUndeclareRequest;
19 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointUnresolveRequest;
20 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointUnresolveResponse;
21 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointUpdateRequest;
22 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointUpdateResponse;
23 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointResolveRequest;
24 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.EndpointResolveResponse;
25 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.IdentityRequest;
26 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.IdentityResponse;
27 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.PolicyResolveRequest;
28 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.PolicyResolveResponse;
29 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.PolicyUnresolveRequest;
30 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.PolicyUnresolveResponse;
31 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.PolicyUpdateRequest;
32 import org.opendaylight.groupbasedpolicy.renderer.opflex.lib.messages.PolicyUpdateResponse;
35 * Enum for OpFlex roles and their supported messages
41 DISCOVERY("discovery"),
42 POLICY_REPOSITORY("policy_repository"),
43 ENDPOINT_REGISTRY("endpoint_registry"),
45 POLICY_ELEMENT("policy_element");
47 static IdentityRequest idReq = new IdentityRequest();
48 static IdentityResponse idRsp = new IdentityResponse();
49 static EndpointDeclareRequest epDeclReq = new EndpointDeclareRequest();
50 static EndpointDeclareResponse epDeclRsp = new EndpointDeclareResponse();
51 static EndpointUndeclareRequest epUndeclReq = new EndpointUndeclareRequest();
52 static EndpointResolveRequest epReqReq = new EndpointResolveRequest();
53 static EndpointResolveResponse epReqRsp = new EndpointResolveResponse();
54 static EndpointUnresolveRequest epUnreqReq = new EndpointUnresolveRequest();
55 static EndpointUnresolveResponse epUnreqRsp = new EndpointUnresolveResponse();
56 static EndpointUpdateRequest epPolUpdReq = new EndpointUpdateRequest();
57 static EndpointUpdateResponse epPolUpdRsp = new EndpointUpdateResponse();
58 static PolicyResolveRequest polReq = new PolicyResolveRequest();
59 static PolicyResolveResponse polRsp = new PolicyResolveResponse();
60 static PolicyUpdateRequest polUpdReq = new PolicyUpdateRequest();
61 static PolicyUpdateResponse polUpdRsp = new PolicyUpdateResponse();
62 static PolicyUnresolveRequest polUnReq = new PolicyUnresolveRequest();
63 static PolicyUnresolveResponse polUnRsp = new PolicyUnresolveResponse();
65 private final String role;
72 * Get the {@link RpcMessage}s supported by this Role
74 * @return List of RpcMessages supported for this Role
76 public List<RpcMessage> getMessages() {
77 if (role.equals(DISCOVERY.toString())) {
78 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
83 else if (role.equals(POLICY_REPOSITORY.toString())) {
84 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
86 msgList.add(polUpdReq);
87 msgList.add(polUpdRsp);
88 msgList.add(polUnReq);
89 msgList.add(polUnRsp);
92 else if (role.equals(ENDPOINT_REGISTRY.toString())) {
93 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
94 msgList.add(epDeclReq);
95 msgList.add(epUndeclReq);
96 msgList.add(epReqReq);
97 msgList.add(epUnreqReq);
98 msgList.add(epPolUpdReq);
99 msgList.add(epPolUpdRsp);
102 else if (role.equals(OBSERVER.toString())) {
103 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
110 public String toString() {