From 7e98568a30f329ae6f84da2ade5fe4bbfdf2a352 Mon Sep 17 00:00:00 2001 From: Gary Wu Date: Fri, 14 Apr 2017 13:44:13 -0700 Subject: 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 --- .../sdc/common/datastructure/CapList.java | 324 --------------------- 1 file changed, 324 deletions(-) delete mode 100644 common-app-api/src/main/java/org/openecomp/sdc/common/datastructure/CapList.java (limited to 'common-app-api/src/main') 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.
- * If an element would be inserted to the list and it is full, the oldest - * element will be taken out. - * - * @author mshitrit - * - * @param - */ -public class CapList implements List { - private static final int DEFAULT_CAP = 1000; - private int cap; - private ReadWriteLock readWriteLock; - private List 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 c) { - try { - readWriteLock.writeLock().lock(); - boolean result = innerList.addAll(c); - removeExtras(); - return result; - } finally { - readWriteLock.writeLock().unlock(); - } - } - - @Override - public boolean addAll(int index, Collection 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 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 listIterator() { - try { - readWriteLock.readLock().lock(); - return innerList.listIterator(); - - } finally { - readWriteLock.readLock().unlock(); - } - } - - @Override - public ListIterator 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 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[] toArray(T[] a) { - try { - readWriteLock.readLock().lock(); - return innerList.toArray(a); - - } finally { - readWriteLock.readLock().unlock(); - } - } - -} -- cgit 1.2.3-korg