All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.testium.configuration.SutControlConfigurationXmlHandler Maven / Gradle / Ivy

The newest version!
package net.sf.testium.configuration;

import java.io.File;

import org.testtoolinterfaces.utils.GenericTagAndStringXmlHandler;
import org.testtoolinterfaces.utils.RunTimeData;
import org.testtoolinterfaces.utils.Trace;
import org.testtoolinterfaces.utils.XmlHandler;
import org.xml.sax.Attributes;
import org.xml.sax.XMLReader;


public class SutControlConfigurationXmlHandler extends XmlHandler
{
	private static final String START_ELEMENT = "SutControlConfiguration";

	private static final String	CFG_NAME	= "name";
	public static final String	CFG_COMMAND	= "sutControl";
	private static final String	CFG_VERSION_FORMAT	= "versionFormat";

	private SutControlParametersConfigurationXmlHandler mySutControlParameterConfigurationXmlHandler;

	private String myTempName;
	private String myTempCommand;
	private String myTempVersionFormat;

	private String myStartParam;
	private String myStopParam;
	private String myRestartParam;
	private String myVersionParam;
	private String myLongVersionParam;
	private String mySettingsParam;

	private RunTimeData myRunTimeData;

	public SutControlConfigurationXmlHandler(XMLReader anXmlReader, RunTimeData anRtData)
	{
	    super(anXmlReader, START_ELEMENT);
	    Trace.println(Trace.CONSTRUCTOR);

		myRunTimeData = anRtData;

		mySutControlParameterConfigurationXmlHandler = new SutControlParametersConfigurationXmlHandler(anXmlReader, anRtData);
		this.addElementHandler(mySutControlParameterConfigurationXmlHandler);

	    this.addElementHandler(new GenericTagAndStringXmlHandler(anXmlReader, CFG_NAME));
	    this.addElementHandler(new GenericTagAndStringXmlHandler(anXmlReader, CFG_COMMAND));
	    this.addElementHandler(new GenericTagAndStringXmlHandler(anXmlReader, CFG_VERSION_FORMAT));
	}

	@Override
	public void handleStartElement(String aQualifiedName)
	{
		// nop
	}

	@Override
	public void handleCharacters(String aValue)
	{
		// nop
	}

	@Override
	public void handleEndElement(String aQualifiedName)
	{
		// nop
	}

	@Override
	public void processElementAttributes(String aQualifiedName, Attributes att)
	{
		// nop
	}

	@Override
	public void handleGoToChildElement(String aQualifiedName)
	{
		// nop
	}

	@Override
	public void handleReturnFromChildElement(String aQualifiedName, XmlHandler aChildXmlHandler)
	{
	    Trace.println(Trace.UTIL, "handleReturnFromChildElement( " + 
	    	      aQualifiedName + " )", true);
	    
		if (aQualifiedName.equalsIgnoreCase(CFG_NAME))
    	{
			myTempName = ((GenericTagAndStringXmlHandler) aChildXmlHandler).getValue();
    	}
		else if (aQualifiedName.equalsIgnoreCase(CFG_COMMAND))
    	{
			myTempCommand = myRunTimeData.substituteVars( ((GenericTagAndStringXmlHandler) aChildXmlHandler).getValue() );
    	}
		else if (aQualifiedName.equalsIgnoreCase(CFG_VERSION_FORMAT))
    	{
			myTempVersionFormat = ((GenericTagAndStringXmlHandler) aChildXmlHandler).getValue();
    	}
		else if (aQualifiedName.equalsIgnoreCase(SutControlParametersConfigurationXmlHandler.START_ELEMENT))
    	{
			myStartParam = mySutControlParameterConfigurationXmlHandler.getStartParam();
			myStopParam = mySutControlParameterConfigurationXmlHandler.getStopParam();
			myRestartParam = mySutControlParameterConfigurationXmlHandler.getRestartParam();
			myVersionParam = mySutControlParameterConfigurationXmlHandler.getVersionParam();
			myLongVersionParam = mySutControlParameterConfigurationXmlHandler.getLongVersionParam();
			mySettingsParam = mySutControlParameterConfigurationXmlHandler.getSettingsParam();
    	}

   		aChildXmlHandler.reset();
	}
	
	public SutControlConfiguration getConfiguration() throws ConfigurationException
	{
	    Trace.println(Trace.UTIL);

		File command = null;
	    if ( myTempCommand != null )
		{
			command = new File ( myTempCommand );
		}
		
		return new SutControlConfiguration( myTempName,
		                                    command,
		                                    myStartParam,
		                                    myStopParam,
		                                    myRestartParam,
		                                    myVersionParam,
		                                    myTempVersionFormat,
		                                    myLongVersionParam,
		                                    mySettingsParam );
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy