blob: 9a3af33bb088caa2592ebdc3f2888c9c4837c88c [file] [log] [blame]
Ilayda Ozdemir4c5947c2020-05-05 13:14:32 +00001/*
2 * Copyright 2017-present Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.opencord.igmpproxy.impl.store.groupmember;
17
18import com.google.common.collect.ImmutableList;
19import com.google.common.collect.ImmutableSet;
20import org.onosproject.store.AbstractStore;
21import org.opencord.igmpproxy.GroupMemberId;
22
23import java.util.Collection;
24import java.util.Map;
25import java.util.Set;
26
27/**
28 * Abstract implementation of group-member store.
29 */
30public abstract class AbstractGroupMemberStore extends AbstractStore<GroupMemberEvent, GroupMemberStoreDelegate>
31 implements GroupMemberStore {
32
33 protected Map<GroupMemberId, GroupMember> groupMemberMap;
34
35 protected AbstractGroupMemberStore() {
36
37 }
38
39 protected AbstractGroupMemberStore(Map<GroupMemberId, GroupMember> groupMemberMap) {
40 this.groupMemberMap = groupMemberMap;
41 }
42
43 @Override
44 public GroupMember putGroupMember(GroupMember groupMember) {
45 return groupMemberMap.put(groupMember.getGroupMemberId(), groupMember);
46 }
47
48 @Override
49 public GroupMember updateGroupMember(GroupMember groupMember) {
50 return groupMemberMap.replace(groupMember.getGroupMemberId(), groupMember);
51 }
52
53 @Override
54 public GroupMember removeGroupMember(GroupMemberId groupMemberId) {
55 return groupMemberMap.remove(groupMemberId);
56 }
57
58 @Override
59 public GroupMember getGroupMember(GroupMemberId groupMemberId) {
60 return groupMemberMap.getOrDefault(groupMemberId, null);
61 }
62
63 @Override
64 public Set<GroupMemberId> getAllGroupMemberIds() {
65 return ImmutableSet.copyOf(groupMemberMap.keySet());
66 }
67
68 @Override
69 public Collection<GroupMember> getAllGroupMembers() {
70 return ImmutableList.copyOf(groupMemberMap.values());
71 }
72}