content: package edu.stanford.rsl.conrad.utils;
  
  import java.beans.XMLDecoder;
  import java.beans.XMLEncoder;
  import java.io.File;
  import java.io.FileInputStream;
  import java.io.FileNotFoundException;
  import java.io.FileOutputStream;
  
  public class XmlUtils {
  	public static boolean serializeObject(File file, Object o) {
  		if (file.exists()) {
  			System.out
  					.println("Warning! Object Already Exists \n Replacing File.");
  		}
  		try {
  			FileOutputStream os = new FileOutputStream(file);
  			XMLEncoder encoder = new XMLEncoder(os);
  			encoder.writeObject(o);
  			encoder.close();
  		} catch (Exception f) {
  			System.out.println("Warning! Write was Unsuccessful");
  			return false;
  		}
  		return true;
  	}
  
  	public static Object deserializeObject(File file) {
  		Object data = null;
  		try {
  			FileInputStream os = new FileInputStream(file);
  			XMLDecoder decoder = new XMLDecoder(os);
  			data = decoder.readObject();
  			decoder.close();
  		} catch (FileNotFoundException f) {
  			data = null;
  			f.printStackTrace();
  		}
  		return data;
  	}
  	
  	public static void exportToXML(Object toExport, String filename) throws Exception{
  		Thread.currentThread().setContextClassLoader(Configuration.class.getClassLoader());
  		XMLEncoder oos = new XMLEncoder (new FileOutputStream(filename));
  		oos.writeObject(toExport);
  		oos.close();
  	}
  	
  	public static void exportToXML(Object toExport) throws Exception{
  		String filename = FileUtil.myFileChoose(".xml", true);
  		exportToXML(toExport,filename);
  	}
  
  	public static Object importFromXML() throws Exception{
  		String filename = FileUtil.myFileChoose(".xml", false);
  		return importFromXML(filename);
  	}
  	
  	public static Object importFromXML(String filename) throws Exception{
  		Thread.currentThread().setContextClassLoader(Configuration.class.getClassLoader());
  		XMLDecoder ois = new XMLDecoder (new FileInputStream(filename));
  		Object toImport = ois.readObject();
  		ois.close();
  		return toImport;
  	}
  
  }
  /*
   * Copyright (C) 2010-2014  Andreas Maier
   * CONRAD is developed as an Open Source project under the GNU General Public License (GPL).
  */