1
19
20 package com.liferay.util;
21
22 import java.util.ArrayList;
23 import java.util.Collection;
24 import java.util.Iterator;
25
26
32 public class UniqueList<E> extends ArrayList<E> {
33
34 public UniqueList() {
35 super();
36 }
37
38 public boolean add(E e) {
39 if (!contains(e)) {
40 return super.add(e);
41 }
42 else {
43 return false;
44 }
45 }
46
47 public void add(int index, E e) {
48 if (!contains(e)) {
49 super.add(index, e);
50 }
51 }
52
53 public boolean addAll(Collection<? extends E> c) {
54 c = new ArrayList<E>(c);
55
56 Iterator<? extends E> itr = c.iterator();
57
58 while (itr.hasNext()) {
59 E e = itr.next();
60
61 if (contains(e)) {
62 itr.remove();
63 }
64 }
65
66 return super.addAll(c);
67 }
68
69 public boolean addAll(int index, Collection<? extends E> c) {
70 c = new ArrayList<E>(c);
71
72 Iterator<? extends E> itr = c.iterator();
73
74 while (itr.hasNext()) {
75 E e = itr.next();
76
77 if (contains(e)) {
78 itr.remove();
79 }
80 }
81
82 return super.addAll(index, c);
83 }
84
85 public E set(int index, E e) {
86 if (!contains(e)) {
87 return super.set(index, e);
88 }
89 else {
90 return e;
91 }
92 }
93
94 }