source: icXML/icXML-devel/src/xercesc/framework/psvi/XSParticle.cpp @ 2722

Last change on this file since 2722 was 2722, checked in by cameron, 6 years ago

Original Xerces files with import mods for icxercesc

File size: 2.6 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: XSParticle.cpp 674012 2008-07-04 11:18:21Z borisk $
20 */
21
22#include <xercesc/framework/psvi/XSParticle.hpp>
23#include <xercesc/framework/psvi/XSElementDeclaration.hpp>
24#include <xercesc/framework/psvi/XSModelGroup.hpp>
25#include <xercesc/framework/psvi/XSWildcard.hpp>
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29// ---------------------------------------------------------------------------
30//  XSParticle: Constructors and Destructor
31// ---------------------------------------------------------------------------
32XSParticle::XSParticle(TERM_TYPE            termType,
33                       XSModel* const       xsModel,
34                       XSObject* const      particleTerm,
35                       XMLSize_t            minOccurs,
36                       XMLSize_t            maxOccurs,
37                       bool                 unbounded,
38                       MemoryManager* const manager)
39    : XSObject(XSConstants::PARTICLE, xsModel, manager)
40    , fTermType(termType)
41    , fMinOccurs(minOccurs)
42    , fMaxOccurs(maxOccurs)
43    , fUnbounded (unbounded)
44    , fTerm(particleTerm)
45{
46}
47
48XSParticle::~XSParticle()
49{
50    if (fTerm && (fTermType == TERM_MODELGROUP))
51        delete ((XSModelGroup*) fTerm);
52}
53
54// ---------------------------------------------------------------------------
55//  XSParticle: methods
56// ---------------------------------------------------------------------------
57XSElementDeclaration *XSParticle::getElementTerm()
58{
59    if (fTermType == TERM_ELEMENT)
60        return (XSElementDeclaration*) fTerm;
61
62    return 0;
63}
64
65XSModelGroup *XSParticle::getModelGroupTerm()
66{
67    if (fTermType == TERM_MODELGROUP)
68        return (XSModelGroup*) fTerm;
69
70    return 0;
71}
72
73XSWildcard *XSParticle::getWildcardTerm()
74{
75    if (fTermType == TERM_WILDCARD)
76        return (XSWildcard*) fTerm;
77
78    return 0;
79}
80
81XERCES_CPP_NAMESPACE_END
Note: See TracBrowser for help on using the repository browser.