/*
 * Cr�� le 27 juin 07
 *
 * Pour changer le mod�le de ce fichier g�n�r�, allez � :
 * Fen�tre&gt;Pr�f�rences&gt;Java&gt;G�n�ration de code&gt;Code et commentaires
 */

package fr.gouv.finances.cp.xemelios.export;

import org.xml.sax.SAXException;

import fr.gouv.finances.cp.utils.xml.marshal.InvalidXmlDefinition;
import fr.gouv.finances.cp.utils.xml.marshal.XmlAttributes;
import fr.gouv.finances.cp.utils.xml.marshal.XmlMarshallable;
import fr.gouv.finances.cp.utils.xml.marshal.XmlOutputter;

public class ExportChampModel implements XmlMarshallable {
	
	public static String TAG = "champ";
	
	private String id, libelle;
	private boolean editable = false, selectionne = false, identifiant = false;
	
	public ExportChampModel (String tagName) {
		id = libelle = "";
	}

	public void addCharacterData(String cData) throws SAXException {}

	public void addChild(XmlMarshallable child, String tagName) throws SAXException {
	}

	public XmlMarshallable getAttributes(XmlAttributes attributes) throws SAXException {
		id = attributes.getValue("id");
		libelle = attributes.getValue("libelle");
		editable = attributes.getBooleanValue("editable");
		selectionne = attributes.getBooleanValue("selectionne");
		identifiant = attributes.getBooleanValue("identifiant");
		return this;
	}

	public void marshall(XmlOutputter output) {
		output.startTag("champ");
		output.addAttribute("id", id);
		output.addAttribute("libelle", libelle);
		output.addAttribute("editable", editable);
		output.addAttribute("selectionne", selectionne);
		output.addAttribute("identifiant", identifiant);
		output.endTag("champ");
	}
	
	public ExportChampModel clone () {
		ExportChampModel em = new ExportChampModel(TAG);
		em.setId(id);
		em.setLibelle(libelle);
		em.setEditable(editable);
		em.setSelectionne(selectionne);
		em.setIdentifiant(identifiant);
		return em;
	}

	public void validate() throws InvalidXmlDefinition {}

	public boolean isEditable() {
		return editable;
	}

	public void setEditable(boolean editable) {
		this.editable = editable;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getLibelle() {
		return libelle;
	}

	public void setLibelle(String libelle) {
		this.libelle = libelle;
	}

	public boolean isSelectionne() {
		return selectionne;
	}

	public void setSelectionne(boolean selectionne) {
		this.selectionne = selectionne;
	}
	
	public String toString () {
		return getLibelle();
	}

	public boolean isIdentifiant() {
		return identifiant;
	}

	public void setIdentifiant(boolean identifiant) {
		this.identifiant = identifiant;
	}
}
