1 40 package com.mvnforum.admin; 41 42 import java.io.IOException ; 43 import java.util.*; 44 45 import com.mvnforum.admin.importexport.XMLUtil; 46 import com.mvnforum.admin.importexport.XMLWriter; 47 import com.mvnforum.db.DAOFactory; 48 import com.mvnforum.db.RankDAO; 49 import net.myvietnam.mvncore.exception.*; 50 import net.myvietnam.mvncore.filter.DisableHtmlTagFilter; 51 import net.myvietnam.mvncore.filter.EnableHtmlTagFilter; 52 53 60 public class RankXML { 61 62 private int rankID; 63 65 public int getRankID() { return rankID; } 66 67 public RankXML() { 68 super(); 69 rankID=-1; 70 } 71 72 public void setRankID(String id) { 73 rankID=XMLUtil.stringToIntDef(id, -1); 74 } 75 76 95 public void addRank(String rankMinPosts, String rankLevel, 96 String rankTitle, String rankImage, 97 String rankType, String rankOption) 98 throws CreateException, DuplicateKeyException, 99 ObjectNotFoundException, DatabaseException { 100 101 if ((rankMinPosts==null) || (rankMinPosts.length()<=0) || 102 (rankTitle==null) || (rankTitle.length()<=0)) { 103 throw new CreateException("Not enough data to create a rank."); 104 } else { 105 int rankMinPosts1; 106 int rankLevel1; 107 int rankType1; 108 int rankOption1; 109 try { 110 rankMinPosts1= XMLUtil.stringToIntDef(rankMinPosts, 0); 111 rankLevel1= XMLUtil.stringToIntDef(rankLevel, 0); 112 if (rankImage==null) rankImage=""; 113 rankType1= XMLUtil.stringToIntDef(rankType, 0); 114 rankOption1= XMLUtil.stringToIntDef(rankOption, 0); 115 } catch (NumberFormatException e) { 116 throw new CreateException("Invalid data for a rank. Expected a number."); 117 } 118 119 rankTitle=EnableHtmlTagFilter.filter(rankTitle); 120 rankImage=EnableHtmlTagFilter.filter(rankImage); 121 DAOFactory.getRankDAO().create(rankMinPosts1, rankLevel1, 122 rankTitle, rankImage, 123 rankType1, rankOption1); 124 125 this.rankID=DAOFactory.getRankDAO().getRankIDFromRankTitle(rankTitle); 126 } 127 } 128 129 130 public static void exportRankList(XMLWriter xmlWriter) 134 throws IOException , ExportException, DatabaseException { 135 136 Collection ranks=ExportWebHelper.execSqlQuery( 137 "SELECT RankMinPosts, RankLevel, RankTitle, RankImage, RankType, RankOption"+ 138 " FROM "+RankDAO.TABLE_NAME); 139 Iterator iter=ranks.iterator(); 140 String [] rank=null; 141 xmlWriter.startElement("RankList"); 143 try { 144 while ( (rank=(String [])iter.next()) !=null) { 145 if (rank.length!=6) { 146 throw new ExportException("Error while retrieving list of ranks."); 147 } 148 xmlWriter.startElement("Rank"); 149 xmlWriter.startElement("RankMinPosts"); 150 xmlWriter.writeData(rank[0]); 151 xmlWriter.endElement("RankMinPosts"); 152 xmlWriter.startElement("RankLevel"); 153 xmlWriter.writeData(rank[1]); 154 xmlWriter.endElement("RankLevel"); 155 xmlWriter.startElement("RankTitle"); 156 xmlWriter.writeData(DisableHtmlTagFilter.filter(rank[2])); 157 xmlWriter.endElement("RankTitle"); 158 xmlWriter.startElement("RankImage"); 159 xmlWriter.writeData(DisableHtmlTagFilter.filter(rank[3])); 160 xmlWriter.endElement("RankImage"); 161 xmlWriter.startElement("RankType"); 162 xmlWriter.writeData(rank[4]); 163 xmlWriter.endElement("RankType"); 164 xmlWriter.startElement("RankOption"); 165 xmlWriter.writeData(rank[5]); 166 xmlWriter.endElement("RankOption"); 167 xmlWriter.endElement("Rank"); 168 } 169 } catch (NoSuchElementException e) { 170 } 172 xmlWriter.endElement("RankList"); 173 } 175 } 176 | Popular Tags |