KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mvnforum > admin > MemberXML


1 /*
2  * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/MemberXML.java,v 1.13 2006/04/14 17:36:29 minhnn Exp $
3  * $Author: minhnn $
4  * $Revision: 1.13 $
5  * $Date: 2006/04/14 17:36:29 $
6  *
7  * ====================================================================
8  *
9  * Copyright (C) 2002-2006 by MyVietnam.net
10  *
11  * All copyright notices regarding mvnForum MUST remain
12  * intact in the scripts and in the outputted HTML.
13  * The "powered by" text/logo with a link back to
14  * http://www.mvnForum.com and http://www.MyVietnam.net in
15  * the footer of the pages MUST remain visible when the pages
16  * are viewed on the internet or intranet.
17  *
18  * This program is free software; you can redistribute it and/or modify
19  * it under the terms of the GNU General Public License as published by
20  * the Free Software Foundation; either version 2 of the License, or
21  * any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program; if not, write to the Free Software
30  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
31  *
32  * Support can be obtained from support forums at:
33  * http://www.mvnForum.com/mvnforum/index
34  *
35  * Correspondence and Marketing Questions can be sent to:
36  * info at MyVietnam net
37  *
38  * @author: Igor Manic
39  */

40 package com.mvnforum.admin;
41
42 import java.io.IOException JavaDoc;
43 import java.util.*;
44
45 import com.mvnforum.MVNForumConstant;
46 import com.mvnforum.admin.importexport.XMLUtil;
47 import com.mvnforum.admin.importexport.XMLWriter;
48 import com.mvnforum.auth.MVNForumPermission;
49 import com.mvnforum.db.*;
50 import net.myvietnam.mvncore.exception.*;
51 import net.myvietnam.mvncore.filter.DisableHtmlTagFilter;
52 import net.myvietnam.mvncore.filter.EnableHtmlTagFilter;
53
54 /**
55  * @author Igor Manic
56  * @version $Revision: 1.13 $, $Date: 2006/04/14 17:36:29 $
57  * <br/>
58  * <code>MemberXML</code> todo Igor: enter description
59  *
60  */

61 public class MemberXML {
62
63     private int memberID;
64     /** Returns <code>MemberID</code> of this member or
65       * <code>-1</code> if member is not created yet. */

66     public int getMemberID() { return memberID; }
67
68     public MemberXML() {
69         super();
70         memberID=-1;
71     }
72
73     public void setMemberID(String JavaDoc id) {
74         memberID=XMLUtil.stringToIntDef(id, -1);
75     }
76
77     /**
78      * Creates a member. All argument values (<code>int</code>s, <code>Timestamp</code>s, ...)
79      * are represented as <code>String</code>s, because of more convenient using
80      * of this method for XML parsing.
81      *
82      * @param memberName MemberName of a member to be created.
83      * @param memberPassword Password of a member to be created.
84      * @param memberFirstEmail FirstEmail of a member to be created.
85      * @param memberEmail Email of a member to be created.
86      * @param memberEmailVisible Can be null.
87      * @param memberNameVisible Can be null.
88      * @param memberFirstIP Can be null.
89      * @param memberLastIP Can be null.
90      * @param memberViewCount Can be null.
91      * @param memberPostCount Can be null.
92      * @param memberCreationDate Can be null.
93      * @param memberModifiedDate Can be null.
94      * @param memberExpireDate Can be null.
95      * @param memberLastLogon Can be null.
96      * @param memberOption Can be null.
97      * @param memberStatus Can be null.
98      * @param memberActivateCode Can be null.
99      * @param memberTempPassword Can be null.
100      * @param memberMessageCount Can be null.
101      * @param memberMessageOption Can be null.
102      * @param memberPostsPerPage Can be null.
103      * @param memberWarnCount Can be null.
104      * @param memberVoteCount Can be null.
105      * @param memberVoteTotalStars Can be null.
106      * @param memberRewardPoints Can be null.
107      * @param memberTitle Can be null.
108      * @param memberTimeZone Can be null.
109      * @param memberSignature Can be null.
110      * @param memberAvatar Can be null.
111      * @param memberSkin Can be null.
112      * @param memberLanguage Can be null.
113      * @param memberFirstname
114      * @param memberLastname
115      * @param memberGender Can be null.
116      * @param memberBirthday Can be null.
117      * @param memberAddress Can be null.
118      * @param memberCity Can be null.
119      * @param memberState Can be null.
120      * @param memberCountry Can be null.
121      * @param memberPhone Can be null.
122      * @param memberMobile Can be null.
123      * @param memberFax Can be null.
124      * @param memberCareer Can be null.
125      * @param memberHomepage Can be null.
126      * @param memberYahoo Can be null.
127      * @param memberAol Can be null.
128      * @param memberIcq Can be null.
129      * @param memberMsn Can be null.
130      * @param memberCoolLink1 Can be null.
131      * @param memberCoolLink2 Can be null.
132      *
133      * @throws CreateException
134      * @throws DuplicateKeyException
135      * @throws ObjectNotFoundException
136      * @throws DatabaseException
137      *
138      */

139     public void addMember(String JavaDoc memberName, String JavaDoc memberPassword,
140                       String JavaDoc memberFirstEmail, String JavaDoc memberEmail,
141                       String JavaDoc memberEmailVisible, String JavaDoc memberNameVisible,
142                       String JavaDoc memberFirstIP, String JavaDoc memberLastIP,
143                       String JavaDoc memberViewCount, String JavaDoc memberPostCount,
144                       String JavaDoc memberCreationDate, String JavaDoc memberModifiedDate, String JavaDoc memberExpireDate,
145                       String JavaDoc memberLastLogon,
146                       String JavaDoc memberOption, String JavaDoc memberStatus,
147                       String JavaDoc memberActivateCode, String JavaDoc memberTempPassword,
148                       String JavaDoc memberMessageCount, String JavaDoc memberMessageOption,
149                       String JavaDoc memberPostsPerPage,
150                       String JavaDoc memberWarnCount,
151                       String JavaDoc memberVoteCount, String JavaDoc memberVoteTotalStars,
152                       String JavaDoc memberRewardPoints,
153                       String JavaDoc memberTitle, String JavaDoc memberTimeZone,
154                       String JavaDoc memberSignature, String JavaDoc memberAvatar,
155                       String JavaDoc memberSkin, String JavaDoc memberLanguage,
156                       String JavaDoc memberFirstname, String JavaDoc memberLastname,
157                       String JavaDoc memberGender, String JavaDoc memberBirthday,
158                       String JavaDoc memberAddress, String JavaDoc memberCity,
159                       String JavaDoc memberState, String JavaDoc memberCountry,
160                       String JavaDoc memberPhone, String JavaDoc memberMobile,
161                       String JavaDoc memberFax, String JavaDoc memberCareer,
162                       String JavaDoc memberHomepage, String JavaDoc memberYahoo,
163                       String JavaDoc memberAol, String JavaDoc memberIcq, String JavaDoc memberMsn,
164                       String JavaDoc memberCoolLink1, String JavaDoc memberCoolLink2)
165     throws CreateException, DuplicateKeyException, ObjectNotFoundException,
166     DatabaseException {
167         String JavaDoc strMemberID=null;
168         if (memberID>=0) strMemberID=Integer.toString(memberID);
169         addMember(strMemberID, memberName,
170                   memberPassword, memberFirstEmail, memberEmail,
171                   memberEmailVisible, memberNameVisible,
172                   memberFirstIP, memberLastIP,
173                   memberViewCount, memberPostCount,
174                   memberCreationDate, memberModifiedDate, memberExpireDate, memberLastLogon,
175                   memberOption, memberStatus, memberActivateCode, memberTempPassword,
176                   memberMessageCount, memberMessageOption, memberPostsPerPage,
177                   memberWarnCount, memberVoteCount, memberVoteTotalStars,
178                   memberRewardPoints, memberTitle, memberTimeZone,
179                   memberSignature, memberAvatar, memberSkin,
180                   memberLanguage, memberFirstname, memberLastname,
181                   memberGender, memberBirthday, memberAddress,
182                   memberCity, memberState, memberCountry,
183                   memberPhone, memberMobile, memberFax,
184                   memberCareer, memberHomepage, memberYahoo, memberAol, memberIcq,
185                   memberMsn, memberCoolLink1, memberCoolLink2);
186     }
187
188     /**
189      * Adds a member. All argument values (<code>int</code>s, <code>Timestamp</code>s, ...)
190      * are represented as <code>String</code>s, because of more convenient using
191      * of this method for XML parsing.
192      *
193      * @param strMemberID Can be null, and it probably will be in most occasions,
194      * except when you want to setup an explicit value, like
195      * "0" for guest or "1" for root system admin.
196      * @param memberName MemberName of a member to be created.
197      * @param memberPassword Password of a member to be created.
198      * @param memberFirstEmail FirstEmail of a member to be created.
199      * @param memberEmail Email of a member to be created.
200      * @param memberEmailVisible Can be null.
201      * @param memberNameVisible Can be null.
202      * @param memberFirstIP Can be null.
203      * @param memberLastIP Can be null.
204      * @param memberViewCount Can be null.
205      * @param memberPostCount Can be null.
206      * @param memberCreationDate Can be null.
207      * @param memberModifiedDate Can be null.
208      * @param memberLastLogon Can be null.
209      * @param memberOption Can be null.
210      * @param memberStatus Can be null.
211      * @param memberActivateCode Can be null.
212      * @param memberTempPassword Can be null.
213      * @param memberMessageCount Can be null.
214      * @param memberMessageOption Can be null.
215      * @param memberPostsPerPage Can be null.
216      * @param memberWarnCount Can be null.
217      * @param memberVoteCount Can be null.
218      * @param memberVoteTotalStars Can be null.
219      * @param memberRewardPoints Can be null.
220      * @param memberTitle Can be null.
221      * @param memberTimeZone Can be null.
222      * @param memberSignature Can be null.
223      * @param memberAvatar Can be null.
224      * @param memberSkin Can be null.
225      * @param memberLanguage Can be null.
226      * @param memberFirstname Can't be null, but may be empty "", but please avoid that.
227      * @param memberLastname Can't be null, but may be empty "", but please avoid that.
228      * @param memberGender Can be null.
229      * @param memberBirthday Can be null.
230      * @param memberAddress Can be null.
231      * @param memberCity Can be null.
232      * @param memberState Can be null.
233      * @param memberCountry Can be null.
234      * @param memberPhone Can be null.
235      * @param memberMobile Can be null.
236      * @param memberFax Can be null.
237      * @param memberCareer Can be null.
238      * @param memberHomepage Can be null.
239      * @param memberYahoo Can be null.
240      * @param memberAol Can be null.
241      * @param memberIcq Can be null.
242      * @param memberMsn Can be null.
243      * @param memberCoolLink1 Can be null.
244      * @param memberCoolLink2 Can be null.
245      *
246      * @throws CreateException
247      * @throws DuplicateKeyException
248      * @throws ObjectNotFoundException
249      * @throws DatabaseException
250      *
251      */

252     public void addMember(String JavaDoc strMemberID,
253                           String JavaDoc memberName, String JavaDoc memberPassword,
254                           String JavaDoc memberFirstEmail, String JavaDoc memberEmail,
255                           String JavaDoc memberEmailVisible, String JavaDoc memberNameVisible,
256                           String JavaDoc memberFirstIP, String JavaDoc memberLastIP,
257                           String JavaDoc memberViewCount, String JavaDoc memberPostCount,
258                           String JavaDoc memberCreationDate, String JavaDoc memberModifiedDate, String JavaDoc memberExpireDate,
259                           String JavaDoc memberLastLogon,
260                           String JavaDoc memberOption, String JavaDoc memberStatus,
261                           String JavaDoc memberActivateCode, String JavaDoc memberTempPassword,
262                           String JavaDoc memberMessageCount, String JavaDoc memberMessageOption,
263                           String JavaDoc memberPostsPerPage,
264                           String JavaDoc memberWarnCount,
265                           String JavaDoc memberVoteCount, String JavaDoc memberVoteTotalStars,
266                           String JavaDoc memberRewardPoints,
267                           String JavaDoc memberTitle, String JavaDoc memberTimeZone,
268                           String JavaDoc memberSignature, String JavaDoc memberAvatar,
269                           String JavaDoc memberSkin, String JavaDoc memberLanguage,
270                           String JavaDoc memberFirstname, String JavaDoc memberLastname,
271                           String JavaDoc memberGender, String JavaDoc memberBirthday,
272                           String JavaDoc memberAddress, String JavaDoc memberCity,
273                           String JavaDoc memberState, String JavaDoc memberCountry,
274                           String JavaDoc memberPhone, String JavaDoc memberMobile,
275                           String JavaDoc memberFax, String JavaDoc memberCareer,
276                           String JavaDoc memberHomepage, String JavaDoc memberYahoo,
277                           String JavaDoc memberAol, String JavaDoc memberIcq, String JavaDoc memberMsn,
278                           String JavaDoc memberCoolLink1, String JavaDoc memberCoolLink2)
279     throws CreateException, DuplicateKeyException, ObjectNotFoundException, DatabaseException {
280         if ((memberName==null) || (memberName.equals("")) ||
281             (memberPassword==null) || (memberPassword.equals("")) ||
282             (memberFirstEmail==null) || (memberFirstEmail.equals("")) ||
283             (memberEmail==null) || (memberEmail.equals("")) ||
284             (memberFirstname==null) || //first and last name can be empty
285
(memberLastname==null)) {
286             throw new CreateException("Not enough data to create a member. Check for name, email and password.");
287         } else {
288             int memberEmailVisible1;
289             int memberNameVisible1;
290             int memberViewCount1;
291             int memberPostCount1;
292             java.sql.Timestamp JavaDoc memberCreationDate1;
293             java.sql.Timestamp JavaDoc memberModifiedDate1;
294             java.sql.Timestamp JavaDoc memberExpireDate1;
295             java.sql.Timestamp JavaDoc memberLastLogon1;
296             int memberOption1;
297             int memberStatus1;
298             int memberMessageCount1;
299             int memberMessageOption1;
300             int memberPostsPerPage1;
301             int memberWarnCount1;
302             int memberVoteCount1;
303             int memberVoteTotalStars1;
304             int memberRewardPoints1;
305             int memberTimeZone1;
306             int memberGender1;
307             java.sql.Date JavaDoc memberBirthday1;
308
309             try {
310                 memberEmailVisible1= (XMLUtil.stringToBooleanDef(memberEmailVisible, false)?1:0);
311                 memberNameVisible1= (XMLUtil.stringToBooleanDef(memberNameVisible, false)?1:0);
312                 if (memberFirstIP==null) memberFirstIP="0.0.0.0";
313                 if (memberLastIP==null) memberLastIP="0.0.0.0";
314                 memberViewCount1= XMLUtil.stringToIntDef(memberViewCount, 0);
315                 memberPostCount1= XMLUtil.stringToIntDef(memberPostCount, 0);
316                 memberCreationDate1= XMLUtil.stringToSqlTimestampDefNow(memberCreationDate);
317                 memberModifiedDate1= XMLUtil.stringToSqlTimestampDefNull(memberModifiedDate);
318                 memberExpireDate1= XMLUtil.stringToSqlTimestampDefNow(memberExpireDate);
319                 memberLastLogon1= XMLUtil.stringToSqlTimestampDefNull(memberLastLogon);
320                 memberOption1= XMLUtil.stringToIntDef(memberOption, 0);
321                 memberStatus1= XMLUtil.stringToIntDef(memberStatus, 0);
322                 if (memberActivateCode==null) memberActivateCode="";
323                 if (memberTempPassword==null) memberTempPassword="";
324                 memberMessageCount1= XMLUtil.stringToIntDef(memberMessageCount, 0);
325                 memberMessageOption1= XMLUtil.stringToIntDef(memberMessageOption, 0);
326                 memberPostsPerPage1= XMLUtil.stringToIntDef(memberPostsPerPage, 10);
327                 memberWarnCount1= XMLUtil.stringToIntDef(memberWarnCount, 0);
328                 memberVoteCount1= XMLUtil.stringToIntDef(memberVoteCount, 0);
329                 memberVoteTotalStars1= XMLUtil.stringToIntDef(memberVoteTotalStars, 0);
330                 memberRewardPoints1= XMLUtil.stringToIntDef(memberRewardPoints, 0);
331                 if (memberTitle==null) memberTitle="";
332                 memberTimeZone1= XMLUtil.stringToIntDef(memberTimeZone, 0);
333                 if (memberSignature==null) memberSignature="";
334                 if (memberAvatar==null) memberAvatar="";
335                 if (memberSkin==null) memberSkin="";
336                 if (memberLanguage==null) memberLanguage="";
337                 memberGender1= XMLUtil.stringToGenderDef(memberGender, 1/*Male*/);
338                 memberBirthday1= XMLUtil.stringToSqlDateDefNull(memberBirthday);
339                 if (memberAddress==null) memberAddress="";
340                 if (memberCity==null) memberCity="";
341                 if (memberState==null) memberState="";
342                 if (memberCountry==null) memberCountry="";
343                 if (memberPhone==null) memberPhone="";
344                 if (memberMobile==null) memberMobile="";
345                 if (memberFax==null) memberFax="";
346                 if (memberCareer==null) memberCareer="";
347                 if (memberHomepage==null) memberHomepage="";
348                 if (memberYahoo==null) memberYahoo="";
349                 if (memberAol==null) memberAol="";
350                 if (memberIcq==null) memberIcq="";
351                 if (memberMsn==null) memberMsn="";
352                 if (memberCoolLink1==null) memberCoolLink1="";
353                 if (memberCoolLink2==null) memberCoolLink2="";
354             } catch (NumberFormatException JavaDoc e) {
355                 throw new CreateException("Invalid data for a member. Expected a number.");
356             }
357
358             //now ensure that strMemberID is valid number, or null
359
if ( (strMemberID!=null) && (!strMemberID.equals("")) ) {
360                 try {
361                     if (Integer.parseInt(strMemberID)<0) strMemberID=null;
362                 } catch (NumberFormatException JavaDoc e) {
363                     strMemberID=null;
364                 }
365             } else strMemberID=null;
366
367             memberPassword=EnableHtmlTagFilter.filter(memberPassword);
368             memberTempPassword=EnableHtmlTagFilter.filter(memberTempPassword);
369             memberTitle=EnableHtmlTagFilter.filter(memberTitle);
370             memberSignature=EnableHtmlTagFilter.filter(memberSignature);
371             //todo Igor: also filter memberAvatar, memberSkin
372
memberAddress=EnableHtmlTagFilter.filter(memberAddress);
373             memberCountry=EnableHtmlTagFilter.filter(memberCountry);
374             memberHomepage=EnableHtmlTagFilter.filter(memberHomepage);
375             memberYahoo=EnableHtmlTagFilter.filter(memberYahoo);
376             memberAol=EnableHtmlTagFilter.filter(memberAol);
377             memberIcq=EnableHtmlTagFilter.filter(memberIcq);
378             memberMsn=EnableHtmlTagFilter.filter(memberMsn);
379             memberCoolLink1=EnableHtmlTagFilter.filter(memberCoolLink1);
380             memberCoolLink2=EnableHtmlTagFilter.filter(memberCoolLink2);
381
382             if (strMemberID==null) {
383                 DAOFactory.getMemberDAO().create(
384                    memberName, memberPassword, memberFirstEmail,
385                    memberEmail, memberEmailVisible1, memberNameVisible1,
386                    memberFirstIP, memberLastIP, memberViewCount1, memberPostCount1,
387                    memberCreationDate1, memberModifiedDate1, memberExpireDate1, memberLastLogon1,
388                    memberOption1, memberStatus1, memberActivateCode, memberTempPassword,
389                    memberMessageCount1, memberMessageOption1, memberPostsPerPage1,
390                    memberWarnCount1, memberVoteCount1, memberVoteTotalStars1,
391                    memberRewardPoints1, memberTitle, memberTimeZone1, memberSignature,
392                    memberAvatar, memberSkin, memberLanguage,
393                    memberFirstname, memberLastname, memberGender1,
394                    memberBirthday1, memberAddress, memberCity,
395                    memberState, memberCountry, memberPhone,
396                    memberMobile, memberFax, memberCareer,
397                    memberHomepage, memberYahoo, memberAol,
398                    memberIcq, memberMsn, memberCoolLink1, memberCoolLink2);
399             } else {
400                 //I must change all possible nulls into "", so I don't get "'null'" in sql query
401
String JavaDoc memberEmailVisible2 = (XMLUtil.stringToBooleanDef(memberEmailVisible, false)?"1":"0");
402                 String JavaDoc memberNameVisible2 = (XMLUtil.stringToBooleanDef(memberNameVisible, false)?"1":"0");
403                 String JavaDoc memberModifiedDate2= XMLUtil.sqlTimestampToStringDefEmpty(memberModifiedDate1);
404                 String JavaDoc memberLastLogon2= XMLUtil.sqlTimestampToStringDefEmpty(memberLastLogon1);
405                 String JavaDoc memberBirthday2= XMLUtil.sqlDateToStringDefEmpty(memberBirthday1);
406
407                 String JavaDoc query="INSERT INTO "+ MemberDAO.TABLE_NAME +
408                     " (MemberID, MemberName, MemberPassword, MemberFirstEmail, MemberEmail," +
409                     " MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP," +
410                     " MemberViewCount, MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate," +
411                     " MemberLastLogon, MemberOption, MemberStatus, MemberActivateCode," +
412                     " MemberTempPassword, MemberMessageCount, MemberMessageOption," +
413                     " MemberPostsPerPage, MemberWarnCount, MemberVoteCount," +
414                     " MemberVoteTotalStars, MemberRewardPoints, MemberTitle," +
415                     " MemberTimeZone, MemberSignature, MemberAvatar, MemberSkin," +
416                     " MemberLanguage, MemberFirstname, MemberLastname, MemberGender," +
417                     " MemberBirthday, MemberAddress, MemberCity, MemberState, MemberCountry," +
418                     " MemberPhone, MemberMobile, MemberFax, MemberCareer, MemberHomepage," +
419                     " MemberYahoo, MemberAol, MemberIcq, MemberMsn," +
420                     " MemberCoolLink1, MemberCoolLink2)" +
421                     " VALUES (" +strMemberID+ ", '"+memberName +"', '" +memberPassword+ "', '" +memberFirstEmail+
422                     "', '" +memberEmail+ "', " +memberEmailVisible2+ ", " +memberNameVisible2+
423                     ", '" +memberFirstIP+ "', '" +memberLastIP+ "', " +memberViewCount1+
424                     ", " +memberPostCount1+ ", '" +memberCreationDate1+ "', '" +memberModifiedDate2+ "', '" + memberExpireDate +
425                     "', '" +memberLastLogon2+ "', " +memberOption1+ ", " +memberStatus1+
426                     ", '" +memberActivateCode+ "', '" +memberTempPassword+ "', " +memberMessageCount1+
427                     ", " +memberMessageOption1+ ", " +memberPostsPerPage1+ ", " +memberWarnCount1+
428                     ", " +memberVoteCount1+ ", " +memberVoteTotalStars1+ ", " +memberRewardPoints1+
429                     ", '" +memberTitle+ "', " +memberTimeZone1+ ", '" +memberSignature+
430                     "', '" +memberAvatar+ "', '" +memberSkin+ "', '" +memberLanguage+
431                     "', '" +memberFirstname+ "', '" +memberLastname+ "', " +memberGender1+
432                     ", '" +memberBirthday2+ "', '" +memberAddress+ "', '" +memberCity+
433                     "', '" +memberState+ "', '" +memberCountry+ "', '" +memberPhone+
434                     "', '" +memberMobile+ "', '" +memberFax+ "', '" +memberCareer+
435                     "', '" +memberHomepage+ "', '" +memberYahoo+ "', '" +memberAol+
436                     "', '" +memberIcq+ "', '" +memberMsn+
437                     "', '" +memberCoolLink1+ "', '" +memberCoolLink2+ "')";
438                 if (ImportWebHelper.execUpdateQuery(query) !=1) {
439                   throw new CreateException("Error adding member into table '"+
440                             MemberDAO.TABLE_NAME +"'.");
441                 }
442             }
443             this.memberID=DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);
444         }
445     }
446
447     /**
448      * Adds a permission to this member. In order to know which member we are
449      * reffering to, this method is supposed to be called after {@link #setMemberID(String)},
450      * {@link #addMember(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String)}
451      * or {@link #addMember(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String)}
452      * have been called. Otherwise, this permission will be simply ignored.
453      *
454      * @param permission Permission to be added.
455      *
456      * @throws CreateException
457      * @throws DatabaseException
458      * @throws ForeignKeyNotFoundException
459      */

460     public void addMemberPermission(String JavaDoc permission)
461     throws CreateException, DatabaseException, ForeignKeyNotFoundException {
462         if (memberID<0) {
463             throw new CreateException("Found member permission that is not assigned to any known member.");
464         }
465         int permission1;
466         try {
467             permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS);
468         } catch (NumberFormatException JavaDoc e) {
469             throw new CreateException("Invalid data for a member permission. Expected a number.");
470         }
471         try {
472             DAOFactory.getMemberPermissionDAO().create(memberID, permission1);
473         } catch (DuplicateKeyException e) {
474             //ignore if already had that permission
475
}
476     }
477
478     public static void addGuestMemberPermission(String JavaDoc permission)
479     throws CreateException, DatabaseException, ForeignKeyNotFoundException {
480         int permission1;
481         try {
482             permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS);
483         } catch (NumberFormatException JavaDoc e) {
484             throw new CreateException("Invalid data for a guest member permission. Expected a number.");
485         }
486         try {
487             DAOFactory.getMemberPermissionDAO().create(MVNForumConstant.MEMBER_ID_OF_GUEST, permission1);
488         } catch (DuplicateKeyException e) {
489             //ignore if already had that permission
490
}
491     }
492
493     public static void addAdminMemberPermission(String JavaDoc permission)
494     throws CreateException, DatabaseException, ForeignKeyNotFoundException {
495         int permission1;
496         try {
497             permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS);
498         } catch (NumberFormatException JavaDoc e) {
499             throw new CreateException("Invalid data for a guest member permission. Expected a number.");
500         }
501         try {
502             DAOFactory.getMemberPermissionDAO().create(MVNForumConstant.MEMBER_ID_OF_ADMIN, permission1);
503         } catch (DuplicateKeyException e) {
504             //ignore if already had that permission
505
}
506     }
507
508     public static void addMemberPermission(String JavaDoc memberName, String JavaDoc permission)
509     throws CreateException, DatabaseException, ForeignKeyNotFoundException,
510     ObjectNotFoundException {
511         int permission1;
512         try {
513             permission1=XMLUtil.stringToIntDef(permission, MVNForumPermission.PERMISSION_NO_PERMISSIONS);
514         } catch (NumberFormatException JavaDoc e) {
515             throw new CreateException("Invalid data for a member permission. Expected a number.");
516         }
517         try {
518             DAOFactory.getMemberPermissionDAO().create(DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName), permission1);
519         } catch (DuplicateKeyException e) {
520             //ignore if already had that permission
521
}
522     }
523
524     /**
525      * Creates a message folder for this member. In order to know which member we are
526      * reffering to, this method is supposed to be called after {@link #setMemberID(String)},
527      * {@link #addMember(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String)}
528      * or {@link #addMember(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String)}
529      * have been called. Otherwise, this message folder will be simply ignored.
530      *
531      * @param folderName Name of a folder to be created.
532      * @param folderOrder Can be null.
533      * @param folderCreationDate Can be null.
534      * @param folderModifiedDate Can be null.
535      *
536      * @throws CreateException
537      * @throws DatabaseException
538      * @throws DuplicateKeyException
539      * @throws ForeignKeyNotFoundException
540      */

541     public void addMessageFolder(String JavaDoc folderName, String JavaDoc folderOrder,
542                 String JavaDoc folderCreationDate, String JavaDoc folderModifiedDate)
543     throws CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException {
544         if (memberID<0) {
545             throw new CreateException("Found message folder that is not assigned to any known member.");
546         }
547         if ( (folderName==null) || (folderName.equals("")) ) {
548             throw new CreateException("Can't create a message folder with empty FolderName.");
549         }
550
551         int folderOrder1;
552         java.sql.Timestamp JavaDoc folderCreationDate1;
553         java.sql.Timestamp JavaDoc folderModifiedDate1;
554         try {
555             folderOrder1= XMLUtil.stringToIntDef(folderOrder, 0);
556             folderCreationDate1= XMLUtil.stringToSqlTimestampDefNow(folderCreationDate);
557             folderModifiedDate1= XMLUtil.stringToSqlTimestampDefNow(folderModifiedDate);
558         } catch (NumberFormatException JavaDoc e) {
559             throw new CreateException("Invalid data for a message folder. Expected a number.");
560         }
561
562         folderName=EnableHtmlTagFilter.filter(folderName);
563         int folderStatus = 0;
564         int folderOption = 0;
565         int folderType = 0;
566         DAOFactory.getMessageFolderDAO().create(folderName, memberID, folderOrder1,
567                                                 folderStatus, folderOption, folderType,
568                                                 folderCreationDate1, folderModifiedDate1);
569     }
570
571     /**
572      * Adds a global watch for this member. In order to know which member we are
573      * reffering to, this method is supposed to be called after {@link #setMemberID(String)},
574      * {@link #addMember(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String)}
575      * or {@link #addMember(String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String, String)}
576      * have been called. Otherwise, this watch will be simply ignored.
577      *
578      * @param watchType Can be null.
579      * @param watchOption Can be null.
580      * @param watchStatus Can be null.
581      * @param watchCreationDate Can be null.
582      * @param watchLastSentDate Can be null.
583      * @param watchEndDate Can be null.
584      *
585      * @throws BadInputException
586      * @throws CreateException
587      * @throws DatabaseException
588      * @throws DuplicateKeyException
589      * @throws ForeignKeyNotFoundException
590      */

591     public void addGlobalWatch(String JavaDoc watchType, String JavaDoc watchOption,
592                 String JavaDoc watchStatus, String JavaDoc watchCreationDate,
593                 String JavaDoc watchLastSentDate, String JavaDoc watchEndDate)
594         throws CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException {
595         if (memberID<0) {
596             throw new CreateException("Found global watch that is not assigned to any known member.");
597         }
598
599         int watchType1;
600         int watchOption1;
601         int watchStatus1;
602         java.sql.Timestamp JavaDoc watchCreationDate1;
603         java.sql.Timestamp JavaDoc watchLastSentDate1;
604         java.sql.Timestamp JavaDoc watchEndDate1;
605
606         try {
607             watchType1= XMLUtil.stringToIntDef(watchType, 0);
608             watchOption1= XMLUtil.stringToIntDef(watchOption, 0);
609             watchStatus1= XMLUtil.stringToIntDef(watchStatus, 0);
610             watchCreationDate1= XMLUtil.stringToSqlTimestampDefNow(watchCreationDate);
611             watchLastSentDate1= XMLUtil.stringToSqlTimestampDefNull(watchLastSentDate);
612             watchEndDate1= XMLUtil.stringToSqlTimestampDefNull(watchEndDate);
613         } catch (NumberFormatException JavaDoc e) {
614             throw new CreateException("Invalid data for a global watch. Expected a number.");
615         }
616
617         DAOFactory.getWatchDAO().create(
618              memberID, 0/*categoryID*/, 0/*forumID*/, 0/*threadID*/,
619              watchType1, watchOption1, watchStatus1,
620              watchCreationDate1, watchLastSentDate1, watchEndDate1);
621     }
622
623
624 // ===============================================================
625
// ==================== STATIC EXPORT METHODS ====================
626
// ===============================================================
627

628     public static void exportMessageFoldersForMember(XMLWriter xmlWriter, String JavaDoc memberName)
629     throws ForeignKeyNotFoundException, IOException JavaDoc, DatabaseException, ExportException {
630         try {
631             exportMessageFoldersForMember(xmlWriter,
632                   DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName));
633         } catch (ObjectNotFoundException e) {
634             throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\".");
635         }
636     }
637
638     public static void exportMessageFoldersForMember(XMLWriter xmlWriter, int memberID)
639     throws IOException JavaDoc, DatabaseException, ExportException {
640         Collection messageFolders=ExportWebHelper.execSqlQuery(
641                    "SELECT FolderName, FolderOrder, FolderCreationDate, FolderModifiedDate"+
642                    " FROM "+MessageFolderDAO.TABLE_NAME+
643                    " WHERE MemberID="+Integer.toString(memberID));
644         Iterator iter=messageFolders.iterator();
645         String JavaDoc[] messageFolder=null;
646         //try {
647
xmlWriter.startElement("MessageFolderList");
648             try {
649                 while ( (messageFolder=(String JavaDoc[])iter.next()) !=null) {
650                     if (messageFolder.length!=4) {
651                         throw new ExportException("Error while retrieving data about message folder for memberID=="+memberID);
652                     }
653                     xmlWriter.startElement("MessageFolder");
654                     xmlWriter.startElement("FolderName");
655                     xmlWriter.writeData(DisableHtmlTagFilter.filter(messageFolder[0]));
656                     xmlWriter.endElement("FolderName");
657                     xmlWriter.startElement("FolderOrder");
658                     xmlWriter.writeData(messageFolder[1]);
659                     xmlWriter.endElement("FolderOrder");
660                     xmlWriter.startElement("FolderCreationDate");
661                     xmlWriter.writeData(messageFolder[2]);
662                     xmlWriter.endElement("FolderCreationDate");
663                     xmlWriter.startElement("FolderModifiedDate");
664                     xmlWriter.writeData(messageFolder[3]);
665                     xmlWriter.endElement("FolderModifiedDate");
666                     xmlWriter.endElement("MessageFolder");
667                 }
668             } catch (NoSuchElementException e) {
669                 //no more database records
670
}
671             xmlWriter.endElement("MessageFolderList");
672          //} catch throw exportexception
673
}
674
675     public static void exportGlobalPermissionsForMember(XMLWriter xmlWriter, String JavaDoc memberName)
676     throws ForeignKeyNotFoundException, IOException JavaDoc, DatabaseException, ExportException {
677         try {
678             exportGlobalPermissionsForMember(xmlWriter,
679                   DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName));
680         } catch (ObjectNotFoundException e) {
681             throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\".");
682         }
683     }
684
685     public static void exportGlobalPermissionsForMember(XMLWriter xmlWriter, int memberID)
686     throws IOException JavaDoc, DatabaseException, ExportException {
687         Collection globalPermissions=ExportWebHelper.execSqlQuery(
688                    "SELECT Permission"+
689                    " FROM "+MemberPermissionDAO.TABLE_NAME+
690                    " WHERE MemberID="+Integer.toString(memberID));
691         Iterator iter=globalPermissions.iterator();
692         String JavaDoc[] globalPermission=null;
693         //try {
694
xmlWriter.startElement("GlobalPermissionList");
695             try {
696                 while ( (globalPermission=(String JavaDoc[])iter.next()) !=null) {
697                     if (globalPermission.length!=1) {
698                         throw new ExportException("Error while retrieving data about global permissions for memberID=="+memberID);
699                     }
700                     xmlWriter.startElement("GlobalPermission");
701                     xmlWriter.writeData(globalPermission[0]);
702                     xmlWriter.endElement("GlobalPermission");
703                 }
704             } catch (NoSuchElementException e) {
705                 //no more database records
706
}
707             xmlWriter.endElement("GlobalPermissionList");
708          //} catch throw exportexception
709
}
710
711     public static void exportGlobalWatchesForMember(XMLWriter xmlWriter, String JavaDoc memberName)
712     throws ForeignKeyNotFoundException, IOException JavaDoc, DatabaseException, ExportException {
713         try {
714             exportGlobalWatchesForMember(xmlWriter,
715                   DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName));
716         } catch (ObjectNotFoundException e) {
717             throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\".");
718         }
719     }
720
721     public static void exportGlobalWatchesForMember(XMLWriter xmlWriter, int memberID)
722     throws IOException JavaDoc, DatabaseException, ExportException {
723         Collection globalWatches=ExportWebHelper.execSqlQuery(
724                    "SELECT WatchType, WatchOption, WatchStatus, WatchCreationDate, WatchLastSentDate, WatchEndDate"+
725                    " FROM "+WatchDAO.TABLE_NAME+
726                    " WHERE CategoryID=0 AND ForumID=0 AND ThreadID=0"+
727                    " AND MemberID="+Integer.toString(memberID));
728         Iterator iter=globalWatches.iterator();
729         String JavaDoc[] globalWatch=null;
730         //try {
731
xmlWriter.startElement("GlobalWatchList");
732             try {
733                 while ( (globalWatch=(String JavaDoc[])iter.next()) !=null) {
734                     if (globalWatch.length!=6) {
735                         throw new ExportException("Error while retrieving data about global watch for memberID=="+memberID);
736                     }
737                     xmlWriter.startElement("GlobalWatch");
738                     xmlWriter.startElement("WatchType");
739                     xmlWriter.writeData(globalWatch[0]);
740                     xmlWriter.endElement("WatchType");
741                     xmlWriter.startElement("WatchOption");
742                     xmlWriter.writeData(globalWatch[1]);
743                     xmlWriter.endElement("WatchOption");
744                     xmlWriter.startElement("WatchStatus");
745                     xmlWriter.writeData(globalWatch[2]);
746                     xmlWriter.endElement("WatchStatus");
747                     xmlWriter.startElement("WatchCreationDate");
748                     xmlWriter.writeData(globalWatch[3]);
749                     xmlWriter.endElement("WatchCreationDate");
750                     xmlWriter.startElement("WatchLastSentDate");
751                     xmlWriter.writeData(globalWatch[4]);
752                     xmlWriter.endElement("WatchLastSentDate");
753                     xmlWriter.startElement("WatchEndDate");
754                     xmlWriter.writeData(globalWatch[5]);
755                     xmlWriter.endElement("WatchEndDate");
756                     xmlWriter.endElement("GlobalWatch");
757                 }
758             } catch (NoSuchElementException e) {
759                 //no more database records
760
}
761             xmlWriter.endElement("GlobalWatchList");
762          //} catch throw exportexception
763
}
764
765     public static void exportMember(XMLWriter xmlWriter, String JavaDoc memberName)
766     throws ForeignKeyNotFoundException, IOException JavaDoc, DatabaseException, ExportException {
767         try {
768             exportMember(xmlWriter,
769                   DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName));
770         } catch (ObjectNotFoundException e) {
771             throw new ForeignKeyNotFoundException("Can't find member with name \""+memberName+"\".");
772         }
773     }
774
775     public static void exportMember(XMLWriter xmlWriter, int memberID)
776     throws IOException JavaDoc, DatabaseException, ExportException {
777         Collection member1=ExportWebHelper.execSqlQuery(
778                    "SELECT MemberName, MemberPassword, MemberFirstEmail, MemberEmail,"+
779                    " MemberEmailVisible, MemberNameVisible, MemberFirstIP, MemberLastIP,"+
780                    " MemberViewCount, MemberPostCount, MemberCreationDate, MemberModifiedDate, MemberExpireDate, "+
781                    " MemberLastLogon, MemberOption, MemberStatus, MemberActivateCode,"+
782                    " MemberTempPassword, MemberMessageCount, MemberMessageOption, MemberPostsPerPage,"+
783                    " MemberWarnCount, MemberVoteCount, MemberVoteTotalStars, MemberRewardPoints,"+
784                    " MemberTitle, MemberTimeZone, MemberSignature, MemberAvatar,"+
785                    " MemberSkin, MemberLanguage, MemberFirstname, MemberLastname,"+
786                    " MemberGender, MemberBirthday, MemberAddress, MemberCity,"+
787                    " MemberState, MemberCountry, MemberPhone, MemberMobile,"+
788                    " MemberFax, MemberCareer, MemberHomepage, MemberYahoo,"+
789                    " MemberAol, MemberIcq, MemberMsn, MemberCoolLink1,"+
790                    " MemberCoolLink2 FROM "+
791                    MemberDAO.TABLE_NAME+
792                    " WHERE MemberID="+Integer.toString(memberID));
793         Iterator iter=member1.iterator();
794         String JavaDoc[] member=null;
795         //try {
796
try {
797                 if ( (member=(String JavaDoc[])iter.next()) ==null) {
798                     throw new ExportException("Can't find data for memberID=="+memberID);
799                 }
800                 if (member.length!=50) {
801                     throw new ExportException("Error while retrieving data about member with memberID=="+memberID);
802                 }
803             } catch (NoSuchElementException e) {
804                 throw new ExportException("Can't find data for memberID=="+memberID);
805             }
806
807             //if I am here, that means I now have correct object member
808
if (memberID==MVNForumConstant.MEMBER_ID_OF_GUEST) {
809                 xmlWriter.startElement("Member", new String JavaDoc[]{"class", "Guest"});
810             } else if (memberID==MVNForumConstant.MEMBER_ID_OF_ADMIN) {
811                 xmlWriter.startElement("Member", new String JavaDoc[]{"class", "Admin"});
812             } else {
813                 xmlWriter.startElement("Member");
814             }
815
816             xmlWriter.startElement("MemberName");
817             xmlWriter.writeData(member[0]);
818             xmlWriter.endElement("MemberName");
819             xmlWriter.startElement("MemberPassword");
820             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[1]));
821             xmlWriter.endElement("MemberPassword");
822             xmlWriter.startElement("MemberFirstEmail");
823             xmlWriter.writeData(member[2]);
824             xmlWriter.endElement("MemberFirstEmail");
825             xmlWriter.startElement("MemberEmail");
826             xmlWriter.writeData(member[3]);
827             xmlWriter.endElement("MemberEmail");
828             xmlWriter.startElement("MemberEmailVisible");
829             xmlWriter.writeData(member[4]);
830             xmlWriter.endElement("MemberEmailVisible");
831             xmlWriter.startElement("MemberNameVisible");
832             xmlWriter.writeData(member[5]);
833             xmlWriter.endElement("MemberNameVisible");
834             xmlWriter.startElement("MemberFirstIP");
835             xmlWriter.writeData(member[6]);
836             xmlWriter.endElement("MemberFirstIP");
837             xmlWriter.startElement("MemberLastIP");
838             xmlWriter.writeData(member[7]);
839             xmlWriter.endElement("MemberLastIP");
840             xmlWriter.startElement("MemberViewCount");
841             xmlWriter.writeData(member[8]);
842             xmlWriter.endElement("MemberViewCount");
843             xmlWriter.startElement("MemberPostCount");
844             xmlWriter.writeData(member[9]);
845             xmlWriter.endElement("MemberPostCount");
846
847             xmlWriter.startElement("MemberCreationDate");
848             xmlWriter.writeData(member[10]);
849             xmlWriter.endElement("MemberCreationDate");
850             xmlWriter.startElement("MemberModifiedDate");
851             xmlWriter.writeData(member[11]);
852             xmlWriter.endElement("MemberModifiedDate");
853             xmlWriter.startElement("MemberExpireDate");
854             xmlWriter.writeData(member[12]);
855             xmlWriter.endElement("MemberExpireDate");
856             xmlWriter.startElement("MemberLastLogon");
857             xmlWriter.writeData(member[13]);
858             xmlWriter.endElement("MemberLastLogon");
859             xmlWriter.startElement("MemberOption");
860             xmlWriter.writeData(member[14]);
861             xmlWriter.endElement("MemberOption");
862             xmlWriter.startElement("MemberStatus");
863             xmlWriter.writeData(member[15]);
864             xmlWriter.endElement("MemberStatus");
865             xmlWriter.startElement("MemberActivateCode");
866             xmlWriter.writeData(member[16]);
867             xmlWriter.endElement("MemberActivateCode");
868             xmlWriter.startElement("MemberTempPassword");
869             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[17]));
870             xmlWriter.endElement("MemberTempPassword");
871             xmlWriter.startElement("MemberMessageCount");
872             xmlWriter.writeData(member[18]);
873             xmlWriter.endElement("MemberMessageCount");
874             xmlWriter.startElement("MemberMessageOption");
875             xmlWriter.writeData(member[19]);
876             xmlWriter.endElement("MemberMessageOption");
877             xmlWriter.startElement("MemberPostsPerPage");
878             xmlWriter.writeData(member[20]);
879             xmlWriter.endElement("MemberPostsPerPage");
880
881             xmlWriter.startElement("MemberWarnCount");
882             xmlWriter.writeData(member[21]);
883             xmlWriter.endElement("MemberWarnCount");
884             xmlWriter.startElement("MemberVoteCount");
885             xmlWriter.writeData(member[22]);
886             xmlWriter.endElement("MemberVoteCount");
887             xmlWriter.startElement("MemberVoteTotalStars");
888             xmlWriter.writeData(member[23]);
889             xmlWriter.endElement("MemberVoteTotalStars");
890             xmlWriter.startElement("MemberRewardPoints");
891             xmlWriter.writeData(member[24]);
892             xmlWriter.endElement("MemberRewardPoints");
893             xmlWriter.startElement("MemberTitle");
894             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[25]));
895             xmlWriter.endElement("MemberTitle");
896             xmlWriter.startElement("MemberTimeZone");
897             xmlWriter.writeData(member[26]);
898             xmlWriter.endElement("MemberTimeZone");
899             xmlWriter.startElement("MemberSignature");
900             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[27]));
901             xmlWriter.endElement("MemberSignature");
902             //todo Igor: also filter memberAvatar, memberSkin
903
xmlWriter.startElement("MemberAvatar");
904             xmlWriter.writeData(member[28]);
905             xmlWriter.endElement("MemberAvatar");
906             xmlWriter.startElement("MemberSkin");
907             xmlWriter.writeData(member[29]);
908             xmlWriter.endElement("MemberSkin");
909             xmlWriter.startElement("MemberLanguage");
910             xmlWriter.writeData(member[30]);
911             xmlWriter.endElement("MemberLanguage");
912
913             xmlWriter.startElement("MemberFirstname");
914             xmlWriter.writeData(member[31]);
915             xmlWriter.endElement("MemberFirstname");
916             xmlWriter.startElement("MemberLastname");
917             xmlWriter.writeData(member[32]);
918             xmlWriter.endElement("MemberLastname");
919             xmlWriter.startElement("MemberGender");
920             xmlWriter.writeData(member[33]);
921             xmlWriter.endElement("MemberGender");
922             xmlWriter.startElement("MemberBirthday");
923             xmlWriter.writeData(member[34]);
924             xmlWriter.endElement("MemberBirthday");
925             xmlWriter.startElement("MemberAddress");
926             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[35]));
927             xmlWriter.endElement("MemberAddress");
928             xmlWriter.startElement("MemberCity");
929             xmlWriter.writeData(member[36]);
930             xmlWriter.endElement("MemberCity");
931             xmlWriter.startElement("MemberState");
932             xmlWriter.writeData(member[37]);
933             xmlWriter.endElement("MemberState");
934             xmlWriter.startElement("MemberCountry");
935             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[38]));
936             xmlWriter.endElement("MemberCountry");
937             xmlWriter.startElement("MemberPhone");
938             xmlWriter.writeData(member[39]);
939             xmlWriter.endElement("MemberPhone");
940             xmlWriter.startElement("MemberMobile");
941             xmlWriter.writeData(member[40]);
942             xmlWriter.endElement("MemberMobile");
943
944             xmlWriter.startElement("MemberFax");
945             xmlWriter.writeData(member[41]);
946             xmlWriter.endElement("MemberFax");
947             xmlWriter.startElement("MemberCareer");
948             xmlWriter.writeData(member[42]);
949             xmlWriter.endElement("MemberCareer");
950             xmlWriter.startElement("MemberHomepage");
951             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[43]));
952             xmlWriter.endElement("MemberHomepage");
953             xmlWriter.startElement("MemberYahoo");
954             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[44]));
955             xmlWriter.endElement("MemberYahoo");
956             xmlWriter.startElement("MemberAol");
957             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[45]));
958             xmlWriter.endElement("MemberAol");
959             xmlWriter.startElement("MemberIcq");
960             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[46]));
961             xmlWriter.endElement("MemberIcq");
962             xmlWriter.startElement("MemberMsn");
963             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[47]));
964             xmlWriter.endElement("MemberMsn");
965             xmlWriter.startElement("MemberCoolLink1");
966             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[48]));
967             xmlWriter.endElement("MemberCoolLink1");
968             xmlWriter.startElement("MemberCoolLink2");
969             xmlWriter.writeData(DisableHtmlTagFilter.filter(member[49]));
970             xmlWriter.endElement("MemberCoolLink2");
971
972             exportGlobalPermissionsForMember(xmlWriter, memberID);
973             exportMessageFoldersForMember(xmlWriter, memberID);
974             exportGlobalWatchesForMember(xmlWriter, memberID);
975             xmlWriter.endElement("Member");
976         //} catch throw exportexception
977
}
978
979     public static void exportMemberList(XMLWriter xmlWriter)
980     throws IOException JavaDoc, DatabaseException, ExportException {
981         Collection memberIDs=ExportWebHelper.execSqlQuery(
982                    "SELECT MemberID"+
983                    " FROM "+MemberDAO.TABLE_NAME);
984         Iterator iter=memberIDs.iterator();
985         String JavaDoc[] memberID=null;
986         //try {
987
xmlWriter.startElement("MemberList");
988             /* First, I'll export guest and root admin. If they don't exist, just continue. */
989             if (MVNForumConstant.MEMBER_ID_OF_GUEST < MVNForumConstant.MEMBER_ID_OF_ADMIN) {
990                 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_GUEST); }
991                 catch (Exception JavaDoc e) { /* doesn't exist => ignore */ }
992                 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_ADMIN); }
993                 catch (Exception JavaDoc e) { /* doesn't exist => ignore */ }
994             } else {
995                 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_ADMIN); }
996                 catch (Exception JavaDoc e) { /* doesn't exist => ignore */ }
997                 try { exportMember(xmlWriter, MVNForumConstant.MEMBER_ID_OF_GUEST); }
998                 catch (Exception JavaDoc e) { /* doesn't exist => ignore */ }
999             }
1000            try {
1001                while ( (memberID=(String JavaDoc[])iter.next()) !=null) {
1002                    if (memberID.length!=1) {
1003                        throw new ExportException("Error while retrieving list of members.");
1004                    }
1005                    try {
1006                        int i=Integer.parseInt(memberID[0]);
1007                        if ((i!=MVNForumConstant.MEMBER_ID_OF_GUEST) && (i!=MVNForumConstant.MEMBER_ID_OF_ADMIN)) {
1008                            exportMember(xmlWriter, i);
1009                        }
1010                    } catch (NumberFormatException JavaDoc e) {
1011                        throw new ExportException("Error while retrieving list of members.");
1012                    }
1013                }
1014            } catch (NoSuchElementException e) {
1015                //no more database records
1016
}
1017            xmlWriter.endElement("MemberList");
1018         //} catch throw exportexception
1019
}
1020
1021
1022
1023}
1024
Popular Tags