
org.enhydra.xml.xmlc.XMLCFactory Maven / Gradle / Ivy
/*
* Enhydra Java Application Server Project
*
* The contents of this file are subject to the Enhydra Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License on
* the Enhydra web site ( http://www.enhydra.org/ ).
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific terms governing rights and limitations
* under the License.
*
* The Initial Developer of the Enhydra Application Server is Lutris
* Technologies, Inc. The Enhydra Application Server and portions created
* by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
* All Rights Reserved.
*
* Contributor(s):
*
* $Id: XMLCFactory.java,v 1.1.1.1 2003/03/10 16:36:19 taweili Exp $
*/
package org.enhydra.xml.xmlc;
/**
* Interface for factories for instances of XMLC generated classes.
*/
public interface XMLCFactory {
/**
* Create an instance of a XMLC-generated class or a class derived
* from one, given the name of the class.
*
* The class must have a constructor that takes a single boolean argument
* that will disable the immediate build of the DOM if false. XMLC
* creates such a constructor in the classes it generates.
*
* @param xmlcClassName The name of the XMLC class or derived class.
* @return The new object.
* @see #create(Class)
*/
public XMLObject create(String xmlcClassName);
/**
* Create an instance of a XMLC-generated class or a class derived
* from one, given either a class or an interface object.
*
* If a class is given, then it should be either the XMLC generated class
* or a class derived from it. This is useful for factories that create
* the given class then preform some operation with it, such as automatic
* recompilation.
*
* If an interface is given, it is converted to the implementation name
* by appending "Impl" to the name. In this case, the implementation
* must be in the same package.
*
* The class must have a constructor that takes a single boolean argument
* that will disable the immediate build of the DOM if false. XMLC
* creates such a constructor in the classes it generates.
*
* @param xmlcBasedClass The Class object for the class or interface.
* @return The new object.
*/
public XMLObject create(Class xmlcBasedClass);
}