View Javadoc

1   /*
2   Copyright 2010 James Pether Sörling Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. 
3   	$Id
4   */
5   
6   package com.hack23.cia.service.impl.common;
7   
8   import java.util.List;
9   
10  import org.springframework.transaction.annotation.Propagation;
11  import org.springframework.transaction.annotation.Transactional;
12  
13  import com.hack23.cia.model.application.impl.common.ImageContent;
14  import com.hack23.cia.model.application.impl.common.Language;
15  import com.hack23.cia.model.application.impl.common.ParliamentChart;
16  import com.hack23.cia.model.sweden.impl.Ballot;
17  import com.hack23.cia.model.sweden.impl.CommitteeReport;
18  import com.hack23.cia.model.sweden.impl.ParliamentMember;
19  import com.hack23.cia.model.sweden.impl.ParliamentMemberVoteCompareResult;
20  import com.hack23.cia.model.sweden.impl.PoliticalParty;
21  import com.hack23.cia.model.sweden.impl.RegisterInformation;
22  import com.hack23.cia.model.sweden.impl.Vote;
23  import com.hack23.cia.service.dao.BallotDAO;
24  import com.hack23.cia.service.dao.CommitteeReportDAO;
25  import com.hack23.cia.service.dao.ParliamentMemberDAO;
26  import com.hack23.cia.service.dao.PoliticalPartyDAO;
27  import com.hack23.cia.service.dao.ResourceDAO;
28  import com.hack23.cia.service.impl.agent.sweden.ParliamentMemberRegisterAgent;
29  
30  /***
31   * The Class ParliamentServiceImpl.
32   */
33  @Transactional(propagation=Propagation.REQUIRED)
34  public class ParliamentServiceImpl implements ParliamentService {
35  
36  	/*** The ballot dao. */
37      private final BallotDAO ballotDAO;
38  	
39      /*** The commitee report dao. */
40      private final CommitteeReportDAO commiteeReportDAO;
41  
42      /*** The parliament member dao. */
43      private final ParliamentMemberDAO parliamentMemberDAO;
44  
45      /*** The parliament member register agent. */
46      private final ParliamentMemberRegisterAgent parliamentMemberRegisterAgent;
47  
48      /*** The political party dao. */
49  	private final PoliticalPartyDAO politicalPartyDAO;
50      
51      /*** The resource dao. */
52      private final ResourceDAO resourceDAO;
53      
54      
55      
56      /***
57       * Instantiates a new parliament service impl.
58       *
59       * @param politicalPartyDAO the political party dao
60       * @param commiteeReportDAO the commitee report dao
61       * @param parliamentMemberDAO the parliament member dao
62       * @param parliamentMemberRegisterAgent the parliament member register agent
63       * @param resourceDAO the resource dao
64       * @param ballotDAO the ballot dao
65       */
66      public ParliamentServiceImpl(final PoliticalPartyDAO politicalPartyDAO,final CommitteeReportDAO commiteeReportDAO,
67              final ParliamentMemberDAO parliamentMemberDAO,
68              final ParliamentMemberRegisterAgent parliamentMemberRegisterAgent,final ResourceDAO resourceDAO,final BallotDAO ballotDAO) {
69          super();
70  		this.politicalPartyDAO = politicalPartyDAO;
71          this.commiteeReportDAO = commiteeReportDAO;
72          this.parliamentMemberDAO = parliamentMemberDAO;
73          this.parliamentMemberRegisterAgent = parliamentMemberRegisterAgent;
74  		this.resourceDAO = resourceDAO;
75  		this.ballotDAO = ballotDAO;
76  
77          try {
78              this.parliamentMemberRegisterAgent.init();
79          } catch (final Exception e) {
80              // TODO Auto-generated catch block
81              e.printStackTrace();
82          }
83      }
84  
85      /*
86       * (non-Javadoc)
87       * 
88       * @see
89       * com.hack23.cia.service.InformationService#findLastVotes(java.lang.Long)
90       */
91      @Override
92      public final List<Vote> findLastVotes(final Long id) {
93          return parliamentMemberDAO.findLastVotes(id);
94      }
95  
96      /*
97       * (non-Javadoc)
98       * 
99       * @see
100      * com.hack23.cia.service.InformationService#findLastVotesByBallotId(java
101      * .lang.Long)
102      */
103     @Override
104     public final List<Vote> findLastVotesByBallotId(final Long id) {
105         return parliamentMemberDAO.findLastVotesByBallotId(id);
106     }
107 
108     /*
109      * (non-Javadoc)
110      * 
111      * @see
112      * com.hack23.cia.service.InformationService#findParliamentMembersByName
113      * (java.lang.String)
114      */
115     @Override
116     public final List<ParliamentMember> findParliamentMembersByName(
117             final String searchString) {
118 
119         return parliamentMemberDAO.findListByName(searchString);
120     }
121 
122     /* (non-Javadoc)
123 	 * @see com.hack23.cia.service.impl.common.ParliamentService#findPoliticalPartyByShortCode(java.lang.String)
124 	 */
125 	@Override
126 	public final PoliticalParty findPoliticalPartyByShortCode(final String partyShortCode) {
127 		return politicalPartyDAO.findByShortCode(partyShortCode);
128 	}
129 
130     /*
131      * (non-Javadoc)
132      * 
133      * @see com.hack23.cia.service.InformationService#findVotes(java.lang.Long)
134      */
135     @Override
136     public final List<Vote> findVotes(final Long id) {
137         return parliamentMemberDAO.findVotes(id);
138     }
139 
140     /*
141      * (non-Javadoc)
142      * 
143      * @see com.hack23.cia.service.InformationService#getAllBetankanden()
144      */
145     @Override
146     public final List<CommitteeReport> getAllCommiteeReports() {
147         return commiteeReportDAO.getAllLastDecided();
148     }
149 
150     /*
151      * (non-Javadoc)
152      * 
153      * @see com.hack23.cia.service.InformationService#getCurrentList()
154      */
155     @Override
156 	public final List<ParliamentMember> getCurrentList() {
157         return parliamentMemberDAO.getCurrentList();
158     }
159 
160     /*
161      * (non-Javadoc)
162      * 
163      * @see
164      * com.hack23.cia.service.InformationService#getCurrentTopListAbsent(int)
165      */
166     @Override
167     public final List<ParliamentMember> getCurrentTopListAbsent(final int number) {
168         return parliamentMemberDAO.getCurrentTopListAbsent(number);
169 
170     }
171 
172     /*
173      * (non-Javadoc)
174      * 
175      * @see
176      * com.hack23.cia.service.InformationService#getCurrentTopListAbsentInParty
177      * (int, java.lang.String)
178      */
179     @Override
180     public final List<ParliamentMember> getCurrentTopListAbsentInParty(
181             final int i, final String party) {
182         return parliamentMemberDAO.getCurrentTopListAbsentByParty(i, party);
183     }
184 
185     /*
186      * (non-Javadoc)
187      * 
188      * @see
189      * com.hack23.cia.service.InformationService#getCurrentTopListLosers(int)
190      */
191     @Override
192     public final List<ParliamentMember> getCurrentTopListLosers(final int i) {
193         return parliamentMemberDAO.getCurrentTopListLosers(i);
194     }
195 
196     /*
197      * (non-Javadoc)
198      * 
199      * @see
200      * com.hack23.cia.service.InformationService#getCurrentTopListLosersInParty
201      * (int, java.lang.String)
202      */
203     @Override
204     public final List<ParliamentMember> getCurrentTopListLosersInParty(
205             final int i, final String party) {
206         return parliamentMemberDAO.getCurrentTopListLosersByParty(i, party);
207     }
208 
209     /*
210      * (non-Javadoc)
211      * 
212      * @see
213      * com.hack23.cia.service.InformationService#getCurrentTopListLoyal(int)
214      */
215     @Override
216     public final List<ParliamentMember> getCurrentTopListLoyal(final int i) {
217         return parliamentMemberDAO.getCurrentTopListLoyal(i);
218     }
219 
220     /*
221      * (non-Javadoc)
222      * 
223      * @see
224      * com.hack23.cia.service.InformationService#getCurrentTopListLoyalInParty
225      * (int, java.lang.String)
226      */
227     @Override
228     public final List<ParliamentMember> getCurrentTopListLoyalInParty(
229             final int i, final String party) {
230         return parliamentMemberDAO.getCurrentTopListLoyalByParty(i, party);
231     }
232 
233     /*
234      * (non-Javadoc)
235      * 
236      * @see
237      * com.hack23.cia.service.InformationService#getCurrentTopListPresent(int)
238      */
239     @Override
240     public final List<ParliamentMember> getCurrentTopListPresent(final int i) {
241         return parliamentMemberDAO.getCurrentTopListPresent(i);
242     }
243 
244     /*
245      * (non-Javadoc)
246      * 
247      * @see
248      * com.hack23.cia.service.InformationService#getCurrentTopListPresentInParty
249      * (int, java.lang.String)
250      */
251     @Override
252     public final List<ParliamentMember> getCurrentTopListPresentInParty(
253             final int i, final String party) {
254         return parliamentMemberDAO.getCurrentTopListPresentByParty(i, party);
255     }
256 
257     /*
258      * (non-Javadoc)
259      * 
260      * @see
261      * com.hack23.cia.service.InformationService#getCurrentTopListRebels(int)
262      */
263     @Override
264     public final List<ParliamentMember> getCurrentTopListRebels(final int i) {
265         return parliamentMemberDAO.getCurrentTopListRebels(i);
266     }
267 
268     /*
269      * (non-Javadoc)
270      * 
271      * @see
272      * com.hack23.cia.service.InformationService#getCurrentTopListRebelsInParty
273      * (int, java.lang.String)
274      */
275     @Override
276     public final List<ParliamentMember> getCurrentTopListRebelsInParty(
277             final int i, final String party) {
278         return parliamentMemberDAO.getCurrentTopListRebelsByParty(i, party);
279     }
280 
281     /*
282      * (non-Javadoc)
283      * 
284      * @see
285      * com.hack23.cia.service.InformationService#getCurrentTopListWinners(int)
286      */
287     @Override
288     public final List<ParliamentMember> getCurrentTopListWinners(final int i) {
289         return parliamentMemberDAO.getCurrentTopListWinners(i);
290     }
291 
292     /*
293      * (non-Javadoc)
294      * 
295      * @see
296      * com.hack23.cia.service.InformationService#getCurrentTopListWinnersInParty
297      * (int, java.lang.String)
298      */
299     @Override
300     public final List<ParliamentMember> getCurrentTopListWinnersInParty(
301             final int i, final String party) {
302         return parliamentMemberDAO.getCurrentTopListWinnersByParty(i, party);
303     }
304 
305     /* (non-Javadoc)
306 	 * @see com.hack23.cia.service.impl.common.ParliamentService#getGraph(com.hack23.cia.model.application.impl.common.ParliamentChart, java.lang.Long, com.hack23.cia.model.application.impl.common.Language)
307 	 */
308 	@Override
309 	public final ImageContent getGraph(final ParliamentChart chart, final Ballot ballot,
310 			final Language language) {
311 		return resourceDAO.getImageContentByFileName(ParliamentChart.getFileName(chart, ballot, language));
312 	}
313 
314     /* (non-Javadoc)
315 	 * @see com.hack23.cia.service.impl.common.ParliamentService#getGraph(com.hack23.cia.model.application.impl.common.ParliamentChart, com.hack23.cia.model.sweden.impl.CommitteeReport, com.hack23.cia.model.application.impl.common.Language)
316 	 */
317 	@Override
318 	public final ImageContent getGraph(final ParliamentChart chart, final CommitteeReport committeeReport,
319 			final Language language) {
320 		return resourceDAO.getImageContentByFileName(ParliamentChart.getFileName(chart, committeeReport, language));
321 	}
322 
323     /* (non-Javadoc)
324 	 * @see com.hack23.cia.service.impl.common.ParliamentService#getGraph(com.hack23.cia.model.application.impl.common.ParliamentChart)
325 	 */
326 	@Override
327 	public final ImageContent getGraph(final ParliamentChart chart,final Language language) {
328 		return resourceDAO.getImageContentByFileName(ParliamentChart.getFileName(chart, language));
329 	}
330 
331     /* (non-Javadoc)
332 	 * @see com.hack23.cia.service.impl.common.ParliamentService#getGraph(com.hack23.cia.model.application.impl.common.ParliamentChart, com.hack23.cia.model.sweden.impl.ParliamentMember)
333 	 */
334 	@Override
335 	public final ImageContent getGraph(final ParliamentChart chart,final ParliamentMember parliamentMember,final Language language) {
336 		return resourceDAO.getImageContentByFileName(ParliamentChart.getFileName(chart, parliamentMember, language));
337 	}
338 
339     /* (non-Javadoc)
340 	 * @see com.hack23.cia.service.impl.common.ParliamentService#getGraph(com.hack23.cia.model.application.impl.common.ParliamentChart, com.hack23.cia.model.sweden.impl.PoliticalParty)
341 	 */
342 	@Override
343 	public final ImageContent getGraph(final ParliamentChart chart,final PoliticalParty politicalParty,final Language language) {
344 		return resourceDAO.getImageContentByFileName(ParliamentChart.getFileName(chart, politicalParty, language));
345 	}
346 
347     /*
348      * (non-Javadoc)
349      * 
350      * @see
351      * com.hack23.cia.service.InformationService#getLastDecidedCommiteeReports()
352      */
353     @Override
354     public final List<CommitteeReport> getLastDecidedCommiteeReports() {
355         return commiteeReportDAO.getLastDecided();
356     }
357 
358     /*
359      * (non-Javadoc)
360      * 
361      * @see
362      * com.hack23.cia.service.InformationService#getParliamentMember(com.hack23
363      * .cia.model.sweden.ParliamentMember)
364      */
365     @Override
366     public final ParliamentMember getParliamentMember(
367             final Long parliamentMemberId) {
368         return this.parliamentMemberDAO.load(parliamentMemberId);
369     }
370 
371 	/*
372      * (non-Javadoc)
373      * 
374      * @see
375      * com.hack23.cia.service.InformationService#getParliamentMemberEnemies(
376      * com.hack23.cia.model.sweden.ParliamentMember)
377      */
378     @Override
379     public final List<ParliamentMemberVoteCompareResult> getParliamentMemberEnemies(
380             final ParliamentMember parliamentMember) {
381         return parliamentMemberDAO.getTopEnemies(parliamentMember);
382     }
383 	
384 	/*
385      * (non-Javadoc)
386      * 
387      * @see
388      * com.hack23.cia.service.InformationService#getParliamentMemberFriends(
389      * com.hack23.cia.model.sweden.ParliamentMember)
390      */
391     @Override
392     public final List<ParliamentMemberVoteCompareResult> getParliamentMemberFriends(
393             final ParliamentMember parliamentMember) {
394         return parliamentMemberDAO.getTopFriends(parliamentMember);
395     }
396 	
397 	/*
398      * (non-Javadoc)
399      * 
400      * @see
401      * com.hack23.cia.service.InformationService#getParliamentMemberPartyEnemies
402      * (com.hack23.cia.model.sweden.ParliamentMember)
403      */
404     @Override
405     public final List<ParliamentMemberVoteCompareResult> getParliamentMemberPartyEnemies(
406             final ParliamentMember parliamentMember) {
407         return this.parliamentMemberDAO
408                 .getTopEnemiesSameParty(parliamentMember);
409     }
410 
411 	/*
412      * (non-Javadoc)
413      * 
414      * @see
415      * com.hack23.cia.service.InformationService#getParliamentMemberPartyFriends
416      * (com.hack23.cia.model.sweden.ParliamentMember)
417      */
418     @Override
419     public final List<ParliamentMemberVoteCompareResult> getParliamentMemberPartyFriends(
420             final ParliamentMember parliamentMember) {
421         return this.parliamentMemberDAO
422                 .getTopFriendsInSameParty(parliamentMember);
423     }
424 
425 	/* (non-Javadoc)
426 	 * @see com.hack23.cia.service.impl.common.ParliamentService#getPoliticalParties()
427 	 */
428 	@Override
429 	public final List<PoliticalParty> getPoliticalParties() {
430 		return politicalPartyDAO.getAll();
431 	}	
432 	
433 	/* (non-Javadoc)
434 	 * @see com.hack23.cia.service.impl.common.ParliamentService#loadBallotById(java.lang.Long)
435 	 */
436 	@Override
437 	public final Ballot loadBallotById(final Long ballotId) {
438 		return ballotDAO.load(ballotId);
439 	}
440 
441 	/*
442      * (non-Javadoc)
443      * 
444      * @see
445      * com.hack23.cia.service.user.UserService#loadCommitteeReportById(java.
446      * lang.Long)
447      */
448     @Override
449     public final CommitteeReport loadCommitteeReportById(
450             final Long committeeReportId) {
451         return commiteeReportDAO.load(committeeReportId);
452     }
453 
454 	/*
455      * (non-Javadoc)
456      * 
457      * @see
458      * com.hack23.cia.service.InformationService#lookupRegisterInformation(com
459      * .hack23.cia.model.sweden.ParliamentMember)
460      */
461     @Override
462     public final RegisterInformation lookupRegisterInformation(
463             final ParliamentMember member) {
464         return parliamentMemberRegisterAgent.lookupRegisterInformation(member);
465     }	
466 
467 }