/*
 * Created on Aug 20, 2003
 */
package fr.eisti.lassi.elearning.cocoon.sitemap;

import java.io.IOException;
import java.io.Serializable;

import org.apache.excalibur.source.SourceValidity;

import fr.eisti.lassi.elearning.*;

/**
 * Cette classe sert à stocker la ProcessMap dans un store excalibur
 * @see org.apache.excalibur.store.Store
 * @see fr.eisti.lassi.elearning.ProcessMap
 * @author vidal
 */
public class ProcessMapEntry  implements Serializable {
	
	/**
	 * Carte des process que cette entry héberge
	 */
	private ProcessMap processMap;
	
	/**
	 * On stocke la validité de cette entrée pour pouvoir
	 * savoir il est nécessaire de la regénérer
	 */
	private SourceValidity validity = null;
	
	/**
	 * Create a new entry.
	 *
	 * @param automaton Lexical automaton.
	 * @param validity Validity of the lexicon file.
	 */
	public ProcessMapEntry(SourceValidity validity, ProcessMap map) {
		this.validity = validity;
		this.processMap = map;
	}

	/**
	 * Return the validity of the lexicon file.
	 *
	 * @return Validity of the lexicon file.
	 */
	public SourceValidity getValidity() {
		return this.validity;
	}

	private void writeObject(java.io.ObjectOutputStream out)
		throws IOException {
		out.writeObject(validity);
		out.writeObject(processMap);
	}

	private void readObject(java.io.ObjectInputStream in)
		throws IOException, ClassNotFoundException {
		validity = (SourceValidity)in.readObject();
		processMap = (ProcessMap)in.readObject();
	}
	/**
	 * Retourne la carte des process hébergée par cette entry
	 * @return
	 */
	public ProcessMap getProcessMap() {
		return processMap;
	}

}
