001 package com.mockrunner.mock.connector.cci;
002
003 import java.util.ArrayList;
004 import java.util.Collection;
005 import java.util.Iterator;
006 import java.util.List;
007 import java.util.ListIterator;
008
009 import javax.resource.cci.IndexedRecord;
010
011 import com.mockrunner.base.NestedApplicationException;
012
013 /**
014 * Mock implementation of <code>IndexedRecord</code>.
015 */
016 public class MockIndexedRecord extends MockRecord implements IndexedRecord
017 {
018 private List backingList;
019
020 public MockIndexedRecord()
021 {
022 this("MockrunnerGenericIndexedRecord");
023 }
024
025 public MockIndexedRecord(String name)
026 {
027 this(name, name);
028 }
029
030 public MockIndexedRecord(String name, String description)
031 {
032 super(name, description);
033 backingList = new ArrayList();
034 }
035
036 public int size()
037 {
038 return backingList.size();
039 }
040
041 public boolean isEmpty()
042 {
043 return backingList.isEmpty();
044 }
045
046 public boolean contains(Object object)
047 {
048 return backingList.contains(object);
049 }
050
051 public Iterator iterator()
052 {
053 return backingList.iterator();
054 }
055
056 public Object[] toArray()
057 {
058 return backingList.toArray();
059 }
060
061 public Object[] toArray(Object[] object)
062 {
063 return backingList.toArray(object);
064 }
065
066 public boolean add(Object object)
067 {
068 return backingList.add(object);
069 }
070
071 public boolean remove(Object object)
072 {
073 return backingList.remove(object);
074 }
075
076 public boolean containsAll(Collection collection)
077 {
078 return backingList.containsAll(collection);
079 }
080
081 public boolean addAll(Collection collection)
082 {
083 return backingList.addAll(collection);
084 }
085
086 public boolean addAll(int index, Collection collection)
087 {
088 return backingList.addAll(index, collection);
089 }
090
091 public boolean removeAll(Collection collection)
092 {
093 return backingList.removeAll(collection);
094 }
095
096 public boolean retainAll(Collection collection)
097 {
098 return backingList.retainAll(collection);
099 }
100
101 public void clear()
102 {
103 backingList.clear();
104 }
105
106 public Object get(int index)
107 {
108 return backingList.get(index);
109 }
110
111 public Object set(int index, Object object)
112 {
113 return backingList.set(index, object);
114 }
115
116 public void add(int index, Object object)
117 {
118 backingList.add(index, object);
119 }
120
121 public Object remove(int index)
122 {
123 return backingList.remove(index);
124 }
125
126 public int indexOf(Object object)
127 {
128 return backingList.indexOf(object);
129 }
130
131 public int lastIndexOf(Object object)
132 {
133 return backingList.lastIndexOf(object);
134 }
135
136 public ListIterator listIterator()
137 {
138 return backingList.listIterator();
139 }
140
141 public ListIterator listIterator(int index)
142 {
143 return backingList.listIterator(index);
144 }
145
146 public List subList(int fromIndex, int toIndex)
147 {
148 return backingList.subList(fromIndex, toIndex);
149 }
150
151 public boolean equals(Object object)
152 {
153 if(!super.equals(object)) return false;
154 MockIndexedRecord other = (MockIndexedRecord)object;
155 return backingList.equals(other.backingList);
156 }
157
158 public int hashCode()
159 {
160 return super.hashCode() * 31 + backingList.hashCode();
161 }
162
163 public String toString()
164 {
165 return super.toString() + "\n" + backingList.toString();
166 }
167
168 public Object clone()
169 {
170 try
171 {
172 MockIndexedRecord clone = (MockIndexedRecord)super.clone();
173 clone.backingList = new ArrayList(this.backingList);
174 return clone;
175 }
176 catch(Exception exc)
177 {
178 throw new NestedApplicationException(exc);
179 }
180 }
181 }