Source code: org/roller/business/castor/BookmarkManagerImpl.java
1
2 package org.roller.business.castor;
3
4 import org.roller.RollerException;
5 import org.roller.business.BookmarkManagerBase;
6 import org.roller.business.persistence.PersistenceStrategy;
7 import org.roller.business.persistence.castor.*;
8 import org.roller.model.BookmarkManager;
9 import org.roller.model.UserManager;
10 import org.roller.pojos.BookmarkData;
11 import org.roller.pojos.FolderData;
12 import org.roller.pojos.UserData;
13 import org.roller.pojos.WebsiteData;
14
15 import java.io.Serializable;
16
17
18 /**
19 * BookmarkManager implementation based on Castor JDO.<br />
20 *
21 * <b>Implementation Notes</b><br/>
22 *
23 * Connections returned by getDatabase() and releases by releaseDatabase().<br/>
24 * Public methods create connection and use transaction.<br/>
25 * Private methods need connection and expect existing transaction.<br/>
26 */
27 public class BookmarkManagerImpl extends BookmarkManagerBase
28 implements BookmarkManager, Serializable
29 {
30 //---------------------------------------------------- Startup and Shutdown
31
32 public BookmarkManagerImpl( PersistenceStrategy support, UserManager umgr)
33 throws RollerException
34 {
35 super(umgr);
36 mSupport = (CastorStrategy)support;
37 }
38
39 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
40 public void storeBookmark( BookmarkData data ) throws RollerException
41 {
42 try
43 {
44 data.setFolder( (FolderData)
45 mSupport.retrievePersistentObject(
46 data.getFolder().getId(), FolderData.class) );
47
48 data.getFolder().setWebsite( (WebsiteData)
49 mSupport.retrievePersistentObject(
50 data.getFolder().getWebsite().getId(), WebsiteData.class) );
51
52 data.getFolder().getWebsite().setUser((UserData)
53 mSupport.retrievePersistentObject(
54 data.getFolder().getWebsite().getUser().getId(), UserData.class) );
55
56 mSupport.storePersistentObject( data );
57 }
58 catch (Throwable t)
59 {
60 throw new RollerException(t);
61 }
62 }
63
64 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
65
66 public void storeFolder( FolderData data ) throws RollerException
67 {
68 data.setWebsite( (WebsiteData)
69 mSupport.retrievePersistentObject(
70 data.getWebsite().getId(), WebsiteData.class) );
71
72 data.getWebsite().setUser((UserData)
73 mSupport.retrievePersistentObject(
74 data.getWebsite().getUser().getId(), UserData.class) );
75
76 mSupport.storePersistentObject( data );
77 }
78
79 //---------------------------------------------------------------- Privates
80
81
82 }
83