aboutsummaryrefslogtreecommitdiffstats
path: root/common-app-api/src/main
diff options
context:
space:
mode:
authorGary Wu <gary.i.wu@huawei.com>2017-04-14 13:44:13 -0700
committerGary Wu <gary.i.wu@huawei.com>2017-07-12 19:03:01 +0000
commit7e98568a30f329ae6f84da2ade5fe4bbfdf2a352 (patch)
treef09cae301f6e2646367f9ac0e1cc7dcb8da98e81 /common-app-api/src/main
parentdd60339b06d252fcb1382aa97ab3d65b37dad021 (diff)
Replace CapList with EvictingQueue
The functionality of CapList is already provided by com.google.common.collect.EvictingQueue, so there's no need to implement our own. This change replaces CapList with a synchronized EvictingQueue. Change-Id: I2f7b72bf27169bb90d0bd20f289686685e7f06bf Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
Diffstat (limited to 'common-app-api/src/main')
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/datastructure/CapList.java324
1 files changed, 0 insertions, 324 deletions
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/datastructure/CapList.java b/common-app-api/src/main/java/org/openecomp/sdc/common/datastructure/CapList.java
deleted file mode 100644
index d202715fae..0000000000
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/datastructure/CapList.java
+++ /dev/null
@@ -1,324 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdc.common.datastructure;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-
-/**
- * Thread Safe List with a cap for Max elements.<br>
- * If an element would be inserted to the list and it is full, the oldest
- * element will be taken out.
- *
- * @author mshitrit
- *
- * @param <T>
- */
-public class CapList<T> implements List<T> {
- private static final int DEFAULT_CAP = 1000;
- private int cap;
- private ReadWriteLock readWriteLock;
- private List<T> innerList;
-
- public CapList() {
- this(DEFAULT_CAP);
- }
-
- public CapList(int cap) {
- if (cap < 1) {
- throw new RuntimeException("List Cap Must Be Positive");
- }
- this.cap = cap;
- innerList = new ArrayList<>();
- readWriteLock = new ReentrantReadWriteLock();
- }
-
- @Override
- public boolean add(T e) {
- try {
- readWriteLock.writeLock().lock();
- boolean result = innerList.add(e);
- removeExtras();
- return result;
-
- } finally {
- readWriteLock.writeLock().unlock();
- }
-
- }
-
- private void removeExtras() {
- while (innerList.size() > cap) {
- innerList.remove(0);
- }
- }
-
- @Override
- public void add(int index, T element) {
- try {
- readWriteLock.writeLock().lock();
- innerList.add(index, element);
- } finally {
- readWriteLock.writeLock().unlock();
- }
-
- }
-
- @Override
- public boolean addAll(Collection<? extends T> c) {
- try {
- readWriteLock.writeLock().lock();
- boolean result = innerList.addAll(c);
- removeExtras();
- return result;
- } finally {
- readWriteLock.writeLock().unlock();
- }
- }
-
- @Override
- public boolean addAll(int index, Collection<? extends T> c) {
- try {
- readWriteLock.writeLock().lock();
- boolean result = innerList.addAll(index, c);
- removeExtras();
- return result;
- } finally {
- readWriteLock.writeLock().unlock();
- }
- }
-
- @Override
- public void clear() {
- try {
- readWriteLock.writeLock().lock();
- innerList.clear();
- } finally {
- readWriteLock.writeLock().unlock();
- }
-
- }
-
- @Override
- public boolean contains(Object o) {
- try {
- readWriteLock.readLock().lock();
- return innerList.contains(o);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
-
- }
-
- @Override
- public boolean containsAll(Collection<?> c) {
- try {
- readWriteLock.readLock().lock();
- return innerList.containsAll(c);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public T get(int index) {
- try {
- readWriteLock.readLock().lock();
- return innerList.get(index);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public int indexOf(Object o) {
- try {
- readWriteLock.readLock().lock();
- return innerList.indexOf(o);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public boolean isEmpty() {
- try {
- readWriteLock.readLock().lock();
- return innerList.isEmpty();
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public Iterator<T> iterator() {
- try {
- readWriteLock.readLock().lock();
- return innerList.iterator();
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public int lastIndexOf(Object o) {
- try {
- readWriteLock.readLock().lock();
- return innerList.lastIndexOf(o);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public ListIterator<T> listIterator() {
- try {
- readWriteLock.readLock().lock();
- return innerList.listIterator();
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public ListIterator<T> listIterator(int index) {
- try {
- readWriteLock.readLock().lock();
- return innerList.listIterator(index);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public boolean remove(Object o) {
- try {
- readWriteLock.writeLock().lock();
- return innerList.remove(o);
-
- } finally {
- readWriteLock.writeLock().unlock();
- }
- }
-
- @Override
- public T remove(int index) {
- try {
- readWriteLock.writeLock().lock();
- return innerList.remove(index);
-
- } finally {
- readWriteLock.writeLock().unlock();
- }
- }
-
- @Override
- public boolean removeAll(Collection<?> c) {
- try {
- readWriteLock.writeLock().lock();
- return innerList.removeAll(c);
-
- } finally {
- readWriteLock.writeLock().unlock();
- }
- }
-
- @Override
- public boolean retainAll(Collection<?> c) {
- try {
- readWriteLock.writeLock().lock();
- return innerList.retainAll(c);
-
- } finally {
- readWriteLock.writeLock().unlock();
- }
- }
-
- @Override
- public T set(int index, T element) {
- try {
- readWriteLock.writeLock().lock();
- return innerList.set(index, element);
-
- } finally {
- readWriteLock.writeLock().unlock();
- }
- }
-
- @Override
- public int size() {
- try {
- readWriteLock.readLock().lock();
- return innerList.size();
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public List<T> subList(int fromIndex, int toIndex) {
- try {
- readWriteLock.readLock().lock();
- return innerList.subList(fromIndex, toIndex);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public Object[] toArray() {
- try {
- readWriteLock.readLock().lock();
- return innerList.toArray();
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
- @Override
- public <T> T[] toArray(T[] a) {
- try {
- readWriteLock.readLock().lock();
- return innerList.toArray(a);
-
- } finally {
- readWriteLock.readLock().unlock();
- }
- }
-
-}