Mega Code Archive

 
Categories / Java / XML
 

Return a new document, ready to populate

import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; public class Utils {   private static DocumentBuilderFactory dbf;   private static Queue builders = new ConcurrentLinkedQueue();   public static DocumentBuilder getBuilder() throws ParserConfigurationException {     DocumentBuilder builder = (DocumentBuilder) builders.poll();     if (builder == null) {       if (dbf == null) {         dbf = DocumentBuilderFactory.newInstance();         dbf.setNamespaceAware(true);       }       builder = dbf.newDocumentBuilder();     }     return builder;   }   public static void releaseBuilder(DocumentBuilder builder) {     builders.add(builder);   }   /**    * Return a new document, ready to populate.    *     * @return    * @throws ParserConfigurationException    */   public static Document newDocument() throws ParserConfigurationException {     DocumentBuilder builder = getBuilder();     Document doc = builder.newDocument();     releaseBuilder(builder);     return doc;   } }