// Path: alldep-jar/src/main/java/com/gatf/executor/core/MapKeyValueAttributeXstreamConverter.java
// public class MapKeyValueAttributeXstreamConverter implements Converter
// {
//     @SuppressWarnings("rawtypes")
// 	public boolean canConvert(final Class clazz)
//     {
//         return AbstractMap.class.isAssignableFrom(clazz);
//     }
// 
//     @SuppressWarnings("unchecked")
// 	public void marshal(final Object value, final HierarchicalStreamWriter writer, final MarshallingContext context)
//     {
//         final AbstractMap<String, String> map = (AbstractMap<String, String>) value;
//         for (final Entry<String, String> entry : map.entrySet())
//         {
//             writer.startNode("property");
//             writer.addAttribute("key", entry.getKey());
//             writer.setValue(entry.getValue().toString());
//             writer.endNode();
//         }
//     }
// 
//     public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context)
//     {
//         final AbstractMap<String, String> map = new HashMap<String, String>();
//         while (reader.hasMoreChildren())
//         {
//             reader.moveDown();
//             if(reader.getNodeName().equals("property")) {
//             	map.put(reader.getAttribute("key"), reader.getValue());
//             }
//             reader.moveUp();
//         }
//         return map;
//     }
// }


import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.gatf.executor.core.MapKeyValueAttributeXstreamConverter;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamConverter;
package com.gatf.selenium;




/**
 * @author Sumeet Chhetri
 * The Selenium Driver configuration properties
 */

@XStreamAlias("seleniumDriverConfig")
@JsonAutoDetect(getterVisibility=Visibility.NONE, fieldVisibility=Visibility.ANY, isGetterVisibility=Visibility.NONE)
@JsonInclude(value = Include.NON_NULL)
public class SeleniumDriverConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    private String name;
    
    private String version;
    
    private String platform;
    
    private String driverName;

    private String path;

    private String arguments;

    private String url;

// Path: alldep-jar/src/main/java/com/gatf/executor/core/MapKeyValueAttributeXstreamConverter.java
// public class MapKeyValueAttributeXstreamConverter implements Converter
// {
//     @SuppressWarnings("rawtypes")
// 	public boolean canConvert(final Class clazz)
//     {
//         return AbstractMap.class.isAssignableFrom(clazz);
//     }
// 
//     @SuppressWarnings("unchecked")
// 	public void marshal(final Object value, final HierarchicalStreamWriter writer, final MarshallingContext context)
//     {
//         final AbstractMap<String, String> map = (AbstractMap<String, String>) value;
//         for (final Entry<String, String> entry : map.entrySet())
//         {
//             writer.startNode("property");
//             writer.addAttribute("key", entry.getKey());
//             writer.setValue(entry.getValue().toString());
//             writer.endNode();
//         }
//     }
// 
//     public Object unmarshal(final HierarchicalStreamReader reader, final UnmarshallingContext context)
//     {
//         final AbstractMap<String, String> map = new HashMap<String, String>();
//         while (reader.hasMoreChildren())
//         {
//             reader.moveDown();
//             if(reader.getNodeName().equals("property")) {
//             	map.put(reader.getAttribute("key"), reader.getValue());
//             }
//             reader.moveUp();
//         }
//         return map;
//     }
// }


// Path: alldep-jar/src/main/java/com/gatf/selenium/SeleniumDriverConfig.java
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.gatf.executor.core.MapKeyValueAttributeXstreamConverter;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamConverter;

package com.gatf.selenium;




/**
 * @author Sumeet Chhetri
 * The Selenium Driver configuration properties
 */

@XStreamAlias("seleniumDriverConfig")
@JsonAutoDetect(getterVisibility=Visibility.NONE, fieldVisibility=Visibility.ANY, isGetterVisibility=Visibility.NONE)
@JsonInclude(value = Include.NON_NULL)
public class SeleniumDriverConfig implements Serializable {

    private static final long serialVersionUID = 1L;

    private String name;
    
    private String version;
    
    private String platform;
    
    private String driverName;

    private String path;

    private String arguments;

    private String url;

    @XStreamConverter(value=MapKeyValueAttributeXstreamConverter.class)