View Javadoc
1   /*
2    * ============================================================================
3    * Project betoffice-storage
4    * Copyright (c) 2000-2016 by Andre Winkler. All rights reserved.
5    * ============================================================================
6    *          GNU GENERAL PUBLIC LICENSE
7    *  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
8    *
9    *   This program is free software; you can redistribute it and/or modify
10   *   it under the terms of the GNU General Public License as published by
11   *   the Free Software Foundation; either version 2 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 General Public License
20   *   along with this program; if not, write to the Free Software
21   *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
22   *
23   */
24  
25  package de.winkler.betoffice.dao;
26  
27  import java.util.List;
28  import java.util.Optional;
29  
30  import de.winkler.betoffice.storage.Game;
31  import de.winkler.betoffice.storage.GameList;
32  import de.winkler.betoffice.storage.Team;
33  
34  /**
35   * Dieses DAO sucht nach bestimmten Spielpaarungen.
36   *
37   * @author by Andre Winkler
38   */
39  public interface MatchDao extends CommonDao<Game> {
40  
41      /**
42       * Sucht nach einer bestimmten Spielpaarung für einen Spieltag.
43       *
44       * @param round
45       *            Der zu untersuchende Spieltag.
46       * @param homeTeam
47       *            Die Heimmannschaft.
48       * @param guestTeam
49       *            Die Gastmannschaft.
50       * @return Das gefundene Spiel oder <code>null</code>, wenn kein Spiel mit
51       *         diesem Bedingungen vorhanden.
52       */
53      public Optional<Game> find(GameList round, Team homeTeam, Team guestTeam);
54  
55      /**
56       * Sucht nach allen Spielpaarungen mit der beteiligten Heimmannschaft.
57       *
58       * @param homeTeam
59       *            Die gesuchte Heimmannschaft.
60       * @return Eine Liste von {@link de.winkler.betoffice.storage.Game}
61       *         Objekten.
62       */
63      public List<Game> findByHomeTeam(Team homeTeam);
64  
65      /**
66       * Sucht nach allen Spielpaarungen mit der beteiligten Gastmannschaft.
67       *
68       * @param guestTeam
69       *            Die gesuchte Gastmannschaft.
70       * @return Eine Liste von {@link de.winkler.betoffice.storage.Game}
71       *         Objekten.
72       */
73      public List<Game> findByGuestTeam(Team guestTeam);
74  
75      /**
76       * Sucht nach allen Spielpaarungen mit der beteiligten Heim- und
77       * Gastmannschaft.
78       *
79       * @param homeTeam
80       *            Die gesuchte Heimmannschaft.
81       * @param guestTeam
82       *            Die gesuchte Gastmannschaft.
83       * @return Eine Liste von {@link de.winkler.betoffice.storage.Game}
84       *         Objekten.
85       */
86      public List<Game> find(Team homeTeam, Team guestTeam);
87  
88      /**
89       * Sucht nach allen Spielpaarungen mit den beteiligten Mannschaften.
90       *
91       * @param team1
92       *            Die erste gesuchte Mannschaft (Heim wie auswärts).
93       * @param team2
94       *            Die zweite gesuchte Mannschaft (Heim wie auswärts).
95       * @return Eine Liste von {@link de.winkler.betoffice.storage.Game}
96       *         Objekten.
97       */
98      public List<Game> findAll(Team team1, Team team2);
99  
100     /**
101      * Legt eine neue Spielpaarung persistent an.
102      *
103      * @param match
104      *            Eine Spielpaarung.
105      */
106     public void save(Game match);
107 
108     /**
109      * Legt mehrere neue Spielpaarungen an.
110      *
111      * @param matches
112      *            Eine Liste von Spielpaarungen.
113      */
114     public void saveAll(List<Game> matches);
115 
116     /**
117      * Eine Update-Operation.
118      *
119      * @param match
120      *            Eine Spielpaarung.
121      */
122     public void update(Game match);
123 
124     /**
125      * Löscht eine Spielpaarung.
126      *
127      * @param match
128      *            Die zu löschende Spielpaarung.
129      */
130     public void delete(Game match);
131 
132     /**
133      * Löscht alle übergebenen Spielpaarungen.
134      *
135      * @param matches
136      *            Die zu Spielpaarungen.
137      */
138     public void deleteAll(List<Game> matches);
139 
140 }