01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License version 2
11: * as published by the Free Software Foundation.
12: *
13: * Resin Open Source is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
16: * of NON-INFRINGEMENT. See the GNU General Public License for more
17: * details.
18: *
19: * You should have received a copy of the GNU General Public License
20: * along with Resin Open Source; if not, write to the
21: *
22: * Free Software Foundation, Inc.
23: * 59 Temple Place, Suite 330
24: * Boston, MA 02111-1307 USA
25: *
26: * @author Scott Ferguson
27: */
28:
29: package javax.faces.model;
30:
31: public abstract class DataModel {
32: private static final DataModelListener[] NULL = new DataModelListener[0];
33:
34: private DataModelListener[] _listeners = NULL;
35:
36: public abstract boolean isRowAvailable();
37:
38: public abstract int getRowCount();
39:
40: public abstract Object getRowData();
41:
42: public abstract int getRowIndex();
43:
44: public abstract void setRowIndex(int rowIndex);
45:
46: public abstract Object getWrappedData();
47:
48: public abstract void setWrappedData(Object data);
49:
50: public void addDataModelListener(DataModelListener listener) {
51: if (listener == null)
52: throw new NullPointerException();
53:
54: DataModelListener[] newListeners = new DataModelListener[_listeners.length + 1];
55:
56: System.arraycopy(_listeners, 0, newListeners, 0,
57: _listeners.length);
58: newListeners[_listeners.length] = listener;
59:
60: _listeners = newListeners;
61: }
62:
63: public void removeDataModelListener(DataModelListener listener) {
64: if (listener == null)
65: throw new NullPointerException();
66:
67: for (int i = _listeners.length - 1; i >= 0; i--) {
68: if (_listeners[i].equals(listener)) {
69: DataModelListener[] newListeners = new DataModelListener[_listeners.length - 1];
70:
71: System.arraycopy(_listeners, 0, newListeners, 0, i);
72: System.arraycopy(_listeners, i + 1, newListeners, i,
73: _listeners.length - i - 1);
74:
75: _listeners = newListeners;
76:
77: return;
78: }
79: }
80: }
81:
82: public DataModelListener[] getDataModelListeners() {
83: return _listeners;
84: }
85: }
|