litesoft
@ 25
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package org.litesoft.testplan; import java.util.*; import org.litesoft.xml.*; import org.litesoft.GWT.client.dev.ui.inspection.*; import org.litesoft.GWT.client.dev.ui.actions.*; import org.litesoft.GWT.client.dev.ui.testplan.*; public class TestPlanParserActionFactoryAction implements TestPlanActionFactory { private static final String TAG_NAME = "Action"; private static final SelectionParserJQuery sSelectorParser = new SelectionParserJQuery(); private static final Map<String, ActionParserBase> sActionParsers = new HashMap<String, ActionParserBase>(); { addAction(new ActionParserClick()); addAction(new ActionParserKeystrokes()); addAction(new ActionParserSetAttribute()); } private static void addAction(ActionParserBase pAction) { sActionParsers.put(pAction.getTagName(), pAction); } @Override public TestPlanAction parse( PullParserProxy pParser ) { pParser.validateIsStartTag( TAG_NAME ); SelectionSpec selector; pParser.getNextStartTag(); selector = sSelectorParser.parse(pParser); ActionSpec action; ActionParserBase actionParser = sActionParsers.get(pParser.getNextStartTag()); assert0(ActionParserBase.class.getSimpleName() + " parser not found for ", actionParser != null); action = actionParser.parse(pParser); pParser.validateNextIsEndTag( TAG_NAME ); return new GeneralizedTestPlanAction( selector, action ); } private static void assert0(String pMessage, boolean pExpression) { if (! pExpression) { throw new XML_RuntimeException(pMessage); } } } |