1 package org.musicontroller;
2
3 import java.awt.GraphicsEnvironment;
4 import java.util.Date;
5
6 import org.apache.log4j.Logger;
7 import org.musicontroller.core.Event;
8 import org.musicontroller.core.Song;
9 import org.musicontroller.dao.Dao;
10 import org.musicontroller.security.IUser;
11
12 public class MusiControllerImpl implements MusiController {
13 private static final Logger LOG = Logger.getLogger(MusiControllerImpl.class);
14
15 private static Dao _dao;
16
17
18
19
20
21
22 static {
23 System.setProperty("java.awt.headless", "true");
24 if(!GraphicsEnvironment.isHeadless()) {
25 LOG.error("Failed to set awt to headless mode.");
26 }
27 }
28
29 public void setDao(Dao dao) {
30 _dao = dao;
31 }
32
33 public Dao getDao() {
34 return _dao;
35 }
36
37 public void saveSongEvent(long songid, int eventid, long userid, Date date) {
38 IUser user = getDao().getUserById(userid);
39 Song song = getDao().getSongById(songid);
40 switch (eventid) {
41 case Event.played :
42 LOG.debug("Adding played-event to songId: "+songid+" for user "+user);
43 song.addPlayedEvent(date,user);
44
45 break;
46 case Event.requested :
47 LOG.debug("Adding requested-event to songId: "+songid+" for user "+user);
48 song.addRequestedEvent(date,user);
49 break;
50 case Event.skipped :
51 LOG.debug("Adding skipped-event to songId: "+songid+" for user "+user);
52 song.addSkippedEvent(date,user);
53 break;
54 case Event.downloaded :
55 LOG.debug("Adding downloaded-event to songId: "+songid+" for user "+user);
56 song.addDownloadedEvent(date,user);
57 break;
58 default :
59 LOG.error("Ignored request to add non-existing event ("+eventid+") to songId: "+songid+" for user "+user);
60 }
61 _dao.save(song);
62 }
63
64 public void saveSongEvent(long songid, int eventid, long userid) {
65 saveSongEvent(songid,eventid,userid,new Date());
66 }
67
68 }