//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.library.tester.impl; import java.util.LinkedHashMap; import java.util.Map; import org.eclipse.emf.ecore.EClass; import org.eclipse.epf.library.tester.iface.TCExeReply; import org.eclipse.epf.library.tester.iface.TestCommand; import org.eclipse.epf.library.tester.impl.testcommands.TCNewMethodElement; import org.eclipse.epf.uma.MethodElement; import org.w3c.dom.Element; /** * Used in JUnit tests * * @author Weiping Lu * @since 1.0 * */ public abstract class TestCommandImpl implements TestCommand { private static TCNewMethodElement newMethodElement = new TCNewMethodElement(); private boolean verbose = false; private Element element; protected static boolean localDebug = false; private TestCommandMgr owner; private Map atttibuteMap = new LinkedHashMap(); public void setOwner(TestCommandMgr mgr) { owner = mgr; } protected Map getAttributeMap() { return atttibuteMap; } public void setAttribute(String attName, String attValue) { if (attValue != null && attValue.length() > 0) { atttibuteMap.put(attName, attValue); } } public String removeAttribute(String attName) { return (String) atttibuteMap.remove(attName); } public String getAttribute(String attName) { return (String) atttibuteMap.get(attName); } public void parse(Element element) { this.element = element; setAttribute(AT_Verbose, element.getAttribute(AT_Verbose)); verbose = parseBoolean(AT_Verbose, verbose); } protected boolean getVerbose() { return verbose; } protected Element getElement() { return element; } protected void parseChildren(Element element) { } protected TestCommandMgr getOwner() { return owner; } public abstract TCExeReply execute(); public String tagName() { return owner == null ? null : owner.getTagName(this); } protected boolean parseBoolean(String att, boolean defaultValue) { String toCheckStr = defaultValue ? "false" : "true"; String str = getAttribute(att); if (str != null && str.equalsIgnoreCase(toCheckStr)) { return !defaultValue; } return defaultValue; } protected int parseInteger(String att, int defaultValue) { if (att != null && att.length() > 0) { return Integer.parseInt(att); } return defaultValue; } public EClass getEClass(String type) { return newMethodElement.getEClass(type); } public void save(MethodElement element) { newMethodElement.save(element); } protected void log(String line) { getOwner().log(line); } }