View Javadoc

1   /*
2    * Copyright (c) 2003-2008 by Cosylab d. d.
3    *
4    * This file is part of CosyBeans.
5    *
6    * CosyBeans is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * CosyBeans is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with CosyBeans.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  package com.cosylab.gui.displayers;
21  
22  import java.beans.PropertyVetoException;
23  
24  
25  /**
26   * <code>DataSource</code>  is interface for generic data source. Data source
27   * source dispatches dynamic value updates to registered data consumers.
28   *
29   * @author <a href="mailto:igor.kriznar@cosylab.com">Igor Kriznar</a>
30   * @version $Id: DataSource.java,v 1.4 2008-04-22 12:31:02 jbobnar Exp $
31   *
32   * @see com.cosylab.gui.displayers2.DataConsumer
33   * @since Nov 24, 2003.
34   */
35  public interface DataSource {
36      /**
37       * Registers data consumer at this data source. This data source can denay
38       * consumer by throwing <code>PropertyVetoException</code> if consumer
39       * does not provide necessary <code>DataConsumer</code> type.
40       *
41       * @param consumer the data consumer to be regitered at this data source
42       *
43       * @see DataConsumer#getDataConsumer(Class)
44       */
45      public void addConsumer(DataConsumer consumer) throws PropertyVetoException;
46  
47      /**
48       * Deregisters data consumer from this data source.
49       *
50       * @param consumer data consumer to be deregistered
51       */
52      public void removeConsumer(DataConsumer consumer);
53  
54      /**
55       * Returns array of registered data consumer.
56       *
57       * @return array of registered data consumer
58       */
59      public DataConsumer[] getConsumers();
60  
61      /**
62       * Returns the array of consumer types, which are acceptable by this data
63       * source.
64       *
65       * @return the array of acceptable data source types
66       */
67      public Class<DataConsumer>[] getAcceptableConsumerTypes();
68  
69      /**
70       * Removes all consumers from data source and releases all resources
71       * and bindings allocated inside datasource to the consumers.
72       *
73       */
74      public void removeAllConsumers();
75  }
76  
77  
78  /* __oOo__ */