//# 3 errors, 654 messages
//#
package net.sourceforge.pebble.dao.file;
    //#blogentryhandler.java:1:1: class: net.sourceforge.pebble.dao.file.BlogEntryHandler

import net.sourceforge.pebble.domain.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class BlogEntryHandler extends DefaultHandler {

  /** the log used by this class */
  private static Log log = LogFactory.getLog(BlogEntryHandler.class);
    //#blogentryhandler.java:19: method: net.sourceforge.pebble.dao.file.BlogEntryHandler.net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init
    //#blogentryhandler.java:19: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Descendant_Table[net/sourceforge/pebble/dao/file/BlogEntryHandler]
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.characters([CII)V
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.error(Lorg/xml/sax/SAXParseException;)V
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.fatalError(Lorg/xml/sax/SAXParseException;)V
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.getDate(Ljava/lang/String;)Ljava/util/Date;
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.warning(Lorg/xml/sax/SAXParseException;)V
    //#output(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): log
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Descendant_Table[net/sourceforge/pebble/dao/file/BlogEntryHandler] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.characters([CII)V == &characters
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V == &endElement
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.error(Lorg/xml/sax/SAXParseException;)V == &error
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.fatalError(Lorg/xml/sax/SAXParseException;)V == &fatalError
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.getDate(Ljava/lang/String;)Ljava/util/Date; == &getDate
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V == &startElement
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): __Dispatch_Table.warning(Lorg/xml/sax/SAXParseException;)V == &warning
    //#post(net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init): init'ed(log)
    //#blogentryhandler.java:19: end of method: net.sourceforge.pebble.dao.file.BlogEntryHandler.net.sourceforge.pebble.dao.file.BlogEntryHandler__static_init

  private static final int NOT_DEFINED = -1;
  private static final int TITLE = 0;
  private static final int EXCERPT = 1;
  private static final int BODY = 2;
  private static final int DATE = 3;
  private static final int AUTHOR = 4;
  private static final int ORIGINAL_PERMALINK = 5;
  private static final int STATIC_NAME = 6;
  private static final int CATEGORY = 7;
  private static final int COMMENTS_ENABLED = 8;
  private static final int TRACKBACKS_ENABLED = 9;
  private static final int EMAIL = 10;
  private static final int WEBSITE = 11;
  private static final int BLOG_NAME = 12;
  private static final int URL = 13;
  private static final int PARENT = 14;
  private static final int IP_ADDRESS = 15;
  private static final int SIZE = 16;
  private static final int TYPE = 17;
  private static final int STATE = 18;
  private static final int TAGS = 19;
  private static final int SUBTITLE = 20;
  private static final int TIME_ZONE = 21;
  private static final int AUTHENTICATED = 22;

  private static final int IN_BLOG_ENTRY = 100;
  private static final int IN_COMMENT = 101;
  private static final int IN_TRACKBACK = 102;
  private static final int IN_ATTACHMENT = 103;

  private BlogEntry blogEntry;
  private int groupStatus = IN_BLOG_ENTRY;
  private int elementStatus = NOT_DEFINED;
  private SimpleDateFormat dateTimeFormats[];

  private StringBuffer elementContent;

  private String attachmentUrl;
  private String attachmentSize;
  private String attachmentType;

  private String commentTitle;
  private String commentBody;
  private String commentAuthor;
  private String commentWebsite;
  private String commentIpAddress;
  private String commentEmail;
  private Date commentDate;
  private long commentParent = -1;
  private State commentState = State.APPROVED;
  private boolean commentAuthenticated = false;

  private String trackBackTitle;
  private String trackBackExcerpt;
  private String trackBackBlogName;
  private String trackBackUrl;
  private String trackBackIpAddress;
  private Date trackBackDate;
  private State trackBackState = State.APPROVED;

  public BlogEntryHandler(BlogEntry blogEntry) {
    //#blogentryhandler.java:81: method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#blogentryhandler.java:81: Warning: method not available
    //#    -- call on void org.xml.sax.helpers.DefaultHandler()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: void org.xml.sax.helpers.DefaultHandler()
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): blogEntry
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): blogEntry.__Tag
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): blogEntry.blog
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): java.util.Locale.ENGLISH
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): net/sourceforge/pebble/domain/State.APPROVED
    //#input(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#2) num objects
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#3) num objects
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#4) num objects
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#5) num objects
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#6) num objects
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#7) num objects
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat[](BlogEntryHandler#1) num objects
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats.length
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[0]
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[1]
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[2]
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[3]
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[4]
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[5]
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.blogEntry
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.commentAuthenticated
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.commentParent
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.commentState
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.elementStatus
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.groupStatus
    //#output(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.trackBackState
    //#new obj(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#2)
    //#new obj(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#3)
    //#new obj(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#4)
    //#new obj(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#5)
    //#new obj(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#6)
    //#new obj(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#7)
    //#new obj(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat[](BlogEntryHandler#1)
    //#pre[1] (void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): blogEntry != null
    //#pre[2] (void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): blogEntry.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#pre[3] (void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): blogEntry.blog != null
    //#presumption(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): init'ed(java.util.Locale.ENGLISH)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.blogEntry == blogEntry
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.blogEntry != null
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.commentAuthenticated == 0
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.commentParent == -1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.elementStatus == -1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.commentState == &net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#1)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.trackBackState == &net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#1)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats == &new SimpleDateFormat[](BlogEntryHandler#1)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.groupStatus == 100
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#2) num objects == 1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#3) num objects == 1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#4) num objects == 1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#5) num objects == 1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#6) num objects == 1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat(BlogEntryHandler#7) num objects == 1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): new SimpleDateFormat[](BlogEntryHandler#1) num objects == 1
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats.length == 6
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[0] == &new SimpleDateFormat(BlogEntryHandler#2)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[1] == &new SimpleDateFormat(BlogEntryHandler#3)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[2] == &new SimpleDateFormat(BlogEntryHandler#4)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[3] == &new SimpleDateFormat(BlogEntryHandler#5)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[4] == &new SimpleDateFormat(BlogEntryHandler#6)
    //#post(void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)): this.dateTimeFormats[5] == &new SimpleDateFormat(BlogEntryHandler#7)
    this.blogEntry = blogEntry;

    // create all date/time formats, for backwards compatibility
    SimpleDateFormat format;
    dateTimeFormats = new SimpleDateFormat[6];

    format = new SimpleDateFormat(FileBlogEntryDAO.NEW_PERSISTENT_DATETIME_FORMAT, Locale.ENGLISH);
    format.setTimeZone(blogEntry.getBlog().getTimeZone());
    //#blogentryhandler.java:89: Warning: method not available
    //#    -- call on TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    dateTimeFormats[0] = format;

    format = new SimpleDateFormat(FileBlogEntryDAO.NEW_PERSISTENT_DATETIME_FORMAT, blogEntry.getBlog().getLocale());
    //#blogentryhandler.java:92: Warning: method not available
    //#    -- call on Locale net.sourceforge.pebble.domain.Blog:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: Locale net.sourceforge.pebble.domain.Blog:getLocale()
    format.setTimeZone(blogEntry.getBlog().getTimeZone());
    //#blogentryhandler.java:93: Warning: method not available
    //#    -- call on TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    dateTimeFormats[1] = format;

    format = new SimpleDateFormat(FileBlogEntryDAO.NEW_PERSISTENT_DATETIME_FORMAT);
    format.setTimeZone(blogEntry.getBlog().getTimeZone());
    //#blogentryhandler.java:97: Warning: method not available
    //#    -- call on TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    dateTimeFormats[2] = format;

    format = new SimpleDateFormat(FileBlogEntryDAO.OLD_PERSISTENT_DATETIME_FORMAT, Locale.ENGLISH);
    format.setTimeZone(blogEntry.getBlog().getTimeZone());
    //#blogentryhandler.java:101: Warning: method not available
    //#    -- call on TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    dateTimeFormats[3] = format;

    format = new SimpleDateFormat(FileBlogEntryDAO.OLD_PERSISTENT_DATETIME_FORMAT, blogEntry.getBlog().getLocale());
    //#blogentryhandler.java:104: Warning: method not available
    //#    -- call on Locale net.sourceforge.pebble.domain.Blog:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: Locale net.sourceforge.pebble.domain.Blog:getLocale()
    format.setTimeZone(blogEntry.getBlog().getTimeZone());
    //#blogentryhandler.java:105: Warning: method not available
    //#    -- call on TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    dateTimeFormats[4] = format;

    format = new SimpleDateFormat(FileBlogEntryDAO.OLD_PERSISTENT_DATETIME_FORMAT);
    format.setTimeZone(blogEntry.getBlog().getTimeZone());
    //#blogentryhandler.java:109: Warning: method not available
    //#    -- call on TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)
    //#    unanalyzed callee: TimeZone net.sourceforge.pebble.domain.Blog:getTimeZone()
    dateTimeFormats[5] = format;
  }
    //#blogentryhandler.java:111: end of method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.net.sourceforge.pebble.dao.file.BlogEntryHandler(BlogEntry)

  public void startElement(String uri, String name, String qName, Attributes attributes) throws SAXException {
    //log.info("startElement : " + name);
    elementContent = new StringBuffer();
    //#blogentryhandler.java:115: method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.startElement(String, String, String, Attributes)
    //#input(void startElement(String, String, String, Attributes)): name
    //#input(void startElement(String, String, String, Attributes)): this
    //#output(void startElement(String, String, String, Attributes)): new StringBuffer(startElement#1) num objects
    //#output(void startElement(String, String, String, Attributes)): this.elementContent
    //#output(void startElement(String, String, String, Attributes)): this.elementStatus
    //#output(void startElement(String, String, String, Attributes)): this.groupStatus
    //#new obj(void startElement(String, String, String, Attributes)): new StringBuffer(startElement#1)
    //#pre[1] (void startElement(String, String, String, Attributes)): name != null
    //#post(void startElement(String, String, String, Attributes)): this.elementContent == &new StringBuffer(startElement#1)
    //#post(void startElement(String, String, String, Attributes)): this.elementStatus in -1..22
    //#post(void startElement(String, String, String, Attributes)): possibly_updated(this.groupStatus)
    //#post(void startElement(String, String, String, Attributes)): new StringBuffer(startElement#1) num objects == 1
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@116: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@118: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@120: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@122: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@124: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@126: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@128: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@130: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@132: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@134: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@136: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@138: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@140: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@142: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@144: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@146: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@148: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@150: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@152: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@154: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@156: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@158: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@160: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@162: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@165: {0}, {1}
    //#test_vector(void startElement(String, String, String, Attributes)): java.lang.String:equals(...)@168: {0}, {1}
    if (name.equals("title")) {
      elementStatus = TITLE;
    } else if (name.equals("subtitle")) {
      elementStatus = SUBTITLE;
    } else if (name.equals("excerpt")) {
      elementStatus = EXCERPT;
    } else if (name.equals("body")) {
      elementStatus = BODY;
    } else if (name.equals("date")) {
      elementStatus = DATE;
    } else if (name.equals("timeZone")) {
      elementStatus = TIME_ZONE;
    } else if (name.equals("author")) {
      elementStatus = AUTHOR;
    } else if (name.equals("originalPermalink")) {
      elementStatus = ORIGINAL_PERMALINK;
    } else if (name.equals("staticName")) {
      elementStatus = STATIC_NAME;
    } else if (name.equals("category")) {
      elementStatus = CATEGORY;
    } else if (name.equals("tags")) {
      elementStatus = TAGS;
    } else if (name.equals("commentsEnabled")) {
      elementStatus = COMMENTS_ENABLED;
    } else if (name.equals("trackBacksEnabled")) {
      elementStatus = TRACKBACKS_ENABLED;
    } else if (name.equals("email")) {
      elementStatus = EMAIL;
    } else if (name.equals("website")) {
      elementStatus = WEBSITE;
    } else if (name.equals("ipAddress")) {
      elementStatus = IP_ADDRESS;
    } else if (name.equals("authenticated")) {
      elementStatus = AUTHENTICATED;
    } else if (name.equals("blogName")) {
      elementStatus = BLOG_NAME;
    } else if (name.equals("url")) {
      elementStatus = URL;
    } else if (name.equals("parent")) {
      elementStatus = PARENT;
    } else if (name.equals("state")) {
      elementStatus = STATE;
    } else if (name.equals("size")) {
      elementStatus = SIZE;
    } else if (name.equals("type")) {
      elementStatus = TYPE;
    } else if (name.equals("attachment")) {
      groupStatus = IN_ATTACHMENT;
      elementStatus = NOT_DEFINED;
    } else if (name.equals("comment")) {
      groupStatus = IN_COMMENT;
      elementStatus = NOT_DEFINED;
    } else if (name.equals("trackback")) {
      groupStatus = IN_TRACKBACK;
      elementStatus = NOT_DEFINED;
    } else {
      elementStatus = NOT_DEFINED;
    }
  }
    //#blogentryhandler.java:174: end of method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.startElement(String, String, String, Attributes)

  public void endElement(String uri, String name, String qName) throws SAXException {
    //log.info("endElement : " + name);
    if (groupStatus == IN_BLOG_ENTRY) {
    //#blogentryhandler.java:178: method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.endElement(String, String, String)
    //#input(void endElement(String, String, String)): log
    //#input(void endElement(String, String, String)): name
    //#input(void endElement(String, String, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#1).__Tag
    //#input(void endElement(String, String, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#2).__Tag
    //#input(void endElement(String, String, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#3).__Tag
    //#input(void endElement(String, String, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4).__Tag
    //#input(void endElement(String, String, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4).name
    //#input(void endElement(String, String, String)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Attachment.__Descendant_Table[net/sourceforge/pebble/domain/Attachment]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.setSize(J)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.setType(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Attachment.__Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getCategory(Ljava/lang/String;)Lnet/sourceforge/pebble/domain/Category;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.addCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.addComment(Lnet/sourceforge/pebble/domain/Comment;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.addEvent(Lnet/sourceforge/pebble/api/event/PebbleEvent;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.addTrackBack(Lnet/sourceforge/pebble/domain/TrackBack;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.areEventsEnabled()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.createComment(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Lnet/sourceforge/pebble/domain/State;)Lnet/sourceforge/pebble/domain/Comment;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.createTrackBack(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Lnet/sourceforge/pebble/domain/State;)Lnet/sourceforge/pebble/domain/TrackBack;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getCategories()Ljava/util/Set;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getComment(J)Lnet/sourceforge/pebble/domain/Comment;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getComments()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isUnpublished()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setAttachment(Lnet/sourceforge/pebble/domain/Attachment;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setAuthor(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setBody(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setCommentsEnabled(Z)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setExcerpt(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setOriginalPermalink(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setPublished(Z)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setSubtitle(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setTags(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setTimeZoneId(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setTitle(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.setTrackBacksEnabled(Z)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addSubCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getSubCategories()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.isRootCategory()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setId(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setParent(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[net/sourceforge/pebble/domain/CategoryBuilder]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.addCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategory(Ljava/lang/String;)Lnet/sourceforge/pebble/domain/Category;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.addComment(Lnet/sourceforge/pebble/domain/Comment;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.areEventsEnabled()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getComments()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.isApproved()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.isRejected()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setAuthenticated(Z)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setAuthor(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setBlogEntry(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setBody(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setEmail(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setEventsEnabled(Z)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setIpAddress(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setParent(Lnet/sourceforge/pebble/domain/Comment;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setTitle(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setWebsite(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.setIpAddress(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.setTitle(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.APPROVED
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.PENDING
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.REJECTED
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.UNPUBLISHED
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/StaticPage.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/StaticPage.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/domain/Tag]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.areEventsEnabled()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.isApproved()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.isRejected()Z
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setBlogName(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setEventsEnabled(Z)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setExcerpt(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setIpAddress(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setState(Lnet/sourceforge/pebble/domain/State;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setTitle(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void endElement(String, String, String)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void endElement(String, String, String)): this
    //#input(void endElement(String, String, String)): this.attachmentSize
    //#input(void endElement(String, String, String)): this.attachmentType
    //#input(void endElement(String, String, String)): this.attachmentUrl
    //#input(void endElement(String, String, String)): this.blogEntry
    //#input(void endElement(String, String, String)): this.blogEntry.__Tag
    //#input(void endElement(String, String, String)): this.blogEntry.attachment
    //#input(void endElement(String, String, String)): this.blogEntry.blog
    //#input(void endElement(String, String, String)): this.blogEntry.blog.__Tag
    //#input(void endElement(String, String, String)): this.blogEntry.blog.rootCategory
    //#input(void endElement(String, String, String)): this.blogEntry.blog.rootCategory...__Tag
    //#input(void endElement(String, String, String)): this.blogEntry.blog.rootCategory.__Tag
    //#input(void endElement(String, String, String)): this.blogEntry.body
    //#input(void endElement(String, String, String)): this.blogEntry.categories
    //#input(void endElement(String, String, String)): this.blogEntry.comments
    //#input(void endElement(String, String, String)): this.blogEntry.commentsEnabled
    //#input(void endElement(String, String, String)): this.blogEntry.date
    //#input(void endElement(String, String, String)): this.blogEntry.events
    //#input(void endElement(String, String, String)): this.blogEntry.eventsEnabled
    //#input(void endElement(String, String, String)): this.blogEntry.excerpt
    //#input(void endElement(String, String, String)): this.blogEntry.originalPermalink
    //#input(void endElement(String, String, String)): this.blogEntry.propertyChangeSupport
    //#input(void endElement(String, String, String)): this.blogEntry.state.__Tag
    //#input(void endElement(String, String, String)): this.blogEntry.subtitle
    //#input(void endElement(String, String, String)): this.blogEntry.tags
    //#input(void endElement(String, String, String)): this.blogEntry.title
    //#input(void endElement(String, String, String)): this.blogEntry.trackBacks
    //#input(void endElement(String, String, String)): this.blogEntry.trackBacksEnabled
    //#input(void endElement(String, String, String)): this.commentAuthenticated
    //#input(void endElement(String, String, String)): this.commentAuthor
    //#input(void endElement(String, String, String)): this.commentBody
    //#input(void endElement(String, String, String)): this.commentDate
    //#input(void endElement(String, String, String)): this.commentEmail
    //#input(void endElement(String, String, String)): this.commentIpAddress
    //#input(void endElement(String, String, String)): this.commentParent
    //#input(void endElement(String, String, String)): this.commentState
    //#input(void endElement(String, String, String)): this.commentState.__Tag
    //#input(void endElement(String, String, String)): this.commentTitle
    //#input(void endElement(String, String, String)): this.commentWebsite
    //#input(void endElement(String, String, String)): this.dateTimeFormats
    //#input(void endElement(String, String, String)): this.dateTimeFormats.length
    //#input(void endElement(String, String, String)): this.dateTimeFormats[0..4_294_967_295]
    //#input(void endElement(String, String, String)): this.elementContent
    //#input(void endElement(String, String, String)): this.elementStatus
    //#input(void endElement(String, String, String)): this.groupStatus
    //#input(void endElement(String, String, String)): this.trackBackBlogName
    //#input(void endElement(String, String, String)): this.trackBackDate
    //#input(void endElement(String, String, String)): this.trackBackExcerpt
    //#input(void endElement(String, String, String)): this.trackBackIpAddress
    //#input(void endElement(String, String, String)): this.trackBackState
    //#input(void endElement(String, String, String)): this.trackBackState.__Tag
    //#input(void endElement(String, String, String)): this.trackBackTitle
    //#input(void endElement(String, String, String)): this.trackBackUrl
    //#output(void endElement(String, String, String)): new ArrayList(Category#1) num objects
    //#output(void endElement(String, String, String)): new ArrayList(Category#2) num objects
    //#output(void endElement(String, String, String)): new ArrayList(Category#3) num objects
    //#output(void endElement(String, String, String)): new ArrayList(parse#1) num objects
    //#output(void endElement(String, String, String)): new Attachment(endElement#1) num objects
    //#output(void endElement(String, String, String)): new Attachment(endElement#1).__Tag
    //#output(void endElement(String, String, String)): new Attachment(endElement#1).size
    //#output(void endElement(String, String, String)): new Attachment(endElement#1).type
    //#output(void endElement(String, String, String)): new Attachment(endElement#1).url
    //#output(void endElement(String, String, String)): new Category(getCategory#2*) num objects
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).__Tag
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).blog
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).blogEntries
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).id
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).name
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).parent
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).subCategories
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).tags
    //#output(void endElement(String, String, String)): new Category(getCategory#2*).tagsAsList
    //#output(void endElement(String, String, String)): new Category(getCategory#3*) num objects
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).__Tag
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).blog
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).blogEntries
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).id
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).name
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).parent
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).subCategories
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).tags
    //#output(void endElement(String, String, String)): new Category(getCategory#3*).tagsAsList
    //#output(void endElement(String, String, String)): this.attachmentSize
    //#output(void endElement(String, String, String)): this.attachmentType
    //#output(void endElement(String, String, String)): this.attachmentUrl
    //#output(void endElement(String, String, String)): this.blogEntry.attachment
    //#output(void endElement(String, String, String)): this.blogEntry.author
    //#output(void endElement(String, String, String)): this.blogEntry.body
    //#output(void endElement(String, String, String)): this.blogEntry.commentsEnabled
    //#output(void endElement(String, String, String)): this.blogEntry.date
    //#output(void endElement(String, String, String)): this.blogEntry.excerpt
    //#output(void endElement(String, String, String)): this.blogEntry.id
    //#output(void endElement(String, String, String)): this.blogEntry.originalPermalink
    //#output(void endElement(String, String, String)): this.blogEntry.permalink
    //#output(void endElement(String, String, String)): this.blogEntry.state
    //#output(void endElement(String, String, String)): this.blogEntry.subtitle
    //#output(void endElement(String, String, String)): this.blogEntry.tags
    //#output(void endElement(String, String, String)): this.blogEntry.tagsAsCommaSeparated
    //#output(void endElement(String, String, String)): this.blogEntry.tagsAsList
    //#output(void endElement(String, String, String)): this.blogEntry.timeZoneId
    //#output(void endElement(String, String, String)): this.blogEntry.title
    //#output(void endElement(String, String, String)): this.blogEntry.trackBacksEnabled
    //#output(void endElement(String, String, String)): this.commentAuthenticated
    //#output(void endElement(String, String, String)): this.commentAuthor
    //#output(void endElement(String, String, String)): this.commentBody
    //#output(void endElement(String, String, String)): this.commentDate
    //#output(void endElement(String, String, String)): this.commentEmail
    //#output(void endElement(String, String, String)): this.commentIpAddress
    //#output(void endElement(String, String, String)): this.commentParent
    //#output(void endElement(String, String, String)): this.commentState
    //#output(void endElement(String, String, String)): this.commentTitle
    //#output(void endElement(String, String, String)): this.commentWebsite
    //#output(void endElement(String, String, String)): this.elementStatus
    //#output(void endElement(String, String, String)): this.groupStatus
    //#output(void endElement(String, String, String)): this.trackBackBlogName
    //#output(void endElement(String, String, String)): this.trackBackDate
    //#output(void endElement(String, String, String)): this.trackBackExcerpt
    //#output(void endElement(String, String, String)): this.trackBackIpAddress
    //#output(void endElement(String, String, String)): this.trackBackState
    //#output(void endElement(String, String, String)): this.trackBackTitle
    //#output(void endElement(String, String, String)): this.trackBackUrl
    //#new obj(void endElement(String, String, String)): new ArrayList(Category#1)
    //#new obj(void endElement(String, String, String)): new ArrayList(Category#2)
    //#new obj(void endElement(String, String, String)): new ArrayList(Category#3)
    //#new obj(void endElement(String, String, String)): new ArrayList(parse#1)
    //#new obj(void endElement(String, String, String)): new Attachment(endElement#1)
    //#new obj(void endElement(String, String, String)): new Category(getCategory#2*)
    //#new obj(void endElement(String, String, String)): new Category(getCategory#3*)
    //#pre[39] (void endElement(String, String, String)): init'ed(this.groupStatus)
    //#pre[1] (void endElement(String, String, String)): (soft) log != null
    //#pre[2] (void endElement(String, String, String)): (soft) name != null
    //#pre[6] (void endElement(String, String, String)): (soft) init'ed(net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#4).name)
    //#pre[8] (void endElement(String, String, String)): (soft) init'ed(this.attachmentSize)
    //#pre[9] (void endElement(String, String, String)): (soft) init'ed(this.attachmentType)
    //#pre[10] (void endElement(String, String, String)): (soft) init'ed(this.attachmentUrl)
    //#pre[11] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.attachment)
    //#pre[13] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.body)
    //#pre[14] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.commentsEnabled)
    //#pre[15] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.date)
    //#pre[16] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.excerpt)
    //#pre[18] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.originalPermalink)
    //#pre[21] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.subtitle)
    //#pre[22] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.tags)
    //#pre[26] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.title)
    //#pre[27] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.trackBacksEnabled)
    //#pre[28] (void endElement(String, String, String)): (soft) init'ed(this.commentAuthenticated)
    //#pre[29] (void endElement(String, String, String)): (soft) init'ed(this.commentAuthor)
    //#pre[30] (void endElement(String, String, String)): (soft) init'ed(this.commentBody)
    //#pre[31] (void endElement(String, String, String)): (soft) init'ed(this.commentDate)
    //#pre[32] (void endElement(String, String, String)): (soft) init'ed(this.commentEmail)
    //#pre[33] (void endElement(String, String, String)): (soft) init'ed(this.commentIpAddress)
    //#pre[34] (void endElement(String, String, String)): (soft) init'ed(this.commentParent)
    //#pre[35] (void endElement(String, String, String)): (soft) init'ed(this.commentState)
    //#pre[36] (void endElement(String, String, String)): (soft) init'ed(this.commentTitle)
    //#pre[37] (void endElement(String, String, String)): (soft) init'ed(this.commentWebsite)
    //#pre[38] (void endElement(String, String, String)): (soft) init'ed(this.elementStatus)
    //#pre[40] (void endElement(String, String, String)): (soft) init'ed(this.trackBackBlogName)
    //#pre[41] (void endElement(String, String, String)): (soft) init'ed(this.trackBackDate)
    //#pre[42] (void endElement(String, String, String)): (soft) init'ed(this.trackBackExcerpt)
    //#pre[43] (void endElement(String, String, String)): (soft) init'ed(this.trackBackIpAddress)
    //#pre[44] (void endElement(String, String, String)): (soft) init'ed(this.trackBackState)
    //#pre[45] (void endElement(String, String, String)): (soft) init'ed(this.trackBackTitle)
    //#pre[46] (void endElement(String, String, String)): (soft) init'ed(this.trackBackUrl)
    //#pre[48] (void endElement(String, String, String)): (soft) this.blogEntry != null
    //#pre[49] (void endElement(String, String, String)): (soft) this.blogEntry.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#pre[50] (void endElement(String, String, String)): (soft) this.blogEntry.blog != null
    //#pre[51] (void endElement(String, String, String)): (soft) this.blogEntry.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[52] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.blog.rootCategory)
    //#pre[60] (void endElement(String, String, String)): (soft) this.blogEntry.categories != null
    //#pre[61] (void endElement(String, String, String)): (soft) this.blogEntry.comments != null
    //#pre[62] (void endElement(String, String, String)): (soft) this.blogEntry.events != null
    //#pre[63] (void endElement(String, String, String)): (soft) init'ed(this.blogEntry.eventsEnabled)
    //#pre[64] (void endElement(String, String, String)): (soft) this.blogEntry.propertyChangeSupport != null
    //#pre[67] (void endElement(String, String, String)): (soft) this.blogEntry.trackBacks != null
    //#pre[70] (void endElement(String, String, String)): (soft) this.dateTimeFormats != null
    //#pre[71] (void endElement(String, String, String)): (soft) this.dateTimeFormats.length <= 4_294_967_295
    //#pre[72] (void endElement(String, String, String)): (soft) this.dateTimeFormats[0..4_294_967_295] != null
    //#pre[73] (void endElement(String, String, String)): (soft) this.elementContent != null
    //#presumption(void endElement(String, String, String)): java.lang.Boolean:valueOf(...)@218 != null
    //#presumption(void endElement(String, String, String)): java.lang.Boolean:valueOf(...)@221 != null
    //#presumption(void endElement(String, String, String)): java.util.Calendar:getTime(...)@187 != null
    //#post(void endElement(String, String, String)): init'ed(this.attachmentSize)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.attachmentType)
    //#post(void endElement(String, String, String)): init'ed(this.attachmentUrl)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.blogEntry.attachment)
    //#post(void endElement(String, String, String)): possibly_updated(this.blogEntry.author)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.blogEntry.body)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.blogEntry.commentsEnabled)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.blogEntry.date)
    //#post(void endElement(String, String, String)): init'ed(this.blogEntry.excerpt)
    //#post(void endElement(String, String, String)): possibly_updated(this.blogEntry.id)
    //#post(void endElement(String, String, String)): init'ed(this.blogEntry.originalPermalink)
    //#post(void endElement(String, String, String)): possibly_updated(this.blogEntry.permalink)
    //#post(void endElement(String, String, String)): possibly_updated(this.blogEntry.state)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.blogEntry.subtitle)
    //#post(void endElement(String, String, String)): init'ed(this.blogEntry.tags)
    //#post(void endElement(String, String, String)): possibly_updated(this.blogEntry.tagsAsCommaSeparated)
    //#post(void endElement(String, String, String)): possibly_updated(this.blogEntry.tagsAsList)
    //#post(void endElement(String, String, String)): possibly_updated(this.blogEntry.timeZoneId)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.blogEntry.title)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.blogEntry.trackBacksEnabled)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.commentAuthenticated)
    //#post(void endElement(String, String, String)): init'ed(this.commentAuthor)
    //#post(void endElement(String, String, String)): init'ed(this.commentBody)
    //#post(void endElement(String, String, String)): init'ed(this.commentDate)
    //#post(void endElement(String, String, String)): init'ed(this.commentEmail)
    //#post(void endElement(String, String, String)): init'ed(this.commentIpAddress)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.commentParent)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.commentState)
    //#post(void endElement(String, String, String)): init'ed(this.commentTitle)
    //#post(void endElement(String, String, String)): init'ed(this.commentWebsite)
    //#post(void endElement(String, String, String)): this.elementStatus == -1
    //#post(void endElement(String, String, String)): init'ed(this.groupStatus)
    //#post(void endElement(String, String, String)): init'ed(this.trackBackBlogName)
    //#post(void endElement(String, String, String)): init'ed(this.trackBackDate)
    //#post(void endElement(String, String, String)): init'ed(this.trackBackExcerpt)
    //#post(void endElement(String, String, String)): init'ed(this.trackBackIpAddress)
    //#post(void endElement(String, String, String)): (soft) init'ed(this.trackBackState)
    //#post(void endElement(String, String, String)): init'ed(this.trackBackTitle)
    //#post(void endElement(String, String, String)): init'ed(this.trackBackUrl)
    //#post(void endElement(String, String, String)): init'ed(new ArrayList(Category#1) num objects)
    //#post(void endElement(String, String, String)): init'ed(new ArrayList(Category#2) num objects)
    //#post(void endElement(String, String, String)): init'ed(new ArrayList(Category#3) num objects)
    //#post(void endElement(String, String, String)): new ArrayList(parse#1) num objects <= 1
    //#post(void endElement(String, String, String)): new Attachment(endElement#1) num objects <= 1
    //#post(void endElement(String, String, String)): init'ed(new Attachment(endElement#1).__Tag)
    //#post(void endElement(String, String, String)): init'ed(new Attachment(endElement#1).size)
    //#post(void endElement(String, String, String)): init'ed(new Attachment(endElement#1).type)
    //#post(void endElement(String, String, String)): init'ed(new Attachment(endElement#1).url)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#2*) num objects)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#2*).__Tag)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#2*).blog)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#2*).blogEntries)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#2*).id)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#2*).name)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#2*).parent)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#2*).subCategories)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#2*).tags)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#2*).tagsAsList)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#3*) num objects)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#3*).__Tag)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#3*).blog)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#3*).blogEntries)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#3*).id)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#3*).name)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#3*).parent)
    //#post(void endElement(String, String, String)): possibly_updated(new Category(getCategory#3*).subCategories)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#3*).tags)
    //#post(void endElement(String, String, String)): init'ed(new Category(getCategory#3*).tagsAsList)
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.text.SimpleDateFormat:parse
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getComment
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:addComment
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.beans.PropertyChangeSupport:firePropertyChange
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:setState
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.util.StringUtils:transformHTML
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getSubCategories
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getCategory
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.util.I18n:getMessage
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.Category
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:addCategory
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getId
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:setBlog
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:isRootCategory
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:addSubCategory
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Set:contains
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Set:add
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:replaceAll
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:toLowerCase
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getAllTags
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getTagsAsList
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.Response
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.util.StringUtils:filterHTML
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getComments
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.api.event.PebbleEvent
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Date
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getBlog
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getCalendar
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.EventObject
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getState
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:areEventsEnabled
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:isApproved
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:isRejected
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.Content
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getBlogEntry
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:addEvent
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getTitle
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Collections:unmodifiableList
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Set:size
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.util.Collections:reverse
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:getRootCategory
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.beans.PropertyChangeSupport
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:java.beans.PropertyChangeSupport:addPropertyChangeListener
    //#unanalyzed(void endElement(String, String, String)): Effects-of-calling:net.sourceforge.pebble.domain.Response:setState
    //#test_vector(void endElement(String, String, String)): this.commentParent: {-1}, {-9_223_372_036_854_775_808..-2, 0..18_446_744_073_709_551_615}
    //#test_vector(void endElement(String, String, String)): this.elementStatus: {0}, {1}, {3}, {12}, {13}, {15}, {18}, {2}, {4}, {10}, {11}, {14}, {22}, {16}, {17}, {5}, {7}, {8}, {9}, {19}, {20}, {21}
    //#test_vector(void endElement(String, String, String)): this.groupStatus: {-2_147_483_648..99, 104..4_294_967_295}, {100}, {103}, {101}, {102}
    //#test_vector(void endElement(String, String, String)): java.lang.String:equals(...)@199: {0}, {1}
    //#test_vector(void endElement(String, String, String)): java.lang.String:equals(...)@224: {0}, {1}
    //#test_vector(void endElement(String, String, String)): java.lang.String:equals(...)@247: {0}, {1}
    //#test_vector(void endElement(String, String, String)): java.lang.String:equals(...)@300: {0}, {1}
      switch (elementStatus) {
        case TITLE :
          blogEntry.setTitle(elementContent.toString());
          break;
        case SUBTITLE :
          blogEntry.setSubtitle(elementContent.toString());
          break;
        case EXCERPT :
          blogEntry.setExcerpt(elementContent.toString());
          break;
        case BODY :
          blogEntry.setBody(elementContent.toString());
          break;
        case DATE :
          blogEntry.setDate(getDate(elementContent.toString()));
    //#blogentryhandler.java:193: ?precondition failure
    //#    net/sourceforge/pebble/domain/BlogEntry.setDate: newDate != null
    //#    severity: MEDIUM
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void endElement(String, String, String)
    //#    basic block: bb_7
    //#    assertion: getDate(...) != null
    //#    callee: void net/sourceforge/pebble/domain/BlogEntry.setDate(Date)
    //#    callee assertion: newDate != null
    //#    callee file: blogentry.java
    //#    callee precondition index: [1]
    //#    callee srcpos: 323
    //#    VN: getDate(...)
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
          break;
        case TIME_ZONE :
          blogEntry.setTimeZoneId(elementContent.toString());
          break;
        case STATE :
          if (elementContent.toString().equals(State.UNPUBLISHED.getName())) {
            blogEntry.setPublished(false);
          } else {
            blogEntry.setPublished(true);
          }
          break;
        case AUTHOR :
          blogEntry.setAuthor(elementContent.toString());
          break;
        case ORIGINAL_PERMALINK :
          blogEntry.setOriginalPermalink(elementContent.toString());
          break;
        case CATEGORY :
          blogEntry.addCategory(blogEntry.getBlog().getCategory(elementContent.toString()));
          break;
        case TAGS :
          blogEntry.setTags(elementContent.toString());
          break;
        case COMMENTS_ENABLED :
          blogEntry.setCommentsEnabled(Boolean.valueOf(elementContent.toString()).booleanValue());
          break;
        case TRACKBACKS_ENABLED :
          blogEntry.setTrackBacksEnabled(Boolean.valueOf(elementContent.toString()).booleanValue());
          break;
      }
    } else if (groupStatus == IN_ATTACHMENT && name.equals("attachment")) {
      Attachment attachment = new Attachment();
      attachment.setUrl(attachmentUrl);
      attachment.setSize(Long.parseLong(attachmentSize));
      attachment.setType(attachmentType);
      blogEntry.setAttachment(attachment);
      groupStatus = IN_BLOG_ENTRY;

      attachmentUrl = null;
      attachmentSize = null;
      attachmentType = null;
    } else if (groupStatus == IN_ATTACHMENT) {
      switch (elementStatus) {
        case URL :
          attachmentUrl = elementContent.toString();
          break;
        case SIZE :
          attachmentSize = elementContent.toString();
          break;
        case TYPE :
          attachmentType = elementContent.toString();
          break;
      }
    } else if (groupStatus == IN_COMMENT && name.equals("comment")) {
      Comment comment = blogEntry.createComment(commentTitle, commentBody, commentAuthor, commentEmail, commentWebsite, commentIpAddress, commentDate, commentState);
      if (commentParent != -1) {
        comment.setParent(blogEntry.getComment(commentParent));
      }
      comment.setAuthenticated(commentAuthenticated);
      blogEntry.addComment(comment);
    //#blogentryhandler.java:253: ?!precondition failure
    //#    net/sourceforge/pebble/domain/BlogEntry.addComment: (soft) comment...__Tag == net/sourceforge/pebble/domain/Comment
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void endElement(String, String, String)
    //#    basic block: bb_32
    //#    assertion: (soft) undefined == 793_344
    //#    callee: void net/sourceforge/pebble/domain/BlogEntry.addComment(Comment)
    //#    callee assertion: (soft) comment...__Tag == net/sourceforge/pebble/domain/Comment
    //#    callee file: blogentry.java
    //#    callee precondition index: [2]
    //#    callee srcpos: 554
    //#    VN: undefined
    //#    Expected: {793_344}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Exp singleton  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp
    //#blogentryhandler.java:253: ?!precondition failure
    //#    net/sourceforge/pebble/domain/BlogEntry.addComment: (soft) comment...date != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void endElement(String, String, String)
    //#    basic block: bb_32
    //#    assertion: (soft) undefined != null
    //#    callee: void net/sourceforge/pebble/domain/BlogEntry.addComment(Comment)
    //#    callee assertion: (soft) comment...date != null
    //#    callee file: blogentry.java
    //#    callee precondition index: [3]
    //#    callee srcpos: 554
    //#    VN: undefined
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null, Invalid}
    //#    Attribs:  Ptr  null in Bad  Soft
      groupStatus = IN_BLOG_ENTRY;

      // and blank all the comment variables
      commentTitle = null;
      commentBody = null;
      commentAuthor = null;
      commentWebsite = null;
      commentIpAddress = null;
      commentEmail = null;
      commentDate = null;
      commentParent = -1;
      commentState = State.APPROVED;
      commentAuthenticated = false;
    } else if (groupStatus == IN_COMMENT) {
      switch (elementStatus) {
        case TITLE :
          commentTitle = elementContent.toString();
          break;
        case BODY :
          commentBody = elementContent.toString();
          break;
        case DATE :
          commentDate = getDate(elementContent.toString());
          break;
        case AUTHOR :
          commentAuthor = elementContent.toString();
          break;
        case EMAIL :
          commentEmail = elementContent.toString();
          break;
        case WEBSITE :
          commentWebsite = elementContent.toString();
          break;
        case IP_ADDRESS :
          commentIpAddress = elementContent.toString();
          break;
        case PARENT :
          commentParent = Long.parseLong(elementContent.toString());
          break;
        case STATE :
          commentState = State.getState(elementContent.toString());
          break;
        case AUTHENTICATED :
          commentAuthenticated = Boolean.parseBoolean(elementContent.toString());
          break;
      }
    } else if (groupStatus == IN_TRACKBACK && name.equals("trackback")) {
      TrackBack trackBack = blogEntry.createTrackBack(trackBackTitle, trackBackExcerpt, trackBackUrl, trackBackBlogName, trackBackIpAddress, trackBackDate, trackBackState);
      blogEntry.addTrackBack(trackBack);
      groupStatus = IN_BLOG_ENTRY;

      // and blank all the TrackBack variables
      trackBackTitle = null;
      trackBackExcerpt = null;
      trackBackBlogName = null;
      trackBackUrl = null;
      trackBackIpAddress = null;
      trackBackDate = null;
      trackBackState = State.APPROVED;
    } else if (groupStatus == IN_TRACKBACK) {
      switch (elementStatus) {
        case TITLE :
          trackBackTitle = elementContent.toString();
          break;
        case EXCERPT :
          trackBackExcerpt = elementContent.toString();
          break;
        case DATE :
          trackBackDate = getDate(elementContent.toString());
          break;
        case BLOG_NAME :
          trackBackBlogName = elementContent.toString();
          break;
        case URL :
          trackBackUrl = elementContent.toString();
          break;
        case IP_ADDRESS :
          trackBackIpAddress = elementContent.toString();
          break;
        case STATE :
          trackBackState = State.getState(elementContent.toString());
          break;
      }
    }

    elementStatus = NOT_DEFINED;
  }
    //#blogentryhandler.java:340: end of method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.endElement(String, String, String)

  public void characters(char ch[], int start, int length) throws SAXException {
    elementContent.append(new String(ch, start, length));
    //#blogentryhandler.java:343: method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.characters(char[], int, int)
    //#input(void characters(char[], int, int)): ch
    //#input(void characters(char[], int, int)): length
    //#input(void characters(char[], int, int)): start
    //#input(void characters(char[], int, int)): this
    //#input(void characters(char[], int, int)): this.elementContent
    //#pre[5] (void characters(char[], int, int)): this.elementContent != null
    //log.info("characters : " + s);
  }
    //#blogentryhandler.java:345: end of method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.characters(char[], int, int)

  public void warning(SAXParseException e) throws SAXException {
    log.warn("Exception encountered", e);
    //#blogentryhandler.java:348: method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.warning(SAXParseException)
    //#blogentryhandler.java:348: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:warn(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void warning(SAXParseException)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:warn(Object, Throwable)
    //#input(void warning(SAXParseException)): e
    //#input(void warning(SAXParseException)): log
    //#pre[2] (void warning(SAXParseException)): log != null
  }
    //#blogentryhandler.java:349: end of method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.warning(SAXParseException)

  public void error(SAXParseException e) throws SAXException {
    log.error("Exception encountered", e);
    //#blogentryhandler.java:352: method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.error(SAXParseException)
    //#blogentryhandler.java:352: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void error(SAXParseException)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
    //#input(void error(SAXParseException)): e
    //#input(void error(SAXParseException)): log
    //#pre[2] (void error(SAXParseException)): log != null
  }
    //#blogentryhandler.java:353: end of method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.error(SAXParseException)

  public void fatalError(SAXParseException e) throws SAXException {
    log.fatal("Exception encountered", e);
    //#blogentryhandler.java:356: method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.fatalError(SAXParseException)
    //#blogentryhandler.java:356: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:fatal(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: void fatalError(SAXParseException)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:fatal(Object, Throwable)
    //#input(void fatalError(SAXParseException)): e
    //#input(void fatalError(SAXParseException)): log
    //#pre[2] (void fatalError(SAXParseException)): log != null
  }
    //#blogentryhandler.java:357: end of method: void net.sourceforge.pebble.dao.file.BlogEntryHandler.fatalError(SAXParseException)

  private Date getDate(String s) {
    for (int i = 0; i < dateTimeFormats.length; i++) {
    //#blogentryhandler.java:360: method: Date net.sourceforge.pebble.dao.file.BlogEntryHandler.getDate(String)
    //#input(Date getDate(String)): log
    //#input(Date getDate(String)): s
    //#input(Date getDate(String)): this
    //#input(Date getDate(String)): this.dateTimeFormats
    //#input(Date getDate(String)): this.dateTimeFormats.length
    //#input(Date getDate(String)): this.dateTimeFormats[0..4_294_967_294]
    //#output(Date getDate(String)): return_value
    //#pre[4] (Date getDate(String)): this.dateTimeFormats != null
    //#pre[1] (Date getDate(String)): (soft) log != null
    //#pre[5] (Date getDate(String)): (soft) this.dateTimeFormats.length <= 4_294_967_295
    //#pre[6] (Date getDate(String)): (soft) this.dateTimeFormats[0..4_294_967_294] != null
    //#post(Date getDate(String)): init'ed(return_value)
      try {
        return dateTimeFormats[i].parse(s);
      } catch (ParseException pe) {
      }
    }

    log.error("Could not parse date of " + s);
    //#blogentryhandler.java:367: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.dao.file.BlogEntryHandler
    //#    method: Date getDate(String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object)
    return null;
    //#blogentryhandler.java:368: end of method: Date net.sourceforge.pebble.dao.file.BlogEntryHandler.getDate(String)
  }

}    //#blogentryhandler.java:: end of class: net.sourceforge.pebble.dao.file.BlogEntryHandler
