View Javadoc
1   package fr.ifremer.tutti.persistence.model;
2   
3   /*
4    * #%L
5    * Tutti :: Persistence
6    * $Id:$
7    * $HeadURL:$
8    * %%
9    * Copyright (C) 2012 - 2015 Ifremer
10   * %%
11   * This program is free software: you can redistribute it and/or modify
12   * it under the terms of the GNU General Public License as
13   * published by the Free Software Foundation, either version 3 of the
14   * License, or (at your option) any later version.
15   * 
16   * This program is distributed in the hope that it will be useful,
17   * but WITHOUT ANY WARRANTY; without even the implied warranty of
18   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19   * GNU General Public License for more details.
20   * 
21   * You should have received a copy of the GNU General Public
22   * License along with this program.  If not, see
23   * <http://www.gnu.org/licenses/gpl-3.0.html>.
24   * #L%
25   */
26  
27  import com.google.common.collect.ImmutableSet;
28  import fr.ifremer.tutti.persistence.entities.data.Program;
29  
30  import java.util.Iterator;
31  import java.util.Set;
32  
33  /**
34   * Created on 3/29/15.
35   *
36   * @author Tony Chemit - chemit@codelutin.com
37   * @since 3.14.3
38   */
39  public class ProgramDataModel extends DataModelSupport implements Iterable<CruiseDataModel> {
40  
41      private static final long serialVersionUID = 1L;
42  
43      private final Set<CruiseDataModel> cruises;
44  
45      public ProgramDataModel(Program program, Set<CruiseDataModel> cruises) {
46          this(program.getId(), program.getName(), cruises);
47      }
48  
49      public ProgramDataModel(String id, String label, Set<CruiseDataModel> cruises) {
50          super(id, label);
51          this.cruises = ImmutableSet.copyOf(cruises);
52      }
53  
54      public int size() {
55          return cruises.size();
56      }
57  
58      public int getNbOperations() {
59          int result = 0;
60          for (CruiseDataModel cruise : this) {
61              result += cruise.size();
62          }
63          return result;
64      }
65  
66      @Override
67      public Iterator<CruiseDataModel> iterator() {
68          return cruises.iterator();
69      }
70  
71      public CruiseDataModel getCruise(String id) {
72  
73          CruiseDataModel result = null;
74          for (CruiseDataModel cruise : this) {
75  
76              if (id.equals(cruise.getId())) {
77                  result = cruise;
78                  break;
79              }
80          }
81          return result;
82  
83      }
84  
85  }