00001 /* 00002 * Copyright 2003,2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 /* 00018 * $Log: XSMultiValueFacet.hpp,v $ 00019 * Revision 1.7 2004/09/08 13:56:09 peiyongz 00020 * Apache License Version 2.0 00021 * 00022 * Revision 1.6 2003/12/01 23:23:26 neilg 00023 * fix for bug 25118; thanks to Jeroen Witmond 00024 * 00025 * Revision 1.5 2003/11/21 17:34:04 knoaman 00026 * PSVI update 00027 * 00028 * Revision 1.4 2003/11/14 22:47:53 neilg 00029 * fix bogus log message from previous commit... 00030 * 00031 * Revision 1.3 2003/11/14 22:33:30 neilg 00032 * Second phase of schema component model implementation. 00033 * Implement XSModel, XSNamespaceItem, and the plumbing necessary 00034 * to connect them to the other components. 00035 * Thanks to David Cargill. 00036 * 00037 * Revision 1.2 2003/11/06 15:30:04 neilg 00038 * first part of PSVI/schema component model implementation, thanks to David Cargill. This covers setting the PSVIHandler on parser objects, as well as implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and XSAttributeUse. 00039 * 00040 * Revision 1.1 2003/09/16 14:33:36 neilg 00041 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them 00042 * 00043 */ 00044 00045 #if !defined(XSMULTIVALUEFACET_HPP) 00046 #define XSMULTIVALUEFACET_HPP 00047 00048 #include <xercesc/framework/psvi/XSObject.hpp> 00049 #include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp> 00050 00051 XERCES_CPP_NAMESPACE_BEGIN 00052 00060 // forward declarations 00061 class XSAnnotation; 00062 00063 class XSMultiValueFacet : public XSObject 00064 { 00065 public: 00066 00067 // Constructors and Destructor 00068 // ----------------------------------------------------------------------- 00071 00082 XSMultiValueFacet 00083 ( 00084 XSSimpleTypeDefinition::FACET facetKind 00085 , StringList* lexicalValues 00086 , bool isFixed 00087 , XSAnnotation* const headAnnot 00088 , XSModel* const xsModel 00089 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager 00090 ); 00091 00093 00096 ~XSMultiValueFacet(); 00098 00099 //--------------------- 00103 00107 XSSimpleTypeDefinition::FACET getFacetKind() const; 00108 00112 StringList *getLexicalFacetValues(); 00113 00117 bool isFixed() const; 00118 00122 XSAnnotationList *getAnnotations(); 00123 00125 00126 //---------------------------------- 00130 00132 private: 00133 00134 // ----------------------------------------------------------------------- 00135 // Unimplemented constructors and operators 00136 // ----------------------------------------------------------------------- 00137 XSMultiValueFacet(const XSMultiValueFacet&); 00138 XSMultiValueFacet & operator=(const XSMultiValueFacet &); 00139 00140 protected: 00141 00142 // ----------------------------------------------------------------------- 00143 // data members 00144 // ----------------------------------------------------------------------- 00145 XSSimpleTypeDefinition::FACET fFacetKind; 00146 bool fIsFixed; 00147 StringList* fLexicalValues; // not owned by this class 00148 XSAnnotationList* fXSAnnotationList; 00149 }; 00150 00151 00152 inline XSSimpleTypeDefinition::FACET XSMultiValueFacet::getFacetKind() const 00153 { 00154 return fFacetKind; 00155 } 00156 00157 inline bool XSMultiValueFacet::isFixed() const 00158 { 00159 return fIsFixed; 00160 } 00161 00162 inline StringList *XSMultiValueFacet::getLexicalFacetValues() 00163 { 00164 return fLexicalValues; 00165 } 00166 00167 inline XSAnnotationList *XSMultiValueFacet::getAnnotations() 00168 { 00169 return fXSAnnotationList; 00170 } 00171 00172 00173 XERCES_CPP_NAMESPACE_END 00174 00175 #endif