001// Copyright 2004, 2005 The Apache Software Foundation
002//
003// Licensed under the Apache License, Version 2.0 (the "License");
004// you may not use this file except in compliance with the License.
005// You may obtain a copy of the License at
006//
007//     http://www.apache.org/licenses/LICENSE-2.0
008//
009// Unless required by applicable law or agreed to in writing, software
010// distributed under the License is distributed on an "AS IS" BASIS,
011// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
012// See the License for the specific language governing permissions and
013// limitations under the License.
014
015package org.apache.tapestry.contrib.table.model;
016
017import java.util.Iterator;
018
019/**
020 * A model of the table's data
021 * This model need not be used. Implementations may choose to
022 * access data via an abstraction.
023 * 
024 * @author mindbridge
025 */
026public interface ITableDataModel
027{
028        /**
029         * Method getRowCount.
030         * @return int the number of rows in the model
031         */
032        int getRowCount();
033
034        /**
035         * Iterates over all of the rows in the model
036         * @return Iterator the iterator for access to the data
037         */
038        Iterator getRows();
039    
040        /**
041         * Method addTableDataModelListener
042     * Adds a listener that is notified when the data in the model is changed
043         * @param objListener the listener to add
044         */
045    void addTableDataModelListener(ITableDataModelListener objListener);
046
047        /**
048         * Method removeTableDataModelListener.
049     * Removes a listener that is notified when the data in the model is changed
050         * @param objListener the listener to remove
051         */
052    void removeTableDataModelListener(ITableDataModelListener objListener);
053    
054}