// Path: src/main/java/com/ojn/gexf4j/core/GexfWriter.java
// public interface GexfWriter {
// 
// 	void writeToStream(Gexf gexf, OutputStream out) throws IOException;
// }
// 
// Path: src/test/java/com/ojn/gexf4j/core/GraphWriterTest.java
// @RunWith(Parameterized.class)
// public abstract class GraphWriterTest {
// 
// 	protected abstract String getFileNamePrefix();
// 	protected abstract GexfWriter newGraphWriter();
// 
// 	protected GexfBuilder builder = null;
// 	
// 	@Parameters
// 	public static List<Object[]> getData() {
// 		List<Object[]> rv = new ArrayList<Object[]>();
// 		
// 		rv.add(new GexfBuilder[] { new BasicGraphBuilder() });
// 		rv.add(new GexfBuilder[] { new DataGraphBuilder() });
// 		rv.add(new GexfBuilder[] { new DynamicGraphBuilder() });
// 		rv.add(new GexfBuilder[] { new HierarchyInlineBuilder() });
// 		rv.add(new GexfBuilder[] { new HierarchyPIDBuilder() });
// 		rv.add(new GexfBuilder[] { new PhylogenyBuilder() });
// 		rv.add(new GexfBuilder[] { new VisualizationBuilder() });
// 		
// 		return rv;
// 	}
// 	
// 	public GraphWriterTest(GexfBuilder builder) {
// 		this.builder = builder;
// 	}
// 
// 	@Test
// 	public void writeToStream() throws SAXException, IOException {
// 		Gexf gexf = builder.buildGexf();
// 		GexfWriter gw = newGraphWriter();
// 		String fileName = "target/" + getFileNamePrefix() + "_" + builder.getSuffix() + ".gexf";
// 		File f = new File(fileName);
// 		FileOutputStream fos = new FileOutputStream(f);
// 		
// 		gw.writeToStream(gexf, fos);
// 		
// 		URL schemaFile = new URL(builder.getSchemaUrl());
// 		Source xmlFile = new StreamSource(f);
// 		SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
// 		Schema schema = schemaFactory.newSchema(schemaFile);
// 		Validator validator = schema.newValidator();
// 
// 		validator.validate(xmlFile);
// 	}
// }
// 
// Path: src/test/java/com/ojn/gexf4j/core/testgraphs/GexfBuilder.java
// public abstract class GexfBuilder {
// 	private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 	
// 	public abstract Gexf buildGexf();
// 	public abstract String getSuffix();
// 	
// 	protected Date toDate(String s) {
// 		try {
// 			return sdf.parse(s);
// 		} catch (ParseException e) {
// 			return null;
// 		}
// 	}
// 	
// 	public String getSchemaUrl() {
// 		return "http://gexf.net/1.1draft/gexf.xsd";
// 	}
// }


import com.ojn.gexf4j.core.GexfWriter;
import com.ojn.gexf4j.core.GraphWriterTest;
import com.ojn.gexf4j.core.testgraphs.GexfBuilder;
package com.ojn.gexf4j.core.impl;


public class StaxGraphWriterTest extends GraphWriterTest {

	public StaxGraphWriterTest(GexfBuilder builder) {
		super(builder);
	}

	@Override
	protected String getFileNamePrefix() {
		return "stax";
	}

	@Override
// Path: src/main/java/com/ojn/gexf4j/core/GexfWriter.java
// public interface GexfWriter {
// 
// 	void writeToStream(Gexf gexf, OutputStream out) throws IOException;
// }
// 
// Path: src/test/java/com/ojn/gexf4j/core/GraphWriterTest.java
// @RunWith(Parameterized.class)
// public abstract class GraphWriterTest {
// 
// 	protected abstract String getFileNamePrefix();
// 	protected abstract GexfWriter newGraphWriter();
// 
// 	protected GexfBuilder builder = null;
// 	
// 	@Parameters
// 	public static List<Object[]> getData() {
// 		List<Object[]> rv = new ArrayList<Object[]>();
// 		
// 		rv.add(new GexfBuilder[] { new BasicGraphBuilder() });
// 		rv.add(new GexfBuilder[] { new DataGraphBuilder() });
// 		rv.add(new GexfBuilder[] { new DynamicGraphBuilder() });
// 		rv.add(new GexfBuilder[] { new HierarchyInlineBuilder() });
// 		rv.add(new GexfBuilder[] { new HierarchyPIDBuilder() });
// 		rv.add(new GexfBuilder[] { new PhylogenyBuilder() });
// 		rv.add(new GexfBuilder[] { new VisualizationBuilder() });
// 		
// 		return rv;
// 	}
// 	
// 	public GraphWriterTest(GexfBuilder builder) {
// 		this.builder = builder;
// 	}
// 
// 	@Test
// 	public void writeToStream() throws SAXException, IOException {
// 		Gexf gexf = builder.buildGexf();
// 		GexfWriter gw = newGraphWriter();
// 		String fileName = "target/" + getFileNamePrefix() + "_" + builder.getSuffix() + ".gexf";
// 		File f = new File(fileName);
// 		FileOutputStream fos = new FileOutputStream(f);
// 		
// 		gw.writeToStream(gexf, fos);
// 		
// 		URL schemaFile = new URL(builder.getSchemaUrl());
// 		Source xmlFile = new StreamSource(f);
// 		SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
// 		Schema schema = schemaFactory.newSchema(schemaFile);
// 		Validator validator = schema.newValidator();
// 
// 		validator.validate(xmlFile);
// 	}
// }
// 
// Path: src/test/java/com/ojn/gexf4j/core/testgraphs/GexfBuilder.java
// public abstract class GexfBuilder {
// 	private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 	
// 	public abstract Gexf buildGexf();
// 	public abstract String getSuffix();
// 	
// 	protected Date toDate(String s) {
// 		try {
// 			return sdf.parse(s);
// 		} catch (ParseException e) {
// 			return null;
// 		}
// 	}
// 	
// 	public String getSchemaUrl() {
// 		return "http://gexf.net/1.1draft/gexf.xsd";
// 	}
// }


// Path: src/test/java/com/ojn/gexf4j/core/impl/StaxGraphWriterTest.java
import com.ojn.gexf4j.core.GexfWriter;
import com.ojn.gexf4j.core.GraphWriterTest;
import com.ojn.gexf4j.core.testgraphs.GexfBuilder;

package com.ojn.gexf4j.core.impl;


public class StaxGraphWriterTest extends GraphWriterTest {

	public StaxGraphWriterTest(GexfBuilder builder) {
		super(builder);
	}

	@Override
	protected String getFileNamePrefix() {
		return "stax";
	}

	@Override
	protected GexfWriter newGraphWriter() {