1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef DSAPI_CX_DOCU2_HXX 29 #define DSAPI_CX_DOCU2_HXX 30 31 // USED SERVICES 32 // BASE CLASSES 33 #include <tokens/tkpcont2.hxx> 34 // COMPONENTS 35 // PARAMETERS 36 #include <s2_dsapi/tk_xml.hxx> 37 38 namespace csi 39 { 40 namespace dsapi 41 { 42 43 class Token_Receiver; 44 45 46 /** 47 @descr 48 */ 49 50 class Cx_Base : public ::TkpContext 51 { 52 public: 53 virtual bool PassNewToken(); 54 virtual TkpContext & 55 FollowUpContext(); 56 protected: 57 // LIFECYCLE 58 Cx_Base( 59 Token_Receiver & o_rReceiver, 60 TkpContext & i_rFollowUpContext ) 61 : rReceiver(o_rReceiver), 62 pFollowUpContext(&i_rFollowUpContext) 63 // pNewToken 64 { } 65 protected: 66 void SetToken( 67 DYN Token * let_dpToken ) 68 { pNewToken = let_dpToken; } 69 void Handle_DocuSyntaxError( 70 CharacterSource & io_rText ); 71 72 private: 73 // DATA 74 Token_Receiver & rReceiver; 75 TkpContext * pFollowUpContext; 76 Dyn<Token> pNewToken; 77 }; 78 79 80 class Cx_EoHtml : public Cx_Base 81 { 82 public: 83 // LIFECYCLE 84 Cx_EoHtml( 85 Token_Receiver & o_rReceiver, 86 TkpContext & i_rFollowUpContext ) 87 : Cx_Base(o_rReceiver, i_rFollowUpContext) {} 88 // OPERATIONS 89 virtual void ReadCharChain( 90 CharacterSource & io_rText ); 91 void SetIfIsStartOfParagraph( 92 bool i_bNextTokenProperty ) 93 { bToken_IsStartOfParagraph = i_bNextTokenProperty; } 94 95 private: 96 bool bToken_IsStartOfParagraph; 97 }; 98 99 class Cx_EoXmlConst : public Cx_Base 100 { 101 public: 102 // LIFECYCLE 103 Cx_EoXmlConst( 104 Token_Receiver & o_rReceiver, 105 TkpContext & i_rFollowUpContext ) 106 : Cx_Base(o_rReceiver, i_rFollowUpContext) {} 107 // OPERATIONS 108 virtual void ReadCharChain( 109 CharacterSource & io_rText ); 110 void SetTokenId( 111 lux::Enum< Tok_XmlConst::E_TokenId > 112 i_eTokenId ) 113 { eTokenId = i_eTokenId; } 114 private: 115 Tok_XmlConst::EV_TokenId 116 eTokenId; 117 }; 118 119 class Cx_EoXmlLink_BeginTag : public Cx_Base 120 { 121 public: 122 // LIFECYCLE 123 Cx_EoXmlLink_BeginTag( 124 Token_Receiver & o_rReceiver, 125 TkpContext & i_rFollowUpContext ) 126 : Cx_Base(o_rReceiver, i_rFollowUpContext) {} 127 // OPERATIONS 128 virtual void ReadCharChain( 129 CharacterSource & io_rText ); 130 void SetTokenId( 131 Tok_XmlLink_BeginTag::EV_TokenId 132 i_eTokenId ) 133 { eTokenId = i_eTokenId; } 134 private: 135 Tok_XmlLink_BeginTag::EV_TokenId 136 eTokenId; 137 }; 138 139 class Cx_EoXmlLink_EndTag : public Cx_Base 140 { 141 public: 142 // LIFECYCLE 143 Cx_EoXmlLink_EndTag( 144 Token_Receiver & o_rReceiver, 145 TkpContext & i_rFollowUpContext ) 146 : Cx_Base(o_rReceiver, i_rFollowUpContext) {} 147 // OPERATIONS 148 virtual void ReadCharChain( 149 CharacterSource & io_rText ); 150 void SetTokenId( 151 Tok_XmlLink_EndTag::EV_TokenId 152 i_eTokenId ) 153 { eTokenId = i_eTokenId; } 154 private: 155 Tok_XmlLink_EndTag::E_TokenId 156 eTokenId; 157 }; 158 159 class Cx_EoXmlFormat_BeginTag : public Cx_Base 160 { 161 public: 162 // LIFECYCLE 163 Cx_EoXmlFormat_BeginTag( 164 Token_Receiver & o_rReceiver, 165 TkpContext & i_rFollowUpContext ) 166 : Cx_Base(o_rReceiver, i_rFollowUpContext) {} 167 // OPERATIONS 168 virtual void ReadCharChain( 169 CharacterSource & io_rText ); 170 void SetTokenId( 171 lux::Enum< Tok_XmlFormat_BeginTag::E_TokenId > 172 i_eTokenId ) 173 { eTokenId = i_eTokenId; } 174 private: 175 lux::Enum< Tok_XmlFormat_BeginTag::E_TokenId > 176 eTokenId; 177 }; 178 179 class Cx_EoXmlFormat_EndTag : public Cx_Base 180 { 181 public: 182 // LIFECYCLE 183 Cx_EoXmlFormat_EndTag( 184 Token_Receiver & o_rReceiver, 185 TkpContext & i_rFollowUpContext ) 186 : Cx_Base(o_rReceiver, i_rFollowUpContext) {} 187 // OPERATIONS 188 virtual void ReadCharChain( 189 CharacterSource & io_rText ); 190 void SetTokenId( 191 lux::Enum< Tok_XmlFormat_EndTag::E_TokenId > 192 i_eTokenId ) 193 { eTokenId = i_eTokenId; } 194 private: 195 lux::Enum< Tok_XmlFormat_EndTag::E_TokenId > 196 eTokenId; 197 }; 198 199 class Cx_CheckStar : public Cx_Base 200 { 201 public: 202 // LIFECYCLE 203 Cx_CheckStar( 204 Token_Receiver & o_rReceiver, 205 TkpContext & i_rFollowUpContext ) 206 : Cx_Base(o_rReceiver, i_rFollowUpContext), 207 bIsEnd(false), bEndTokenFound(false) 208 { } 209 void Set_End_FolloUpContext( 210 TkpContext & i_rEnd_FollowUpContext ) 211 { pEnd_FollowUpContext = &i_rEnd_FollowUpContext; } 212 213 virtual void ReadCharChain( 214 CharacterSource & io_rText ); 215 void SetIsEnd( 216 bool i_bIsEnd ) 217 { bIsEnd = i_bIsEnd; } 218 virtual TkpContext & 219 FollowUpContext(); 220 private: 221 TkpContext * pEnd_FollowUpContext; 222 bool bIsEnd; 223 bool bEndTokenFound; 224 }; 225 226 227 } // namespace dsapi 228 } // namespace csi 229 230 231 232 #endif 233 234