blob: 9f5b8bbb63078b505ed73943f506ebc8af0f05d7 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*
*************************************************************/
#ifndef ARY_INFO_ALL_DTS_HXX
#define ARY_INFO_ALL_DTS_HXX
// USED SERVICES
// BASE CLASSES
// COMPONENTS
// PARAMETERS
namespace ary
{
namespace info
{
class DocuDisplay;
class DocuToken
{
public:
virtual ~DocuToken() {}
void StoreAt(
DocuDisplay & o_rDisplay ) const;
bool IsWhite() const;
private:
virtual void do_StoreAt(
DocuDisplay & o_rDisplay ) const = 0;
virtual bool inq_IsWhite() const = 0;
};
class DT_Text : public DocuToken
{
public:
DT_Text(
const char * i_sText )
: sText( i_sText ) {}
const String & Text() const { return sText; }
private:
virtual void do_StoreAt(
DocuDisplay & o_rDisplay ) const;
virtual bool inq_IsWhite() const;
String sText;
};
class DT_MaybeLink : public DocuToken
{
public:
DT_MaybeLink(
const char * i_sText,
bool i_bIsGlobal,
bool i_bIsFunction )
: sText( i_sText ),
bIsGlobal(i_bIsGlobal),
bIsFunction(i_bIsFunction) { }
const String & Text() const { return sText; }
bool IsAbsolute() const { return bIsGlobal; }
bool IsFunction() const { return bIsFunction; }
private:
virtual void do_StoreAt(
DocuDisplay & o_rDisplay ) const;
virtual bool inq_IsWhite() const;
String sText;
bool bIsGlobal;
bool bIsFunction;
};
class DT_Whitespace : public DocuToken
{
public:
DT_Whitespace(
UINT8 i_nLength )
: nLength( i_nLength ) {}
UINT8 Length() const { return nLength; }
private:
virtual void do_StoreAt(
DocuDisplay & o_rDisplay ) const;
virtual bool inq_IsWhite() const;
UINT8 nLength;
};
class DT_Eol : public DocuToken
{
virtual void do_StoreAt(
DocuDisplay & o_rDisplay ) const;
virtual bool inq_IsWhite() const;
};
class DT_Xml : public DocuToken
{
public:
DT_Xml(
const char * i_sText )
: sText( i_sText ) {}
const String & Text() const { return sText; }
private:
virtual void do_StoreAt(
DocuDisplay & o_rDisplay ) const;
virtual bool inq_IsWhite() const;
String sText;
};
// IMPLEMENTATION
inline void
DocuToken::StoreAt( DocuDisplay & o_rDisplay ) const
{ do_StoreAt(o_rDisplay); }
inline bool
DocuToken::IsWhite() const
{ return inq_IsWhite(); }
}
}
#endif