001 /* 002 * Copyright (C) 2008-2010 by Holger Arndt 003 * 004 * This file is part of the Universal Java Matrix Package (UJMP). 005 * See the NOTICE file distributed with this work for additional 006 * information regarding copyright ownership and licensing. 007 * 008 * UJMP is free software; you can redistribute it and/or modify 009 * it under the terms of the GNU Lesser General Public License as 010 * published by the Free Software Foundation; either version 2 011 * of the License, or (at your option) any later version. 012 * 013 * UJMP is distributed in the hope that it will be useful, 014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 016 * GNU Lesser General Public License for more details. 017 * 018 * You should have received a copy of the GNU Lesser General Public 019 * License along with UJMP; if not, write to the 020 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 021 * Boston, MA 02110-1301 USA 022 */ 023 024 package org.ujmp.core.collections; 025 026 import java.io.Serializable; 027 028 public abstract class AbstractList<T> extends java.util.AbstractList<T> implements Serializable { 029 private static final long serialVersionUID = 8080725473401179259L; 030 031 // do not create writeObject and readObject! 032 // it will not work when additional data from a subclass is needed 033 // to create the list 034 // private void readObject(ObjectInputStream s) throws IOException, 035 // ClassNotFoundException { 036 // s.defaultReadObject(); 037 // int size = s.readInt(); 038 // for (int i = 0; i < size; i++) { 039 // try { 040 // T t = (T) s.readObject(); 041 // add(t); 042 // } catch (OptionalDataException e) { 043 // return; 044 // } 045 // } 046 // } 047 048 // do not create writeObject and readObject! 049 // it will not work when additional data from a subclass is needed 050 // to create the list 051 // private void writeObject(ObjectOutputStream s) throws IOException, 052 // MatrixException { 053 // s.defaultWriteObject(); 054 // s.writeInt(size()); 055 // for (Object t : this) { 056 // s.writeObject(t); 057 // } 058 // } 059 060 public abstract T get(int index); 061 062 public abstract boolean add(T t); 063 064 public abstract void add(int index, T element); 065 066 public abstract T remove(int index); 067 068 public abstract T set(int index, T element); 069 070 }