@@ -74,13 +74,13 @@ namespace Java {
7474 int _pos;
7575 const ArrayList<E> *_p_vec;
7676 };
77- template < typename E>
78- class ArrayList :
79- public virtual AbstractList<E>,
80- public virtual Serializable ,
81- public virtual Cloneable ,
82- // public virtual List<E> ,
83- public virtual RandomAccess {
77+
78+ template < typename E>
79+ class ArrayList : public AbstractList <E>,
80+ public virtual List<E> ,
81+ public virtual Serializable ,
82+ public virtual Cloneable ,
83+ public virtual RandomAccess {
8484 private:
8585 std::vector<E> original;
8686
@@ -89,7 +89,6 @@ namespace Java {
8989 * Constructs an empty list
9090 */
9191 ArrayList () {
92-
9392 }
9493
9594 /* *
@@ -98,7 +97,6 @@ namespace Java {
9897 * @param c
9998 */
10099 ArrayList (Collection<E> &c) {
101-
102100 }
103101
104102 /* *
@@ -197,7 +195,7 @@ namespace Java {
197195 *
198196 * @return Object
199197 */
200- Object & clone () {
198+ Object clone () {
201199 // TODO
202200 Object c;
203201 return c;
@@ -214,6 +212,15 @@ namespace Java {
214212 return true ;
215213 }
216214
215+ /* *
216+ *
217+ * @param c
218+ * @return
219+ */
220+ virtual boolean containsAll (Collection<Object> &c) const {
221+ // TODO
222+ }
223+
217224 /* *
218225 * Increases the capacity of this ArrayList instance, if necessary,
219226 * to ensure that it can hold at least the number of elements specified by
@@ -241,10 +248,10 @@ namespace Java {
241248 * @param index
242249 * @return
243250 */
244- E & get (int index) const {
251+ E get (int index) const {
245252 if (index < 0 ) return (E&)this ->original .at (0 );
246253 if (index > this ->size () - 1 ) return (E&)this ->original .at (this ->size () - 1 );
247- return (E&) original.at (index);
254+ return original.at (index);
248255 }
249256
250257 /* *
@@ -296,7 +303,6 @@ namespace Java {
296303 * @return Address of ListIterator<E>
297304 */
298305 ListIterator<E> &listIterator () const {
299- // TODO
300306 ListIterator<E> *listIterator = new ListIterator<E>();
301307 return *listIterator;
302308 }
@@ -309,7 +315,6 @@ namespace Java {
309315 * @return Address of ListIterator<E>
310316 */
311317 ListIterator<E> &listIterator (int index) const {
312- // TODO
313318 ListIterator<E> *listIterator = new ListIterator<E>();
314319 return *listIterator;
315320 }
@@ -320,10 +325,11 @@ namespace Java {
320325 * @param index
321326 * @return Address of element
322327 */
323- E &remove (int index) {
324- // TODO
325- E *e = new E ();
326- return *e;
328+ E remove (int index) {
329+ if (index < 0 || index >= this ->size ()) {
330+ // FIXME: throw exception
331+ }
332+
327333 }
328334
329335 /* *
@@ -391,10 +397,9 @@ namespace Java {
391397 * @param element
392398 * @return Adress of E
393399 */
394- E &set (int index, E &element) {
395- // TODO
396- E *e = new E ();
397- return *e;
400+ E set (int index, E &element) {
401+ E e;
402+ return e;
398403 }
399404
400405 /* *
@@ -426,19 +431,19 @@ namespace Java {
426431 return *spliterator;
427432 }
428433
429- // List<E> &subList(int fromIndex, int toIndex) const {
430- // // TODO
431- // List<E> *list = new ArrayList<E>();
432- // return *list;
433- // }
434+ // List<E> &subList(int fromIndex, int toIndex) const {
435+ // // TODO
436+ // List<E> *list = new ArrayList<E>();
437+ // return *list;
438+ // }
434439
435440 /* *
436441 * Returns an array containing all of the elements in this
437442 * list in proper sequence (from first to last element).
438443 *
439444 * @return Array<Object>
440445 */
441- Array<Object> & toArray () {
446+ Array<Object> toArray () {
442447 // TODO
443448 Array<Object> objects;
444449 return objects;
@@ -476,7 +481,15 @@ namespace Java {
476481 return (string) " " ;
477482 }
478483
479- protected:
484+ int hashCode () const {
485+ // TODO
486+ }
487+
488+ boolean equals (const Object &o) const {
489+ // TODO
490+ }
491+
492+ protected:
480493 /* *
481494 * Removes from this list all of the elements
482495 * whose index is between fromIndex, inclusive, and toIndex, exclusive.
@@ -489,9 +502,8 @@ namespace Java {
489502 // TODO
490503 }
491504 };
492-
493- template <typename E>
494505
506+ template <typename E>
495507 class SubList : public virtual AbstractList<E> {
496508 private:
497509 AbstractList<E> l;
0 commit comments