View Javadoc
1   package fr.ifremer.dali.ui.swing.util.map.layer;
2   
3   /*-
4    * #%L
5    * Dali :: UI
6    * %%
7    * Copyright (C) 2014 - 2017 Ifremer
8    * %%
9    * This program is free software: you can redistribute it and/or modify
10   * it under the terms of the GNU Affero General Public License as published by
11   * the Free Software Foundation, either version 3 of the License, or
12   * (at your option) any later version.
13   * 
14   * This program is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17   * GNU General Public License for more details.
18   * 
19   * You should have received a copy of the GNU Affero General Public License
20   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21   * #L%
22   */
23  
24  import org.geotools.data.FeatureSource;
25  import org.geotools.map.FeatureLayer;
26  import org.geotools.styling.Style;
27  
28  /**
29   * Encapsulating class indicating a layer of data (!= map layer)
30   *
31   * The title is used to compute the hash code
32   *
33   * @author peck7 on 05/09/2017.
34   */
35  public class DataFeatureLayer extends FeatureLayer implements DataLayer{
36  
37      /**
38       * The holder of this data layer
39       */
40      private final DataLayerCollection dataLayerCollection;
41  
42      private final Integer id;
43  
44      public DataFeatureLayer(DataLayerCollection dataLayerCollection, Integer id, FeatureSource featureSource, Style style, String title) {
45          super(featureSource, style, title);
46          assert title != null;
47          this.dataLayerCollection = dataLayerCollection;
48          this.id = id;
49      }
50  
51      public DataLayerCollection getDataLayerCollection() {
52          return dataLayerCollection;
53      }
54  
55      public Integer getId() {
56          return id;
57      }
58  
59      /**
60       * the hash code is compute by the title
61       * @return hash code
62       */
63      @Override
64      public int hashCode() {
65          return getTitle().hashCode();
66      }
67  
68      @Override
69      public boolean equals(Object obj) {
70          return obj instanceof DataFeatureLayer && hashCode() == obj.hashCode();
71      }
72  
73  }