1
2
3
4
5
6 package net.stff.ical.persistance.hibernate;
7
8 import java.util.Collections;
9 import java.util.Date;
10 import java.util.Iterator;
11 import java.util.List;
12 import java.util.Vector;
13
14 import net.stff.ical.beans.ICal;
15 import net.stff.ical.beans.IEvent;
16 import net.stff.ical.persistance.ICalDAO;
17
18 import org.springframework.orm.hibernate.support.HibernateDaoSupport;
19 /***
20 * @author buntekuh
21 *
22 */
23 public class HibernateICalDAO extends HibernateDaoSupport implements ICalDAO {
24
25
26
27
28 public List getCalendars(String user){
29 return getHibernateTemplate().find("from ICal where user=?", user);
30 }
31
32
33
34
35 public List getCalendarNames(String user){
36 return getHibernateTemplate().find("select cal.name from ICal as cal where user='"+user+"'");
37 }
38
39
40
41
42
43 public Long addCalendar(String key, String user){
44 return (Long)getHibernateTemplate().save(new ICal(key, user));
45 }
46
47
48
49
50 public Long addCalendar(ICal cal){
51 return (Long)getHibernateTemplate().save(cal);
52 }
53
54
55
56
57 public ICal getCalendar(String key, String user){
58 List l= getHibernateTemplate().find("from ICal where name='"+key+"' and user='"+user+"'");
59 if ((l == null) || (l.size() != 1)) return null;
60 return (ICal)l.get(0);
61 }
62
63
64
65
66 public void removeCalendar(ICal cal){
67 getHibernateTemplate().delete(cal);
68 getHibernateTemplate().deleteAll(cal.getEvents());
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 }
85
86
87
88
89 public List getEventsForPeriod(Date s, Date e, String user, int which){
90 List v= new Vector();
91 List list= getHibernateTemplate().find("from ICal where shown=1 and user='"+user+"'");
92 if (list == null) return null;
93 Iterator i= list.iterator();
94 while (i.hasNext()){
95 ICal cal= (ICal)i.next();
96 v.addAll(cal.getEventsForPeriod(s, e, which));
97 }
98 Collections.sort(v);
99 return v;
100 }
101
102
103
104 public void updateEvent(IEvent event){
105
106
107 IEvent test= getEvent(event.getUid());
108
109 if (test != null){
110 getHibernateTemplate().update(event);
111 }
112 else{
113 getHibernateTemplate().save(event);
114 }
115 getHibernateTemplate().update(event.getCalendar());
116
117 }
118
119
120
121
122 public IEvent getEvent(String id){
123 return (IEvent)getHibernateTemplate().get(IEvent.class, id);
124 }
125
126
127
128
129 public void removeEvent(IEvent event){
130 getHibernateTemplate().delete(event);
131 }
132
133 public void updateCalendar(String key, String user){
134 ICal cal= getCalendar(key, user);
135 getHibernateTemplate().saveOrUpdate(cal);
136 }
137
138
139 public void updateCalendar(ICal cal){
140 getHibernateTemplate().saveOrUpdate(cal);
141 }
142
143
144 }