[CCSDK-987]Create GR Toolkit
[ccsdk/sli/plugins.git] / grToolkit / provider / src / main / java / org / onap / ccsdk / sli / plugins / data / MemberBuilder.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : SDN-C
4  * ================================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights
6  *                      reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.ccsdk.sli.plugins.data;
23
24 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.cluster.health.output.MembersBuilder;
25 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.CommitStatusBuilder;
26 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.CommitStatus;
27 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.ReplicasBuilder;
28 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.Replicas;
29 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.LeaderBuilder;
30 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.Leader;
31
32
33 import java.util.HashMap;
34 import java.util.ArrayList;
35 import java.util.List;
36
37 public class MemberBuilder extends MembersBuilder {
38     public MemberBuilder(ClusterActor actor) {
39         super();
40         this.setAddress(actor.getNode());
41         this.setRole(actor.getMember());
42         this.setVoting(actor.isVoting());
43         this.setUp(actor.isUp());
44         this.setUnreachable(actor.isUnreachable());
45         populateReplicas(actor.getReplicaShards());
46         populateCommits(actor.getCommits());
47         populateLeader(actor.getShardLeader());
48         //actor.getNonReplicaShards();
49     }
50
51     private void populateLeader(ArrayList<String> shardLeader) {
52         LeaderBuilder builder;
53         this.setLeader((List) new ArrayList<Leader>());
54         for(String leader : shardLeader) {
55             builder = new LeaderBuilder();
56             builder.setShard(leader);
57             this.getLeader().add(builder.build());
58         }
59     }
60
61     private void populateCommits(HashMap<String, Integer> commits) {
62         CommitStatusBuilder builder;
63         this.setCommitStatus((List) new ArrayList<CommitStatus>());
64         for(String key : commits.keySet()) {
65             if(commits.get(key) != 0) {
66                 builder = new CommitStatusBuilder();
67                 builder.setShard(key);
68                 builder.setDelta(commits.get(key));
69                 this.getCommitStatus().add(builder.build());
70             }
71         }
72     }
73
74     private void populateReplicas(ArrayList<String> replicaShards) {
75         ReplicasBuilder builder;
76         this.setReplicas((List) new ArrayList<Replicas>());
77         for(String shard : replicaShards) {
78             builder = new ReplicasBuilder();
79             builder.setShard(shard);
80             this.getReplicas().add(builder.build());
81         }
82     }
83 }