
com.harium.etyl.util.concurrency.ConcurrentList Maven / Gradle / Ivy
package com.harium.etyl.util.concurrency;
import java.util.ArrayList;
import java.util.List;
public class ConcurrentList {
private List list;
private List alternativeList;
private boolean locked = false;
public ConcurrentList(int initialSize) {
super();
list = new ArrayList(initialSize);
alternativeList = new ArrayList(initialSize);
}
public ConcurrentList() {
super();
list = new ArrayList();
alternativeList = new ArrayList();
}
public void add(T t) {
if(!locked) {
list.add(t);
} else {
alternativeList.add(t);
}
}
public List lock() {
alternativeList = new ArrayList();
locked = true;
List temp = new ArrayList(list);
return temp;
}
public void unlock() {
list.clear();
if (!alternativeList.isEmpty()) {
list.addAll(alternativeList);
}
locked = false;
}
public List getList() {
return list;
}
public void clear() {
list.clear();
}
public boolean isEmpty() {
return list.isEmpty() && alternativeList.isEmpty();
}
public void removeAll(List removeList) {
if(!locked) {
for(T t: removeList) {
list.remove(t);
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy