/* * Copyright 2014 Google Inc. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package org.polimi.zarathustra; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.w3c.dom.Document; /** * A helper class to compare and manipulate DOM documents in Zarathustra. */ public class DOMHelper { public static final String DOM_DUMP_SUFFIX = ".dom"; /** * Deserializes a Document from a file. */ public static Document deserializeDocument(File savedDocument) throws IOException { return (Document) deserializeObject(savedDocument); } private static Object deserializeObject(File savedObject) throws IOException { InputStream file = new FileInputStream(savedObject); InputStream buffer = new BufferedInputStream(file); ObjectInput input = new ObjectInputStream(buffer); try { return input.readObject(); } catch (ClassNotFoundException e) { throw new IOException(e); } finally { input.close(); } } /** * Serializes a Document to a file. * * @param doc to serialize. * @param filePath writable path to store the document in. */ public static void serializeDocument(Document doc, String filePath) throws IOException { serializeObject(doc, filePath); } /** * Serializes an Object to a file. * * @param doc to serialize. * @param filePath writable path to store the document in. */ private static void serializeObject(Object object, String filePath) throws IOException { FileOutputStream fileOut = new FileOutputStream(filePath); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(object); out.close(); fileOut.close(); } }