package jadex.xml; import jadex.commons.Properties; import jadex.commons.Property; import jadex.xml.AccessInfo; import jadex.xml.AttributeInfo; import jadex.xml.MappingInfo; import jadex.xml.ObjectInfo; import jadex.xml.SubobjectInfo; import jadex.xml.TypeInfo; import jadex.xml.XMLInfo; import jadex.xml.bean.BeanObjectReaderHandler; import jadex.xml.bean.BeanObjectWriterHandler; import jadex.xml.reader.Reader; import jadex.xml.writer.Writer; import java.util.HashSet; import java.util.Set; import javax.xml.namespace.QName; /** * A simple static helper class for reading and writing jadex.commons.Properties. */ public class PropertiesXMLHelper { //-------- static attributes -------- /** The type infos. */ public static Set typeinfos; /** The writer. */ public static Writer writer; /** The reader. */ public static Reader reader; //-------- static initializer -------- static { typeinfos = new HashSet(); String uri = "http://jadex.sourceforge.net/jadexconf"; typeinfos.add(new TypeInfo(new XMLInfo(new QName(uri, "properties")), new ObjectInfo(Properties.class), new MappingInfo(null, new AttributeInfo[]{ new AttributeInfo(new AccessInfo(new QName("http://www.w3.org/2001/XMLSchema-instance", "schemaLocation"), null, AccessInfo.IGNORE_READWRITE))}, new SubobjectInfo[]{ new SubobjectInfo(new XMLInfo(new QName(uri, "property")), new AccessInfo(new QName(uri, "property"), "properties"), null, true), new SubobjectInfo(new XMLInfo(new QName(uri, "properties")), new AccessInfo(new QName(uri, "properties"), "subproperties"), null, true) }))); // typeinfos.add(new TypeInfo(null, new QName[]{new QName("http://jadex.sourceforge.net/jadexconf", "property")}, Property.class, null, new BeanAttributeInfo(null, "value"))); typeinfos.add(new TypeInfo(new XMLInfo(new QName(uri, "property")), new ObjectInfo(Property.class), new MappingInfo(null, null, new AttributeInfo(new AccessInfo((String)null, "value"))))); } /** * Get the xml properties writer. * @return The writer. */ public static Writer getPropertyWriter() { if(writer==null) { synchronized(PropertiesXMLHelper.class) { if(writer==null) { writer = new jadex.xml.writer.Writer(new BeanObjectWriterHandler(typeinfos)); } } } return writer; } /** * Get the xml properties reader. * @return The reader. */ public static Reader getPropertyReader() { if(reader==null) { synchronized(PropertiesXMLHelper.class) { if(reader==null) { reader = new jadex.xml.reader.Reader(new BeanObjectReaderHandler(typeinfos)); } } } return reader; } }