001: /*
002: * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/importexport/mvnforum/MvnForumMemberXML.java,v 1.9 2007/06/22 18:37:24 minhnn Exp $
003: * $Author: minhnn $
004: * $Revision: 1.9 $
005: * $Date: 2007/06/22 18:37:24 $
006: *
007: * ====================================================================
008: *
009: * Copyright (C) 2002-2007 by MyVietnam.net
010: *
011: * All copyright notices regarding mvnForum MUST remain
012: * intact in the scripts and in the outputted HTML.
013: * The "powered by" text/logo with a link back to
014: * http://www.mvnForum.com and http://www.MyVietnam.net in
015: * the footer of the pages MUST remain visible when the pages
016: * are viewed on the internet or intranet.
017: *
018: * This program is free software; you can redistribute it and/or modify
019: * it under the terms of the GNU General Public License as published by
020: * the Free Software Foundation; either version 2 of the License, or
021: * any later version.
022: *
023: * This program is distributed in the hope that it will be useful,
024: * but WITHOUT ANY WARRANTY; without even the implied warranty of
025: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
026: * GNU General Public License for more details.
027: *
028: * You should have received a copy of the GNU General Public License
029: * along with this program; if not, write to the Free Software
030: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
031: *
032: * Support can be obtained from support forums at:
033: * http://www.mvnForum.com/mvnforum/index
034: *
035: * Correspondence and Marketing Questions can be sent to:
036: * info at MyVietnam net
037: *
038: * @author: Igor Manic
039: */
040: package com.mvnforum.admin.importexport.mvnforum;
041:
042: import com.mvnforum.MVNForumConstant;
043: import com.mvnforum.admin.MemberXML;
044: import net.myvietnam.mvncore.exception.*;
045:
046: /**
047: * @author Igor Manic
048: * @version $Revision: 1.9 $, $Date: 2007/06/22 18:37:24 $
049: * <br/>
050: * <code>MvnForumMemberXML</code> class encapsulates processing of
051: * members' definitions found in the backup XML file. It implements
052: * methods to be called from XML parsing routine, adds some additional
053: * processing and checking, and calls corresponding methods of
054: * <code>MemberXML</code> and other neccessary classes in order to perform
055: * the actual creation of a member, as well as other related items (like
056: * message folders, member permissions and global watches). It also ensures
057: * that default Admin and virtual Guest are created, even if they weren't
058: * found in the XML.
059: */
060: public class MvnForumMemberXML {
061:
062: private MemberXML memberXML = null;
063: private boolean memberCreated = false;
064: private boolean isGuest = false;
065: private boolean isAdmin = false;
066:
067: String memberName = null;
068: String memberPassword = null;
069: String memberFirstEmail = null;
070: String memberEmail = null;
071: String memberEmailVisible = null;
072: String memberNameVisible = null;
073: String memberFirstIP = null;
074: String memberLastIP = null;
075: String memberViewCount = null;
076: String memberPostCount = null;
077: String memberCreationDate = null;
078: String memberModifiedDate = null;
079: String memberExpireDate = null;
080: String memberPasswordExpireDate = null;
081: String memberLastLogon = null;
082: String memberOption = null;
083: String memberStatus = null;
084: String memberActivateCode = null;
085: String memberTempPassword = null;
086: String memberMessageCount = null;
087: String memberMessageOption = null;
088: String memberPostsPerPage = null;
089: String memberWarnCount = null;
090: String memberVoteCount = null;
091: String memberVoteTotalStars = null;
092: String memberRewardPoints = null;
093: String memberTitle = null;
094: String memberTimeZone = null;
095: String memberSignature = null;
096: String memberAvatar = null;
097: String memberSkin = null;
098: String memberLanguage = null;
099: String memberFirstname = null;
100: String memberLastname = null;
101: String memberGender = null;
102: String memberBirthday = null;
103: String memberAddress = null;
104: String memberCity = null;
105: String memberState = null;
106: String memberCountry = null;
107: String memberPhone = null;
108: String memberMobile = null;
109: String memberFax = null;
110: String memberCareer = null;
111: String memberHomepage = null;
112: String memberYahoo = null;
113: String memberAol = null;
114: String memberIcq = null;
115: String memberMsn = null;
116: String memberCoolLink1 = null;
117: String memberCoolLink2 = null;
118:
119: public MvnForumMemberXML() {
120: super ();
121: memberXML = new MemberXML();
122: memberCreated = false;
123: isAdmin = false;
124: isGuest = false;
125: }
126:
127: public int getMemberID() {
128: return memberXML.getMemberID();
129: }
130:
131: public void setMemberID(String id) {
132: memberXML.setMemberID(id);
133: }
134:
135: /**
136: * This method simply calls <code>setMemberID()</code>.
137: * It's defined only to avoid property-setter problems with digester
138: * (since it doesn't seem to recognize <code>setMemberID()</code> as a setter
139: * method for <code>memberID</code> property).
140: */
141: public void setMemberId(String id) {
142: setMemberID(id);
143: }
144:
145: public void setMemberClass(String memberClass) {
146: if (memberClass != null) {
147: if (memberClass.equalsIgnoreCase("Guest")) {
148: memberXML.setMemberID(Integer
149: .toString(MVNForumConstant.MEMBER_ID_OF_GUEST));
150: isGuest = true;
151: } else if (memberClass.equalsIgnoreCase("Admin")) {
152: memberXML.setMemberID(Integer
153: .toString(MVNForumConstant.MEMBER_ID_OF_ADMIN));
154: isAdmin = true;
155: }
156: }
157: }
158:
159: public void setMemberName(String value) {
160: memberName = value;
161: }
162:
163: public void setMemberPassword(String value) {
164: memberPassword = value;
165: }
166:
167: public void setMemberFirstEmail(String value) {
168: memberFirstEmail = value;
169: }
170:
171: public void setMemberEmail(String value) {
172: memberEmail = value;
173: }
174:
175: public void setMemberEmailVisible(String value) {
176: memberEmailVisible = value;
177: }
178:
179: public void setMemberNameVisible(String value) {
180: memberNameVisible = value;
181: }
182:
183: public void setMemberFirstIP(String value) {
184: memberFirstIP = value;
185: }
186:
187: public void setMemberLastIP(String value) {
188: memberLastIP = value;
189: }
190:
191: public void setMemberViewCount(String value) {
192: memberViewCount = value;
193: }
194:
195: public void setMemberPostCount(String value) {
196: memberPostCount = value;
197: }
198:
199: public void setMemberCreationDate(String value) {
200: memberCreationDate = value;
201: }
202:
203: public void setMemberModifiedDate(String value) {
204: memberModifiedDate = value;
205: }
206:
207: public void setMemberExpireDate(String value) {
208: memberExpireDate = value;
209: }
210:
211: public void setMemberLastLogon(String value) {
212: memberLastLogon = value;
213: }
214:
215: public void setMemberOption(String value) {
216: memberOption = value;
217: }
218:
219: public void setMemberStatus(String value) {
220: memberStatus = value;
221: }
222:
223: public void setMemberActivateCode(String value) {
224: memberActivateCode = value;
225: }
226:
227: public void setMemberTempPassword(String value) {
228: memberTempPassword = value;
229: }
230:
231: public void setMemberMessageCount(String value) {
232: memberMessageCount = value;
233: }
234:
235: public void setMemberMessageOption(String value) {
236: memberMessageOption = value;
237: }
238:
239: public void setMemberPostsPerPage(String value) {
240: memberPostsPerPage = value;
241: }
242:
243: public void setMemberWarnCount(String value) {
244: memberWarnCount = value;
245: }
246:
247: public void setMemberVoteCount(String value) {
248: memberVoteCount = value;
249: }
250:
251: public void setMemberVoteTotalStars(String value) {
252: memberVoteTotalStars = value;
253: }
254:
255: public void setMemberRewardPoints(String value) {
256: memberRewardPoints = value;
257: }
258:
259: public void setMemberTitle(String value) {
260: memberTitle = value;
261: }
262:
263: public void setMemberTimeZone(String value) {
264: memberTimeZone = value;
265: }
266:
267: public void setMemberSignature(String value) {
268: memberSignature = value;
269: }
270:
271: public void setMemberAvatar(String value) {
272: memberAvatar = value;
273: }
274:
275: public void setMemberSkin(String value) {
276: memberSkin = value;
277: }
278:
279: public void setMemberLanguage(String value) {
280: memberLanguage = value;
281: }
282:
283: public void setMemberFirstname(String value) {
284: memberFirstname = value;
285: }
286:
287: public void setMemberLastname(String value) {
288: memberLastname = value;
289: }
290:
291: public void setMemberGender(String value) {
292: memberGender = value;
293: }
294:
295: public void setMemberBirthday(String value) {
296: memberBirthday = value;
297: }
298:
299: public void setMemberAddress(String value) {
300: memberAddress = value;
301: }
302:
303: public void setMemberCity(String value) {
304: memberCity = value;
305: }
306:
307: public void setMemberState(String value) {
308: memberState = value;
309: }
310:
311: public void setMemberCountry(String value) {
312: memberCountry = value;
313: }
314:
315: public void setMemberPhone(String value) {
316: memberPhone = value;
317: }
318:
319: public void setMemberMobile(String value) {
320: memberMobile = value;
321: }
322:
323: public void setMemberFax(String value) {
324: memberFax = value;
325: }
326:
327: public void setMemberCareer(String value) {
328: memberCareer = value;
329: }
330:
331: public void setMemberHomepage(String value) {
332: memberHomepage = value;
333: }
334:
335: public void setMemberYahoo(String value) {
336: memberYahoo = value;
337: }
338:
339: public void setMemberAol(String value) {
340: memberAol = value;
341: }
342:
343: public void setMemberIcq(String value) {
344: memberIcq = value;
345: }
346:
347: public void setMemberMsn(String value) {
348: memberMsn = value;
349: }
350:
351: public void setMemberCoolLink1(String value) {
352: memberCoolLink1 = value;
353: }
354:
355: public void setMemberCoolLink2(String value) {
356: memberCoolLink2 = value;
357: }
358:
359: public void addMember() throws CreateException,
360: DuplicateKeyException, ObjectNotFoundException,
361: DatabaseException, ForeignKeyNotFoundException,
362: BadInputException {
363:
364: /* First, check if the digester already called this method.
365: * It will happen even under normal circumstances, if this member has
366: * subelements that need it already be defined, so they first call
367: * this method to create member before creating data that refer him.
368: */
369: if (memberCreated)
370: return;
371: /* Then, check if Guest and Admin were created (must be first ones to be created).
372: * Otherwise, DBMS might have added some other (non-reserved) members with these
373: * IDs that are supposed to be reserved for Admin and Guest.
374: * IMPORTANT: First I'll check Admin and then Guest, because Guest's
375: * ID is higher than Admin's.
376: */
377: if (!isAdmin)
378: MvnForumXML.checkAdminMember();
379: if ((!isAdmin) && (!isGuest))
380: MvnForumXML.checkGuestMember();
381:
382: ImportMvnForum.addMessage("Adding member \"" + memberName
383: + "\".");
384: memberXML.addMember(memberName, memberPassword,
385: memberFirstEmail, memberEmail, memberEmailVisible,
386: memberNameVisible, memberFirstIP, memberLastIP,
387: memberViewCount, memberPostCount, memberCreationDate,
388: memberModifiedDate, memberExpireDate,
389: memberPasswordExpireDate, memberLastLogon,
390: memberOption, memberStatus, memberActivateCode,
391: memberTempPassword, memberMessageCount,
392: memberMessageOption, memberPostsPerPage,
393: memberWarnCount, memberVoteCount, memberVoteTotalStars,
394: memberRewardPoints, memberTitle, memberTimeZone,
395: memberSignature, memberAvatar, memberSkin,
396: memberLanguage, memberFirstname, memberLastname,
397: memberGender, memberBirthday, memberAddress,
398: memberCity, memberState, memberCountry, memberPhone,
399: memberMobile, memberFax, memberCareer, memberHomepage,
400: memberYahoo, memberAol, memberIcq, memberMsn,
401: memberCoolLink1, memberCoolLink2);
402: memberCreated = true;
403: if (isAdmin)
404: MvnForumXML.addedAdminMember = true;
405: else if (isGuest)
406: MvnForumXML.addedGuestMember = true;
407: }
408:
409: public void addMemberPermission(String permission)
410: throws CreateException, DuplicateKeyException,
411: ObjectNotFoundException, DatabaseException,
412: ForeignKeyNotFoundException, BadInputException {
413: if ((!memberCreated) || (memberXML.getMemberID() < 0)) {
414: addMember();
415: }
416: ImportMvnForum.addMessage("Adding member permission \""
417: + permission + "\".");
418: memberXML.addMemberPermission(permission);
419: }
420:
421: public void addMessageFolder(String folderName, String folderOrder,
422: String folderCreationDate, String folderModifiedDate)
423: throws CreateException, DuplicateKeyException,
424: ObjectNotFoundException, DatabaseException,
425: ForeignKeyNotFoundException, BadInputException {
426: if ((!memberCreated) || (memberXML.getMemberID() < 0)) {
427: addMember();
428: }
429: ImportMvnForum.addMessage("Adding message folder \""
430: + folderName + "\".");
431: memberXML.addMessageFolder(folderName, folderOrder,
432: folderCreationDate, folderModifiedDate);
433: }
434:
435: public void addGlobalWatch(String watchType, String watchOption,
436: String watchStatus, String watchCreationDate,
437: String watchLastSentDate, String watchEndDate)
438: throws CreateException, DuplicateKeyException,
439: ObjectNotFoundException, DatabaseException,
440: ForeignKeyNotFoundException, BadInputException {
441: if ((!memberCreated) || (memberXML.getMemberID() < 0)) {
442: addMember();
443: }
444: ImportMvnForum.addMessage("Adding global watch.");
445: memberXML.addGlobalWatch(watchType, watchOption, watchStatus,
446: watchCreationDate, watchLastSentDate, watchEndDate);
447: }
448:
449: }
|