package com.ibm.nmon.parser.gc.state; import com.ibm.nmon.parser.gc.GCParserContext; import com.ibm.nmon.parser.util.XMLParserHelper; /** * The initial GCState that looks for <code><verbosegc></code> elements. Transitions to the * appropriate Java GC state based on the version of the verbose GC log being parsed. */ public final class Start implements GCState { public static final Start INSTANCE = new Start(); @Override public GCState startElement(GCParserContext context, String elementName, String unparsedAttributes) { if ("verbosegc".equals(elementName)) { if (XMLParserHelper.parseAttributes(unparsedAttributes).get("xmlns") != null) { Java7GC.INSTANCE.setTimeZone(context.getTimeZone()); return Java7GC.INSTANCE; } else { Java6GC.INSTANCE.setTimeZone(context.getTimeZone()); return Java6GC.INSTANCE; } } else { return this; } } @Override public GCState endElement(GCParserContext context, String elementName) { return this; } @Override public void reset() { Java6GC.INSTANCE.reset(); Java7GC.INSTANCE.reset(); } private Start() {} }