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.renderer.opflex.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
40 DISCOVERY("discovery"), POLICY_REPOSITORY("policy_repository"), ENDPOINT_REGISTRY("endpoint_registry"), OBSERVER(
41 "observer"), POLICY_ELEMENT("policy_element");
43 static final IdentityRequest idReq = new IdentityRequest();
44 static final IdentityResponse idRsp = new IdentityResponse();
45 static final EndpointDeclareRequest epDeclReq = new EndpointDeclareRequest();
46 static final EndpointDeclareResponse epDeclRsp = new EndpointDeclareResponse();
47 static final EndpointUndeclareRequest epUndeclReq = new EndpointUndeclareRequest();
48 static final EndpointResolveRequest epReqReq = new EndpointResolveRequest();
49 static final EndpointResolveResponse epReqRsp = new EndpointResolveResponse();
50 static final EndpointUnresolveRequest epUnreqReq = new EndpointUnresolveRequest();
51 static final EndpointUnresolveResponse epUnreqRsp = new EndpointUnresolveResponse();
52 static final EndpointUpdateRequest epPolUpdReq = new EndpointUpdateRequest();
53 static final EndpointUpdateResponse epPolUpdRsp = new EndpointUpdateResponse();
54 static final PolicyResolveRequest polReq = new PolicyResolveRequest();
55 static final PolicyResolveResponse polRsp = new PolicyResolveResponse();
56 static final PolicyUpdateRequest polUpdReq = new PolicyUpdateRequest();
57 static final PolicyUpdateResponse polUpdRsp = new PolicyUpdateResponse();
58 static final PolicyUnresolveRequest polUnReq = new PolicyUnresolveRequest();
59 static final PolicyUnresolveResponse polUnRsp = new PolicyUnresolveResponse();
61 private final String role;
68 * Get the {@link RpcMessage}s supported by this Role
70 * @return List of RpcMessages supported for this Role
72 public List<RpcMessage> getMessages() {
73 if (role.equals(DISCOVERY.toString())) {
74 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
78 } else if (role.equals(POLICY_REPOSITORY.toString())) {
79 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
81 msgList.add(polUpdReq);
82 msgList.add(polUpdRsp);
83 msgList.add(polUnReq);
84 msgList.add(polUnRsp);
86 } else if (role.equals(ENDPOINT_REGISTRY.toString())) {
87 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
88 msgList.add(epDeclReq);
89 msgList.add(epUndeclReq);
90 msgList.add(epReqReq);
91 msgList.add(epUnreqReq);
92 msgList.add(epPolUpdReq);
93 msgList.add(epPolUpdRsp);
95 } else if (role.equals(OBSERVER.toString())) {
96 List<RpcMessage> msgList = new ArrayList<RpcMessage>();
103 public String toString() {