You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
302 lines
6.2 KiB
302 lines
6.2 KiB
/*
|
|
This file is part of KDE Schema Parser
|
|
|
|
Copyright (c) 2005 Tobias Koenig <tokoe@kde.org>
|
|
based on wsdlpull parser by Vivek Krishna
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#include "simpletype.h"
|
|
|
|
using namespace Schema;
|
|
|
|
SimpleType::SimpleType()
|
|
: mBaseType( 0 ), mContentModel( SIMPLE ),
|
|
mRestriction( false ), mFacetId( NONE ), mAnonymous( false ),
|
|
mSubType( TypeRestriction ), mListType( INVALID )
|
|
{
|
|
}
|
|
|
|
SimpleType::SimpleType( const TQString &nameSpace )
|
|
: mNameSpace( nameSpace ), mBaseType( 0 ), mContentModel( SIMPLE ),
|
|
mRestriction( false ), mFacetId( NONE ), mAnonymous( false ),
|
|
mSubType( TypeRestriction ), mListType( INVALID )
|
|
{
|
|
}
|
|
|
|
SimpleType::~SimpleType()
|
|
{
|
|
}
|
|
|
|
void SimpleType::setName( const TQString &name )
|
|
{
|
|
mName = name;
|
|
}
|
|
|
|
TQString SimpleType::name() const
|
|
{
|
|
return mName;
|
|
}
|
|
|
|
QualifiedName SimpleType::qualifiedName() const
|
|
{
|
|
QualifiedName qn( mName );
|
|
qn.setNameSpace( mNameSpace );
|
|
return qn;
|
|
}
|
|
|
|
void SimpleType::setDocumentation( const TQString &documentation )
|
|
{
|
|
mDocumentation = documentation;
|
|
}
|
|
|
|
TQString SimpleType::documentation() const
|
|
{
|
|
return mDocumentation;
|
|
}
|
|
|
|
void SimpleType::setType( int type )
|
|
{
|
|
mType = type;
|
|
}
|
|
|
|
int SimpleType::type() const
|
|
{
|
|
return mType;
|
|
}
|
|
|
|
void SimpleType::setBaseType( int baseType )
|
|
{
|
|
mBaseType = baseType;
|
|
mRestriction = true;
|
|
}
|
|
|
|
int SimpleType::baseType() const
|
|
{
|
|
return mBaseType;
|
|
}
|
|
|
|
void SimpleType::setBaseTypeName( const TQString &baseTypeName )
|
|
{
|
|
mBaseTypeName = baseTypeName;
|
|
}
|
|
|
|
TQString SimpleType::baseTypeName() const
|
|
{
|
|
return mBaseTypeName;
|
|
}
|
|
|
|
void SimpleType::setSubType( SubType subType )
|
|
{
|
|
mSubType = subType;
|
|
}
|
|
|
|
SimpleType::SubType SimpleType::subType() const
|
|
{
|
|
return mSubType;
|
|
}
|
|
|
|
void SimpleType::setListType( int listType )
|
|
{
|
|
mListType = listType;
|
|
}
|
|
|
|
int SimpleType::listType() const
|
|
{
|
|
return mListType;
|
|
}
|
|
|
|
void SimpleType::setListTypeName( const TQString &name )
|
|
{
|
|
mListTypeName = name;
|
|
}
|
|
|
|
TQString SimpleType::listTypeName() const
|
|
{
|
|
return mListTypeName;
|
|
}
|
|
|
|
void SimpleType::setContentModel( int contentModel )
|
|
{
|
|
mContentModel = contentModel;
|
|
}
|
|
|
|
int SimpleType::contentModel() const
|
|
{
|
|
return mContentModel;
|
|
}
|
|
|
|
void SimpleType::setAnonymous( bool anonymous )
|
|
{
|
|
mAnonymous = anonymous;
|
|
}
|
|
|
|
bool SimpleType::isAnonymous() const
|
|
{
|
|
return mAnonymous;
|
|
}
|
|
|
|
bool SimpleType::isValidFacet( const TQString &facet )
|
|
{
|
|
if ( mBaseType == 0 ) {
|
|
tqDebug( "isValidFacet:Unknown base type" );
|
|
return false;
|
|
}
|
|
|
|
if ( facet == "length" )
|
|
mFacetId |= LENGTH;
|
|
else if ( facet == "minLength" )
|
|
mFacetId |= MINLEN;
|
|
else if ( facet == "maxLength" )
|
|
mFacetId |= MAXLEN;
|
|
else if ( facet == "enumeration" )
|
|
mFacetId |= ENUM;
|
|
else if ( facet == "whiteSpace" )
|
|
mFacetId |= WSP;
|
|
else if ( facet == "pattern" )
|
|
mFacetId |= PATTERN;
|
|
else if ( facet == "maxInclusive" )
|
|
mFacetId |= MAXINC;
|
|
else if ( facet == "maxExclusive" )
|
|
mFacetId |= MAXEX;
|
|
else if ( facet == "minInclusive" )
|
|
mFacetId |= MININC;
|
|
else if ( facet == "minExclusive" )
|
|
mFacetId |= MINEX;
|
|
else if ( facet == "totalDigits" )
|
|
mFacetId |= TOT;
|
|
else if ( facet == "fractionDigits" )
|
|
mFacetId |= FRAC;
|
|
else {
|
|
mFacetId = NONE;
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
void SimpleType::setFacetValue( const TQString &value )
|
|
{
|
|
int number = -1;
|
|
|
|
if ( mFacetId & ENUM ) {
|
|
mEnums.append( value );
|
|
} else if ( mFacetId & PATTERN ) {
|
|
mFacetValue.pattern = value;
|
|
} else if ( mFacetId & WSP ) {
|
|
if ( value == "preserve" )
|
|
mFacetValue.wsp = PRESERVE;
|
|
else if ( value == "collapse" )
|
|
mFacetValue.wsp = COLLAPSE;
|
|
else if ( value == "replace" )
|
|
mFacetValue.wsp = REPLACE;
|
|
else {
|
|
tqDebug( "Invalid facet value for whitespace" );
|
|
return;
|
|
}
|
|
} else {
|
|
number = value.toInt();
|
|
}
|
|
|
|
if ( mFacetId & MAXEX ) {
|
|
mFacetValue.valRange.maxex = number;
|
|
} else if ( mFacetId & MAXINC ) {
|
|
mFacetValue.valRange.maxinc = number;
|
|
} else if ( mFacetId & MININC ) {
|
|
mFacetValue.valRange.mininc = number;
|
|
} else if ( mFacetId & MINEX ) {
|
|
mFacetValue.valRange.minex = number;
|
|
} else if ( mFacetId & MAXEX ) {
|
|
mFacetValue.valRange.maxex = number;
|
|
} else if ( mFacetId & LENGTH ) {
|
|
mFacetValue.length = number;
|
|
} else if ( mFacetId & MINLEN ) {
|
|
mFacetValue.lenRange.minlen = number;
|
|
} else if ( mFacetId & MAXLEN ) {
|
|
mFacetValue.lenRange.maxlen = number;
|
|
} else if ( mFacetId & TOT ) {
|
|
mFacetValue.tot = number;
|
|
} else if ( mFacetId & FRAC ) {
|
|
mFacetValue.frac = number;
|
|
}
|
|
}
|
|
|
|
int SimpleType::facetType() const
|
|
{
|
|
return mFacetId;
|
|
}
|
|
|
|
int SimpleType::facetLength() const
|
|
{
|
|
return mFacetValue.length;
|
|
}
|
|
|
|
int SimpleType::facetMinimumLength() const
|
|
{
|
|
return mFacetValue.lenRange.minlen;
|
|
}
|
|
|
|
int SimpleType::facetMaximumLength() const
|
|
{
|
|
return mFacetValue.lenRange.maxlen;
|
|
}
|
|
|
|
TQStringList SimpleType::facetEnums() const
|
|
{
|
|
return mEnums;
|
|
}
|
|
|
|
SimpleType::WhiteSpaceType SimpleType::facetWhiteSpace() const
|
|
{
|
|
return mFacetValue.wsp;
|
|
}
|
|
|
|
int SimpleType::facetMinimumInclusive() const
|
|
{
|
|
return mFacetValue.valRange.mininc;
|
|
}
|
|
|
|
int SimpleType::facetMaximumInclusive() const
|
|
{
|
|
return mFacetValue.valRange.maxinc;
|
|
}
|
|
|
|
int SimpleType::facetMinimumExclusive() const
|
|
{
|
|
return mFacetValue.valRange.minex;
|
|
}
|
|
|
|
int SimpleType::facetMaximumExclusive() const
|
|
{
|
|
return mFacetValue.valRange.maxex;
|
|
}
|
|
|
|
int SimpleType::facetTotalDigits() const
|
|
{
|
|
return mFacetValue.tot;
|
|
}
|
|
|
|
int SimpleType::facetFractionDigits() const
|
|
{
|
|
return mFacetValue.frac;
|
|
}
|
|
|
|
TQString SimpleType::facetPattern() const
|
|
{
|
|
return mFacetValue.pattern;
|
|
}
|