1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 #include <precomp.h> 23 #include <s2_dsapi/tk_xml.hxx> 24 25 26 // NOT FULLY DEFINED SERVICES 27 #include <s2_dsapi/tokintpr.hxx> 28 29 using csi::dsapi::Tok_XmlConst; 30 using csi::dsapi::Tok_XmlLink_Tag; 31 using csi::dsapi::Tok_XmlFormat_Tag; 32 33 34 lux::EnumValueMap G_aTok_XmlConst_EV_TokenId_Values; 35 Tok_XmlConst::EV_TokenId ev_consts_none(Tok_XmlConst::e_none,""); 36 Tok_XmlConst::EV_TokenId ev_e_true(Tok_XmlConst::e_true,"true"); 37 Tok_XmlConst::EV_TokenId ev_e_false(Tok_XmlConst::e_false,"false"); 38 Tok_XmlConst::EV_TokenId ev_e_null(Tok_XmlConst::e_null,"NULL"); 39 Tok_XmlConst::EV_TokenId ev_e_void(Tok_XmlConst::e_void,"void"); 40 41 lux::EnumValueMap G_aTok_XmlLink_Tag_EV_TokenId_Values; 42 Tok_XmlLink_Tag::EV_TokenId ev_linktags_none(Tok_XmlLink_Tag::e_none,""); 43 Tok_XmlLink_Tag::EV_TokenId ev_e_const(Tok_XmlLink_Tag::e_const,"const"); 44 Tok_XmlLink_Tag::EV_TokenId ev_member(Tok_XmlLink_Tag::member,"member"); 45 Tok_XmlLink_Tag::EV_TokenId ev_type(Tok_XmlLink_Tag::type,"type"); 46 47 lux::EnumValueMap G_aTok_XmlFormat_Tag_EV_TokenId_Values; 48 Tok_XmlFormat_Tag::EV_TokenId ev_formattags_none(Tok_XmlFormat_Tag::e_none,""); 49 Tok_XmlFormat_Tag::EV_TokenId ev_code(Tok_XmlFormat_Tag::code,"code"); 50 Tok_XmlFormat_Tag::EV_TokenId ev_listing(Tok_XmlFormat_Tag::listing,"listing"); 51 Tok_XmlFormat_Tag::EV_TokenId ev_atom(Tok_XmlFormat_Tag::atom,"code"); 52 53 54 namespace lux 55 { 56 57 template<> EnumValueMap & 58 Tok_XmlConst::EV_TokenId::Values_() { return G_aTok_XmlConst_EV_TokenId_Values; } 59 template<> EnumValueMap & 60 Tok_XmlLink_Tag::EV_TokenId::Values_() { return G_aTok_XmlLink_Tag_EV_TokenId_Values; } 61 template<> EnumValueMap & 62 Tok_XmlFormat_Tag::EV_TokenId::Values_() { return G_aTok_XmlFormat_Tag_EV_TokenId_Values; } 63 64 } // namespace lux 65 66 67 68 namespace csi 69 { 70 namespace dsapi 71 { 72 73 void 74 Tok_XmlConst::Trigger( TokenInterpreter & io_rInterpreter ) const 75 { 76 io_rInterpreter.Process_XmlConst(*this); 77 } 78 79 const char * 80 Tok_XmlConst::Text() const 81 { 82 return eTag.Text(); 83 } 84 85 void 86 Tok_XmlLink_BeginTag::Trigger( TokenInterpreter & io_rInterpreter ) const 87 { 88 io_rInterpreter.Process_XmlLink_BeginTag(*this); 89 } 90 91 const char * 92 Tok_XmlLink_BeginTag::Text() const 93 { 94 static StreamStr ret(120); 95 ret.seekp(0); 96 if (sScope.length() > 0) 97 { 98 ret << "<" 99 << eTag.Text() 100 << " scope=\"" 101 << sScope 102 << "\">"; 103 } 104 else 105 { 106 ret << "<" 107 << eTag.Text() 108 << ">"; 109 } 110 return ret.c_str(); 111 } 112 113 void 114 Tok_XmlLink_EndTag::Trigger( TokenInterpreter & io_rInterpreter ) const 115 { 116 io_rInterpreter.Process_XmlLink_EndTag(*this); 117 } 118 119 const char * 120 Tok_XmlLink_EndTag::Text() const 121 { 122 static StreamStr ret(120); 123 ret.seekp(0); 124 ret << "</" 125 << eTag.Text() 126 << ">"; 127 return ret.c_str(); 128 } 129 130 void 131 Tok_XmlFormat_BeginTag::Trigger( TokenInterpreter & io_rInterpreter ) const 132 { 133 io_rInterpreter.Process_XmlFormat_BeginTag(*this); 134 } 135 136 const char * 137 Tok_XmlFormat_BeginTag::Text() const 138 { 139 static StreamStr ret(120); 140 ret.seekp(0); 141 ret << "<" 142 << eTag.Text() 143 << ">"; 144 return ret.c_str(); 145 } 146 147 void 148 Tok_XmlFormat_EndTag::Trigger( TokenInterpreter & io_rInterpreter ) const 149 { 150 io_rInterpreter.Process_XmlFormat_EndTag(*this); 151 } 152 153 const char * 154 Tok_XmlFormat_EndTag::Text() const 155 { 156 static StreamStr ret(120); 157 ret.seekp(0); 158 ret << "</" 159 << eTag.Text() 160 << ">"; 161 return ret.c_str(); 162 } 163 164 165 } // namespace dsapi 166 } // namespace csi 167 168 169