X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fxmltooling.git;a=blobdiff_plain;f=xmltooling%2FConcreteXMLObjectBuilder.h;fp=xmltooling%2FConcreteXMLObjectBuilder.h;h=41c1dbf33cb851d3c74ddeaf988f382fdc3a5f10;hp=0000000000000000000000000000000000000000;hb=862161ef6283127928bd9307e1a184bf2ea0a6c8;hpb=7ff05fc3ab9187bc51b273cd9d232bb948171e5e diff --git a/xmltooling/ConcreteXMLObjectBuilder.h b/xmltooling/ConcreteXMLObjectBuilder.h new file mode 100644 index 0000000..41c1dbf --- /dev/null +++ b/xmltooling/ConcreteXMLObjectBuilder.h @@ -0,0 +1,52 @@ +/* + * Copyright 2001-2007 Internet2 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file xmltooling/ConcreteXMLObjectBuilder.h + * + * Factory interface for concrete XMLObjects, supporting default construction. + */ + +#ifndef __xmltooling_concxmlobjbuilder_h__ +#define __xmltooling_concxmlobjbuilder_h__ + +#include + +namespace xmltooling { + + /** + * A factory interface for obtaining XMLObjects. + * Subclasses MAY supply additional factory methods. + */ + class XMLTOOL_API ConcreteXMLObjectBuilder : public XMLObjectBuilder + { + public: + virtual ~ConcreteXMLObjectBuilder() {} + + /** + * Creates an empty XMLObject with a defaulted element name and/or type. + * + * @return the empty XMLObject + */ + virtual XMLObject* buildObject() const=0; + + protected: + ConcreteXMLObjectBuilder() {} + }; + +}; + +#endif /* __xmltooling_concxmlobjbuilder_h__ */