?? postxml.java
字號:
if ((postTopic==null) || (postBody==null)) {
throw new CreateException("Can't create a post with empty PostBody.");
} else {
java.sql.Timestamp postCreationDate1;
java.sql.Timestamp postLastEditDate1;
int postEditCount1;
int postFormatOption1;
int postOption1;
int postStatus1;
int postAttachCount1;
try {
if (memberName==null) memberName="";
if (lastEditMemberName==null) lastEditMemberName="";
postCreationDate1= XMLUtil.stringToSqlTimestampDefNow(postCreationDate);
postLastEditDate1= XMLUtil.stringToSqlTimestampDefNull(postLastEditDate);
if (postCreationIP==null) postCreationIP="0.0.0.0";
if (postLastEditIP==null) postLastEditIP="0.0.0.0";
postEditCount1= XMLUtil.stringToIntDef(postEditCount, 0);
postFormatOption1= XMLUtil.stringToIntDef(postFormatOption, 0);
postOption1= XMLUtil.stringToIntDef(postOption, 0);
postStatus1= XMLUtil.stringToIntDef(postStatus, 0);
if (postIcon==null) postIcon="";
postAttachCount1= XMLUtil.stringToIntDef(postAttachCount, 0);
} catch (NumberFormatException e) {
throw new CreateException("Invalid data for a post. Expected a number.");
}
int memberID=0;
if (!memberName.equals("")) {
memberID=DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);
}
postTopic=EnableHtmlTagFilter.filter(postTopic);
postBody=EnableHtmlTagFilter.filter(postBody);
postIcon=EnableHtmlTagFilter.filter(postIcon);
this.postID = DAOFactory.getPostDAO().createPost(parentPostID,
parentForumID, parentThreadID,
memberID, memberName, lastEditMemberName,
postTopic, postBody, postCreationDate1, postLastEditDate1,
postCreationIP, postLastEditIP,
postEditCount1, postFormatOption1, postOption1,
postStatus1, postIcon, postAttachCount1);
}
}
public void increasePostAttachCount()
throws ObjectNotFoundException, AssertionException, DatabaseException {
if (postID<0) {
throw new ObjectNotFoundException("Can't update PostAttachCount on post that is not created yet.");
}
// we dont want the exception to throw below this
int attachCount = DAOFactory.getAttachmentDAO().getNumberOfBeans_inPost(postID);
DAOFactory.getPostDAO().updateAttachCount(postID, attachCount);
}
// ===============================================================
// ==================== STATIC EXPORT METHODS ====================
// ===============================================================
public static void exportPost(XMLWriter xmlWriter, int postID)
throws NumberFormatException, IOException, ExportException, ObjectNotFoundException,
DatabaseException {
Collection post1=ExportWebHelper.execSqlQuery(
"SELECT MemberName, LastEditMemberName,"+
" PostTopic, PostBody, PostCreationDate, PostLastEditDate,"+
" PostCreationIP, PostLastEditIP, PostEditCount, PostFormatOption,"+
" PostOption, PostStatus, PostIcon, PostAttachCount"+
" FROM "+PostDAO.TABLE_NAME+
" WHERE PostID="+Integer.toString(postID));
Iterator iter=post1.iterator();
String[] post=null;
//try {
try {
if ( (post=(String[])iter.next()) ==null) {
throw new ExportException("Can't find data for postID="+postID);
}
if (post.length!=14) {
throw new ExportException("Error while retrieving data about post with postID="+postID);
}
} catch (NoSuchElementException e) {
throw new ExportException("Can't find data for postID=="+postID);
}
//if I am here, that means I now have correct object post
xmlWriter.startElement("Post");
xmlWriter.startElement("MemberName");
xmlWriter.writeData(post[0]);
xmlWriter.endElement("MemberName");
xmlWriter.startElement("LastEditMemberName");
xmlWriter.writeData(post[1]);
xmlWriter.endElement("LastEditMemberName");
xmlWriter.startElement("PostTopic");
xmlWriter.writeData(DisableHtmlTagFilter.filter(post[2]));
xmlWriter.endElement("PostTopic");
xmlWriter.startElement("PostBody");
xmlWriter.writeData(DisableHtmlTagFilter.filter(post[3]));
xmlWriter.endElement("PostBody");
xmlWriter.startElement("PostCreationDate");
xmlWriter.writeData(post[4]);
xmlWriter.endElement("PostCreationDate");
xmlWriter.startElement("PostLastEditDate");
xmlWriter.writeData(post[5]);
xmlWriter.endElement("PostLastEditDate");
xmlWriter.startElement("PostCreationIP");
xmlWriter.writeData(post[6]);
xmlWriter.endElement("PostCreationIP");
xmlWriter.startElement("PostLastEditIP");
xmlWriter.writeData(post[7]);
xmlWriter.endElement("PostLastEditIP");
xmlWriter.startElement("PostEditCount");
xmlWriter.writeData(post[8]);
xmlWriter.endElement("PostEditCount");
xmlWriter.startElement("PostFormatOption");
xmlWriter.writeData(post[9]);
xmlWriter.endElement("PostFormatOption");
xmlWriter.startElement("PostOption");
xmlWriter.writeData(post[10]);
xmlWriter.endElement("PostOption");
xmlWriter.startElement("PostStatus");
xmlWriter.writeData(post[11]);
xmlWriter.endElement("PostStatus");
xmlWriter.startElement("PostIcon");
xmlWriter.writeData(DisableHtmlTagFilter.filter(post[12]));
xmlWriter.endElement("PostIcon");
xmlWriter.startElement("PostAttachCount");
xmlWriter.writeData(post[13]);
xmlWriter.endElement("PostAttachCount");
AttachmentXML.exportAttachmentList(xmlWriter, postID);
exportPostList_Replies(xmlWriter, postID/*parentPostID*/);
xmlWriter.endElement("Post");
//} catch throw exportexception
}
public static void exportPostList_FirstPosts(XMLWriter xmlWriter, int parentThreadID)
throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
Collection postIDs=ExportWebHelper.execSqlQuery(
"SELECT PostID"+
" FROM "+PostDAO.TABLE_NAME+
" WHERE ThreadID="+Integer.toString(parentThreadID)+
" AND ParentPostID=0");
Iterator iter=postIDs.iterator();
String[] postID=null;
//try {
xmlWriter.startElement("PostList");
try {
while ( (postID=(String[])iter.next()) !=null) {
if (postID.length!=1) {
throw new ExportException("Error while retrieving list of posts in threadID="+parentThreadID+".");
}
try {
int i=Integer.parseInt(postID[0]);
exportPost(xmlWriter, i);
} catch (NumberFormatException e) {
throw new ExportException("Error while retrieving list of posts in threadID="+parentThreadID+".");
}
}
} catch (NoSuchElementException e) {
//no more database records
}
xmlWriter.endElement("PostList");
//} catch throw exportexception
}
public static void exportPostList_Replies(XMLWriter xmlWriter, int parentPostID)
throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
Collection postIDs=ExportWebHelper.execSqlQuery(
"SELECT PostID"+
" FROM "+PostDAO.TABLE_NAME+
" WHERE ParentPostID="+Integer.toString(parentPostID));
Iterator iter=postIDs.iterator();
String[] postID=null;
//try {
xmlWriter.startElement("PostList");
try {
while ( (postID=(String[])iter.next()) !=null) {
if (postID.length!=1) {
throw new ExportException("Error while retrieving list of replies to postID="+parentPostID+".");
}
try {
int i=Integer.parseInt(postID[0]);
exportPost(xmlWriter, i);
} catch (NumberFormatException e) {
throw new ExportException("Error while retrieving list of replies to postID="+parentPostID+".");
}
}
} catch (NoSuchElementException e) {
//no more database records
}
xmlWriter.endElement("PostList");
//} catch throw exportexception
}
//todo Igor important: merge exportPostList and exportPost so I use only one SQL query
//same for category(list), ...
public static void exportPostList(XMLWriter xmlWriter, int parentThreadID)
throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
/* Export only root posts (of thread parentThreadID) here.
* Replies will be exported under <PostList> of each root <Post>.
*/
exportPostList_FirstPosts(xmlWriter, parentThreadID);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -