1 40 package com.mvnforum.admin.importexport.jive; 41 42 import java.sql.Timestamp ; 43 44 import com.mvnforum.admin.*; 45 import net.myvietnam.mvncore.exception.*; 46 47 59 public class JiveForumXML { 60 61 private ForumXML forumXML=null; 62 private boolean forumCreated=false; 63 64 public JiveForumXML() { 65 super(); 66 forumXML=new ForumXML(); 67 forumCreated=false; 68 } 69 70 public void setForumID(String id) { 71 forumXML.setForumID(id); 72 } 73 74 80 public void setForumId(String id) { 81 setForumID(id); 82 } 83 84 public int getForumID() { return forumXML.getForumID(); } 85 86 public int getParentCategoryID() { 87 return forumXML.getParentCategoryID(); 88 } 89 90 private String forumName=null; 91 public void setForumName(String value) throws CreateException { 92 if ( (value==null) || (value.equals("")) ) { 93 throw new CreateException("Cannot create a forum with an empty ForumName."); 94 } 95 this.forumName=value; 96 } 97 98 private String forumDesc=null; 99 public void setForumDescription(String value) throws CreateException { 100 this.forumDesc=value; 101 } 102 103 private String forumCreationDate=null; 104 public void setForumCreationDate(String value) throws CreateException { 105 this.forumCreationDate=value; 106 } 107 108 private String forumModifiedDate=null; 109 public void setForumModifiedDate(String value) throws CreateException { 110 this.forumModifiedDate=value; 111 } 112 113 public void addJiveForum() 114 throws CreateException, DuplicateKeyException, ObjectNotFoundException, 115 DatabaseException, ForeignKeyNotFoundException { 116 121 if (forumCreated) return; 122 if ( (forumName==null) || (forumName.equals("")) ) { 124 throw new CreateException("Cannot create a forum with an empty ForumName."); 125 } else { 126 forumXML.setParentCategoryID(JiveXML.rootCategoryID); 127 String forumPassword=JiveXML.allForumsPassword; 128 129 ImportJive.addMessage("Adding forum \""+forumName+"\"."); 130 forumXML.addForum(null, forumName, forumDesc, 131 forumCreationDate, forumModifiedDate, null, 132 null, null, null, 133 null, null, 134 null, forumPassword, 135 null, null); 136 forumCreated=true; 137 138 JiveXML.addedForum(forumXML); } 140 } 141 142 public void updateAddedThread(ThreadXML threadXML) throws ObjectNotFoundException, 143 DatabaseException { 144 if ((!forumCreated) || (forumXML.getForumID()<0)) return; forumXML.increaseThreadCount(); 146 JiveXML.addedThread(threadXML); } 148 149 public void updateAddedPost(PostXML postXML, String postUsername, Timestamp postCreationDate) 150 throws ObjectNotFoundException, DatabaseException, ForeignKeyNotFoundException { 151 if ((!forumCreated) || (forumXML.getForumID()<0)) return; forumXML.increasePostCount(); 153 forumXML.updateLastPostMemberName(postUsername); 154 forumXML.updateLastPostDate(postCreationDate); 155 JiveXML.addedPost(postXML); } 157 158 public void addJiveForumUser(String usertype, String username, String jivePermission) 159 throws CreateException, DuplicateKeyException, ObjectNotFoundException, 160 DatabaseException, ForeignKeyNotFoundException { 161 if ( (!forumCreated) || (forumXML.getForumID()<0) ) { 162 addJiveForum(); 163 } 164 if (usertype==null) { 165 throw new CreateException("Not enough data to create a member forum-specific permission."); 166 167 } else if (usertype.equalsIgnoreCase("ANONYMOUS")) { 168 int[] perms = JiveXML.convertMemberForumPermission(jivePermission); 169 ImportJive.addMessage("Adding forum-specific permissions for guests."); 170 for (int j=0; j<perms.length; j++) { 171 try { 172 forumXML.addGuestMemberForumPermission(Integer.toString(perms[j])); 173 } catch (DuplicateKeyException e) { 174 179 } 180 } 181 182 } else if (usertype.equalsIgnoreCase("REGISTERED_USERS")) { 183 int[] perms = JiveXML.convertGroupForumPermission(jivePermission); 184 ImportJive.addMessage("Adding forum-specific permissions for registered members."); 185 for (int j=0; j<perms.length; j++) { 186 try { 187 forumXML.addRegisteredMembersGroupForumPermission(Integer.toString(perms[j])); 188 } catch (DuplicateKeyException e) { 189 194 } 195 } 196 197 } else if (usertype.equalsIgnoreCase("USER")) { 198 int[] perms = JiveXML.convertMemberForumPermission(jivePermission); 199 ImportJive.addMessage("Adding forum-specific permissions for member \""+username+"\"."); 200 for (int j=0; j<perms.length; j++) { 201 try { 202 forumXML.addMemberForumPermission(username, Integer.toString(perms[j])); 203 } catch (DuplicateKeyException e) { 204 209 } 210 } 211 } else { 212 throw new CreateException("Invalid usertype. This Jive user forum-specific permission is ignored."); 213 } 214 } 215 216 public void addJiveForumGroup(String groupname, String jivePermission) 217 throws CreateException, DuplicateKeyException, ObjectNotFoundException, 218 DatabaseException, ForeignKeyNotFoundException { 219 if ( (!forumCreated) || (forumXML.getForumID()<0) ) { 220 addJiveForum(); 221 } 222 if ( (groupname==null) || (groupname.equals("")) ) { 223 throw new CreateException("Not enough data to create a group permission."); 224 } else { 225 int[] perms = JiveXML.convertGroupForumPermission(jivePermission); 226 ImportJive.addMessage("Adding forum-specific permissions for group \""+groupname+"\"."); 227 for (int j=0; j<perms.length; j++) { 228 try { 229 forumXML.addGroupForumPermission(groupname, Integer.toString(perms[j])); 230 } catch (DuplicateKeyException e) { 231 236 } 237 } 238 } 239 } 240 241 242 } 243 244 245 | Popular Tags |