1 /* 2 * Enhydra Java Application Server Project 3 * 4 * The contents of this file are subject to the Enhydra Public License 5 * Version 1.1 (the "License"); you may not use this file except in 6 * compliance with the License. You may obtain a copy of the License on 7 * the Enhydra web site ( http://www.enhydra.org/ ). 8 * 9 * Software distributed under the License is distributed on an "AS IS" 10 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 11 * the License for the specific terms governing rights and limitations 12 * under the License. 13 * 14 * The Initial Developer of the Enhydra Application Server is Lutris 15 * Technologies, Inc. The Enhydra Application Server and portions created 16 * by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc. 17 * All Rights Reserved. 18 * 19 * Contributor(s): 20 * Richard Kunze 21 * $Id: DocumentLoader.java,v 1.2 2005/01/26 08:29:24 jkjome Exp $ 22 */ 23 24 package org.enhydra.xml.xmlc.deferredparsing; 25 26 import org.enhydra.xml.xmlc.XMLCRuntimeException; 27 import org.w3c.dom.Document; 28 29 /** 30 * Interface for creating a DOM by document name. This interface is 31 * used by XMLC generated classes with deferred parsing support to 32 * delegate the actual work of DOM generation. Note: Document loaders 33 * may be shared between different XMLC classes and accessed 34 * concurrently. Classes implementing this interface must be thread 35 * safe (reentrant preferred). 36 */ 37 public interface DocumentLoader { 38 39 /** 40 * Bind to a factory. This is done so that loggers, etc 41 * can be grabbed from the factory. 42 * 43 * @param factory Factory that is creating the object. Useful 44 * for getting logging object. 45 */ 46 public void init(XMLCDeferredParsingFactory factory); 47 48 /** 49 * Get a DOM instance representing the specified document. 50 * @param docClass the XMLC generated class to get the DOM for. 51 * @return the DOM representing objects of <code>docClass</code> 52 */ 53 public Document getDocument(Class docClass) throws XMLCRuntimeException; 54 } 55