// Path: src/main/java/com/ojn/gexf4j/core/Graph.java
// public interface Graph extends Dynamic<Graph>, HasNodes {
// 
// 	EdgeType getDefaultEdgeType();
// 	Graph setDefaultEdgeType(EdgeType edgeType);
// 	
// 	IDType getIDType();
// 	Graph setIDType(IDType idType);
// 
// 	Mode getMode();
// 	Graph setMode(Mode graphMode);
// 	
// 	TimeType getTimeType();
// 	Graph setTimeType(TimeType timeType);
// 	
// 	List<AttributeList> getAttributeLists();
// }
// 
// Path: src/main/java/com/ojn/gexf4j/core/data/AttributeList.java
// public interface AttributeList extends List<Attribute>, Dynamic<AttributeList> {
// 	
// 	AttributeClass getAttributeClass();
// 	
// 	Mode getMode();
// 	AttributeList setMode(Mode mode);
// 	
// 	Attribute createAttribute(AttributeType type, String title);
// 	Attribute createAttribute(String id, AttributeType type, String title);
// 	
// 	AttributeList addAttribute(AttributeType type, String title);
// 	AttributeList addAttribute(String id, AttributeType type, String title);
// }


import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
import com.ojn.gexf4j.core.Graph;
import com.ojn.gexf4j.core.data.AttributeList;

	@Override
	protected String getElementName() {
		return ENTITY;
	}

	@Override
	protected void writeAttributes() throws XMLStreamException {
		writer.writeAttribute(
				ATTRIB_EDGETYPE,
				entity.getDefaultEdgeType().toString().toLowerCase());
		
		writer.writeAttribute(
				ATTRIB_IDTYPE,
				entity.getIDType().toString().toLowerCase());
		
		writer.writeAttribute(
				ATTRIB_MODE,
				entity.getMode().toString().toLowerCase());
		
		writer.writeAttribute(
				ATTRIB_TIMETYPE,
				entity.getTimeType().toString().toLowerCase());
		
		AbstractEntityWriter.writerTimeType = entity.getTimeType();
		super.writeAttributes();
	}

	@Override
	protected void writeElements() throws XMLStreamException {
// Path: src/main/java/com/ojn/gexf4j/core/Graph.java
// public interface Graph extends Dynamic<Graph>, HasNodes {
// 
// 	EdgeType getDefaultEdgeType();
// 	Graph setDefaultEdgeType(EdgeType edgeType);
// 	
// 	IDType getIDType();
// 	Graph setIDType(IDType idType);
// 
// 	Mode getMode();
// 	Graph setMode(Mode graphMode);
// 	
// 	TimeType getTimeType();
// 	Graph setTimeType(TimeType timeType);
// 	
// 	List<AttributeList> getAttributeLists();
// }
// 
// Path: src/main/java/com/ojn/gexf4j/core/data/AttributeList.java
// public interface AttributeList extends List<Attribute>, Dynamic<AttributeList> {
// 	
// 	AttributeClass getAttributeClass();
// 	
// 	Mode getMode();
// 	AttributeList setMode(Mode mode);
// 	
// 	Attribute createAttribute(AttributeType type, String title);
// 	Attribute createAttribute(String id, AttributeType type, String title);
// 	
// 	AttributeList addAttribute(AttributeType type, String title);
// 	AttributeList addAttribute(String id, AttributeType type, String title);
// }


// Path: src/main/java/com/ojn/gexf4j/core/impl/writer/GraphEntityWriter.java
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
import com.ojn.gexf4j.core.Graph;
import com.ojn.gexf4j.core.data.AttributeList;


	@Override
	protected String getElementName() {
		return ENTITY;
	}

	@Override
	protected void writeAttributes() throws XMLStreamException {
		writer.writeAttribute(
				ATTRIB_EDGETYPE,
				entity.getDefaultEdgeType().toString().toLowerCase());
		
		writer.writeAttribute(
				ATTRIB_IDTYPE,
				entity.getIDType().toString().toLowerCase());
		
		writer.writeAttribute(
				ATTRIB_MODE,
				entity.getMode().toString().toLowerCase());
		
		writer.writeAttribute(
				ATTRIB_TIMETYPE,
				entity.getTimeType().toString().toLowerCase());
		
		AbstractEntityWriter.writerTimeType = entity.getTimeType();
		super.writeAttributes();
	}

	@Override
	protected void writeElements() throws XMLStreamException {
		for (AttributeList attList : entity.getAttributeLists()) {