All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jadex.xml.writer.XMLWriterFactory Maven / Gradle / Ivy

Go to download

Jadex XML is an XML data binding framework for Java and also for other representations. The main idea of Jadex XML is that neither the XML-Schema on the one side nor the Java classes on the other side should define other binding. Instead, a separate mapping between both is used as a mediation. This allows designing the XML representation independent of the Java side but still being able to connect both as desired. This idea was first put forward by the JiBX data binding framework. Jadex XML pushes it further by combining it with the configuration by exception principle. The framework can detect obvious correspondences between both sides automatically and only needs configuration information when translations are necessary. The configuration information is currently specified directly in form of Java configuration classes.

There is a newer version: 3.0.117
Show newest version
package jadex.xml.writer;

import java.util.logging.Level;
import java.util.logging.Logger;

import jadex.commons.SReflect;

/**
 * Factory to create XML Writers.
 */
public abstract class XMLWriterFactory
{
	// -------- attributes --------

	/** The instance of this factory */
	private static XMLWriterFactory INSTANCE;

	// -------- constructors --------
	/**
	 * Constructor.
	 */
	protected XMLWriterFactory()
	{
	}

	// -------- methods --------
	/**
	 * Returns the instance of this factory.
	 * 
	 * @return the factory instance
	 */
	public static XMLWriterFactory getInstance()
	{
		if(INSTANCE == null)
		{
			if(SReflect.isAndroid())
			{
				Class< ? > clz;
				try
				{
					clz = SReflect.classForName("jadex.xml.writer.XMLWriterFactoryAndroid", null);
					if(clz != null)
					{
						INSTANCE = (XMLWriterFactory)clz.newInstance();
					}
				}
				catch(ClassNotFoundException e)
				{
					Logger.getLogger("jadex").log(Level.WARNING, "XMLWriter not available.");
				}
				catch(InstantiationException e)
				{
					e.printStackTrace();
				}
				catch(IllegalAccessException e)
				{
					e.printStackTrace();
				}
			}
			else
			{
				INSTANCE = new XMLWriterFactoryDesktop();
			}
		}
		return INSTANCE;
	}

	/**
	 *  Create a new reader (with genids=true and indent=true).
	 */
	public abstract AWriter createWriter();

	/**
	 * Create an XMLWRiter
	 * @param genIds flag for generating ids.
	 * @return the writer
	 */
	public abstract AWriter createWriter(boolean genIds);
	

	/**
	 * Creates a new default XML Reader.
	 * 
	 * @param genids
	 * @param indents
	 * @return reader
	 */
	public abstract AWriter createWriter(boolean genids, boolean indents);
	
	/**
	 * Creates a new default XML Reader.
	 * 
	 * @param genids
	 * @param indents
	 * @return reader
	 */
	public abstract AWriter createWriter(boolean genids, boolean indents, boolean newline);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy