Sonar Fixes, Formatting
[aaf/authz.git] / auth / auth-batch / src / main / java / org / onap / aaf / auth / batch / helpers / CacheChange.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2019 IBM.
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
23 package org.onap.aaf.auth.batch.helpers;
24
25 import java.util.ArrayList;
26 import java.util.List;
27
28 public class CacheChange<T extends CacheChange.Data> {
29     private List<T> removed;
30
31     public CacheChange() {
32         removed = new ArrayList<>();
33     }
34
35     @FunctionalInterface
36     interface Data {
37         public abstract void expunge();
38     }
39
40     public final void delayedDelete(T t) {
41         removed.add(t);
42     }
43
44     public final List<T> getRemoved() {
45         return removed;
46     }
47
48     public final void resetLocalData() {
49         if (removed==null || removed.isEmpty()) {
50             return;
51         }
52         for (T t : removed) {
53             t.expunge();
54         }
55         removed.clear();
56     }
57
58     public int cacheSize() {
59         return removed.size();
60     }
61
62     public boolean contains(T t) {
63         return removed.contains(t);
64     }
65 }