package model.data.xml.writers; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Collection; import model.*; import model.data.exceptions.DataSaveException; import model.data.exceptions.RecordNotFoundException; import org.apache.ecs.Doctype; import org.apache.ecs.xml.XML; import org.apache.ecs.xml.XMLDocument; /** * VideoWriter.java * * @author Christopher Bertels (chbertel@uos.de) * @date 15.09.2008 */ public class VideoWriter extends AbstractWriter { public VideoWriter(String videosFile) throws DataSaveException, FileNotFoundException { super(videosFile); } public void saveVideos(Collection<Video> videosToSave) throws IOException, RecordNotFoundException { XMLDocument document = new XMLDocument(); document.addToProlog(new Doctype("videos", "'videoList'", "'videos.dtd'")); XML videosTag = new XML("videos"); videosTag.addXMLAttribute("minID", Integer.toString(Video.getMinID())); videosTag.addXMLAttribute("minVideoUnitID", Integer.toString(VideoUnit.getMinID())); document.addElement(videosTag); for (Video vid : videosToSave) { XML videoTag = new XML("video") .addXMLAttribute("vID", Integer.toString(vid.getID())) .addXMLAttribute("title", vid.getTitle()) .addXMLAttribute("releaseYear", Integer.toString(vid.getReleaseYear())) .addXMLAttribute("priceCategoryID", Integer.toString(vid.getPriceCategory().getID())) .addXMLAttribute("ratedAge", Integer.toString(vid.getRatedAge())); for(VideoUnit unit : vid.getVideoUnits()) { videoTag.addElement(new XML("videoUnit") .addXMLAttribute("uID", Integer.toString(unit.getID())) .addXMLAttribute("videoID", Integer.toString(vid.getID())) ); } document.addElement(videoTag); } writeToFile(document); } }