/* * SerializeUtil.java * * Created on June 21, 2005, 9:55 AM * * To change this template, choose Tools | Options and locate the template under * the Source Creation and Management node. Right-click the template and choose * Open. You can then make changes to the template in the Source Editor. */ package org.das2.dasml; import org.das2.graph.DasCanvasComponent; import org.das2.beans.AccessLevelBeanInfo; import org.das2.beans.BeansUtil; import org.das2.system.DasLogger; import org.das2.util.monitor.ProgressMonitor; import org.das2.util.monitor.NullProgressMonitor; import java.beans.*; import java.beans.PropertyDescriptor; import java.lang.reflect.*; import java.text.*; import java.util.*; import java.util.logging.*; import org.w3c.dom.*; import org.w3c.dom.Document; import org.w3c.dom.Element; /** * * @author Jeremy */ public class SerializeUtil { static Set toStringSet; static { toStringSet= new HashSet(); toStringSet.add( Boolean.class ); toStringSet.add( Short.class ); toStringSet.add( Integer.class ); toStringSet.add( Long.class ); toStringSet.add( Float.class ); toStringSet.add( Double.class ); toStringSet.add( String.class ); } public static org.w3c.dom.Element getDOMElement( Document document, Object object ) { return getDOMElement( document, object, new NullProgressMonitor() ); } public static org.w3c.dom.Element getDOMElement( Document document, Object object, ProgressMonitor monitor ) { Logger log= DasLogger.getLogger( DasLogger.SYSTEM_LOG ); try { String elementName= object.getClass().getName(); elementName= elementName.replaceAll("\\$", "\\_dollar_"); Element element=null; try { element= document.createElement(elementName); } catch ( Exception e ) { System.err.println(e); throw new RuntimeException(e); } BeanInfo info = BeansUtil.getBeanInfo(object.getClass()); AccessLevelBeanInfo alInfo= BeansUtil.asAccessLevelBeanInfo( info, object.getClass() ); PropertyDescriptor[] properties = alInfo.getPropertyDescriptors( AccessLevelBeanInfo.PersistenceLevel.PERSISTENT ); String[] propertyNameList= BeansUtil.getPropertyNames( properties ); HashMap nameMap= new HashMap(); for ( int i=0; i0 ) monitor.setTaskSize( propertyNameList.length ); monitor.started(); for ( int i=0; i