/** * ORIPA - Origami Pattern Editor * Copyright (C) 2005-2009 Jun Mitani http://mitani.cs.tsukuba.ac.jp/ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package oripa.doc.loader; import java.beans.XMLDecoder; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import oripa.DataSet; import oripa.doc.Doc; import oripa.file.FileVersionError; import oripa.resource.Version; public class LoaderXML implements Loader{ public DataSet loadAsDataSet(String filePath) { DataSet dataset; try { XMLDecoder dec = new XMLDecoder( new BufferedInputStream( new FileInputStream(filePath))); dataset = (DataSet) dec.readObject(); dec.close(); } catch (FileNotFoundException e) { e.printStackTrace(); return null; } return dataset; } @Override public Doc load(String filePath) throws FileVersionError { Doc doc = new Doc(); DataSet data = loadAsDataSet(filePath); if (data.getMainVersion() > Version.FILE_MAJOR_VERSION) { throw new FileVersionError(); } data.recover(doc); return doc; } }