// Path: src/main/java/com/leansoft/mxjc/model/annotation/RootElementAnnotation.java
// public class RootElementAnnotation implements Annotatable {
// 	
// 	private String name = "";
// 	private String namespace = "";
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getNamespace() {
// 		return namespace;
// 	}
// 
// 	public void setNamespace(String namespace) {
// 		this.namespace = namespace;
// 	}
// 
// 	@Override
// 	public boolean isParameterProvided() {
// 		return !StringUtil.isEmpty(name) || !StringUtil.isEmpty(namespace);
// 	}
// 	
//     /**
//      * Returns a String representation of this <code>RootElement</code> annotation.
//      *
//      * @return a string representation.
//      */
// 	public String toString() {
// 		String value = "";
// 		if (!StringUtil.isEmpty(name)) {
// 			value += "name = \"" + name + "\"";;
// 		}
// 		if (!StringUtil.isEmpty(namespace)) {
// 			if (value.length() != 0) {
// 				value += ", ";
// 			}
// 			value += "namespace = \"" + namespace + "\"";;
// 		}
// 		value = "RootElement(" + value + ")";
// 		return value;
// 	}
// 
// }
// 
// Path: src/main/java/com/leansoft/mxjc/model/annotation/XmlTypeAnnotation.java
// public class XmlTypeAnnotation implements Annotatable {
// 
// 	private String name = "";
// 	private String namespace = "";
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getNamespace() {
// 		return namespace;
// 	}
// 
// 	public void setNamespace(String namespace) {
// 		this.namespace = namespace;
// 	}
// 
// 	@Override
// 	public boolean isParameterProvided() {
// 		return !StringUtil.isEmpty(name) || !StringUtil.isEmpty(namespace);
// 	}
// 	
//     /**
//      * Returns a String representation of this <code>RootElement</code> annotation.
//      *
//      * @return a string representation.
//      */
// 	public String toString() {
// 		String value = "";
// 		if (!StringUtil.isEmpty(name)) {
// 			value += "name = \"" + name + "\"";;
// 		}
// 		if (!StringUtil.isEmpty(namespace)) {
// 			if (value.length() != 0) {
// 				value += ", ";
// 			}
// 			value += "namespace = \"" + namespace + "\"";;
// 		}
// 		value = "XmlType(" + value + ")";
// 		return value;
// 	}
// 
// 
// }


import java.util.ArrayList;
import java.util.List;
import com.leansoft.mxjc.model.annotation.RootElementAnnotation;
import com.leansoft.mxjc.model.annotation.XmlTypeAnnotation;
package com.leansoft.mxjc.model;



/**
 * Class model for codegen
 * 
 * @author bulldog
 *
 */
public class ClassInfo {
	
	// package name of this class
	private String packageName;
	// simple name of this class
	private String name;
	// full name of this class
	private String fullName;
	// is this an abstract class
	private boolean isAbstract;
	
	// the super class this class extends
	private TypeInfo superClass;
	// doc comment of this class
	private String docComment;
	
	// is this a nest class?
	private boolean nestClass = false;
	
	private RootElementAnnotation rootElementAnnotation;
	
// Path: src/main/java/com/leansoft/mxjc/model/annotation/RootElementAnnotation.java
// public class RootElementAnnotation implements Annotatable {
// 	
// 	private String name = "";
// 	private String namespace = "";
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getNamespace() {
// 		return namespace;
// 	}
// 
// 	public void setNamespace(String namespace) {
// 		this.namespace = namespace;
// 	}
// 
// 	@Override
// 	public boolean isParameterProvided() {
// 		return !StringUtil.isEmpty(name) || !StringUtil.isEmpty(namespace);
// 	}
// 	
//     /**
//      * Returns a String representation of this <code>RootElement</code> annotation.
//      *
//      * @return a string representation.
//      */
// 	public String toString() {
// 		String value = "";
// 		if (!StringUtil.isEmpty(name)) {
// 			value += "name = \"" + name + "\"";;
// 		}
// 		if (!StringUtil.isEmpty(namespace)) {
// 			if (value.length() != 0) {
// 				value += ", ";
// 			}
// 			value += "namespace = \"" + namespace + "\"";;
// 		}
// 		value = "RootElement(" + value + ")";
// 		return value;
// 	}
// 
// }
// 
// Path: src/main/java/com/leansoft/mxjc/model/annotation/XmlTypeAnnotation.java
// public class XmlTypeAnnotation implements Annotatable {
// 
// 	private String name = "";
// 	private String namespace = "";
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// 	public String getNamespace() {
// 		return namespace;
// 	}
// 
// 	public void setNamespace(String namespace) {
// 		this.namespace = namespace;
// 	}
// 
// 	@Override
// 	public boolean isParameterProvided() {
// 		return !StringUtil.isEmpty(name) || !StringUtil.isEmpty(namespace);
// 	}
// 	
//     /**
//      * Returns a String representation of this <code>RootElement</code> annotation.
//      *
//      * @return a string representation.
//      */
// 	public String toString() {
// 		String value = "";
// 		if (!StringUtil.isEmpty(name)) {
// 			value += "name = \"" + name + "\"";;
// 		}
// 		if (!StringUtil.isEmpty(namespace)) {
// 			if (value.length() != 0) {
// 				value += ", ";
// 			}
// 			value += "namespace = \"" + namespace + "\"";;
// 		}
// 		value = "XmlType(" + value + ")";
// 		return value;
// 	}
// 
// 
// }


// Path: src/main/java/com/leansoft/mxjc/model/ClassInfo.java
import java.util.ArrayList;
import java.util.List;
import com.leansoft.mxjc.model.annotation.RootElementAnnotation;
import com.leansoft.mxjc.model.annotation.XmlTypeAnnotation;

package com.leansoft.mxjc.model;



/**
 * Class model for codegen
 * 
 * @author bulldog
 *
 */
public class ClassInfo {
	
	// package name of this class
	private String packageName;
	// simple name of this class
	private String name;
	// full name of this class
	private String fullName;
	// is this an abstract class
	private boolean isAbstract;
	
	// the super class this class extends
	private TypeInfo superClass;
	// doc comment of this class
	private String docComment;
	
	// is this a nest class?
	private boolean nestClass = false;
	
	private RootElementAnnotation rootElementAnnotation;
	
	private XmlTypeAnnotation xmlTypeAnnotation;