blob: f5062ad1fd9f8c2140292220fb743397e5125b20 [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.
*
*************************************************************/
#include <rtl/ustrbuf.hxx>
#include <resourcemodel/LoggedResources.hxx>
#include <resourcemodel/QNameToString.hxx>
namespace writerfilter
{
// class: LoggedResourcesHelper
LoggedResourcesHelper::LoggedResourcesHelper(TagLogger::Pointer_t pLogger, const string & sPrefix)
: mpLogger(pLogger), msPrefix(sPrefix)
{
}
LoggedResourcesHelper::~LoggedResourcesHelper()
{
}
void LoggedResourcesHelper::startElement(const string & sElement)
{
mpLogger->startElement(msPrefix + "." + sElement);
}
void LoggedResourcesHelper::endElement(const string & sElement)
{
mpLogger->endElement(msPrefix + "." + sElement);
}
void LoggedResourcesHelper::chars(const ::rtl::OUString & rChars)
{
mpLogger->chars(rChars);
}
void LoggedResourcesHelper::chars(const string & rChars)
{
mpLogger->chars(rChars);
}
void LoggedResourcesHelper::attribute(const string & rName, const string & rValue)
{
mpLogger->attribute(rName, rValue);
}
void LoggedResourcesHelper::attribute(const string & rName, sal_uInt32 nValue)
{
mpLogger->attribute(rName, nValue);
}
void LoggedResourcesHelper::setPrefix(const string & rPrefix)
{
msPrefix = rPrefix;
}
// class: LoggedStream
LoggedStream::LoggedStream(TagLogger::Pointer_t pLogger, const string & sPrefix)
: mHelper(pLogger, sPrefix)
{
}
LoggedStream::~LoggedStream()
{
}
void LoggedStream::startSectionGroup()
{
#ifdef DEBUG_LOGGING
mHelper.startElement("section");
#endif
lcl_startSectionGroup();
}
void LoggedStream::endSectionGroup()
{
lcl_endSectionGroup();
#ifdef DEBUG_LOGGING
mHelper.endElement("section");
#endif
}
void LoggedStream::startParagraphGroup()
{
#ifdef DEBUG_LOGGING
mHelper.startElement("paragraph");
#endif
lcl_startParagraphGroup();
}
void LoggedStream::endParagraphGroup()
{
lcl_endParagraphGroup();
#ifdef DEBUG_LOGGING
mHelper.endElement("paragraph");
#endif
}
void LoggedStream::startCharacterGroup()
{
#ifdef DEBUG_LOGGING
mHelper.startElement("charactergroup");
#endif
lcl_startCharacterGroup();
}
void LoggedStream::endCharacterGroup()
{
lcl_endCharacterGroup();
#ifdef DEBUG_LOGGING
mHelper.endElement("charactergroup");
#endif
}
void LoggedStream::startShape( ::com::sun::star::uno::Reference< ::com::sun::star::drawing::XShape > xShape )
{
#ifdef DEBUG_LOGGING
mHelper.startElement("shape");
#endif
lcl_startShape(xShape);
}
void LoggedStream::endShape()
{
lcl_endShape();
#ifdef DEBUG_LOGGING
mHelper.endElement("shape");
#endif
}
void LoggedStream::text(const sal_uInt8 * data, size_t len)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("text");
::rtl::OUString sText( (const sal_Char*) data, len, RTL_TEXTENCODING_MS_1252 );
mHelper.startElement("data");
mHelper.chars(sText);
mHelper.endElement("data");
#endif
lcl_text(data, len);
#ifdef DEBUG_LOGGING
mHelper.endElement("text");
#endif
}
void LoggedStream::utext(const sal_uInt8 * data, size_t len)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("utext");
mHelper.startElement("data");
::rtl::OUString sText;
::rtl::OUStringBuffer aBuffer = ::rtl::OUStringBuffer(len);
aBuffer.append( (const sal_Unicode *) data, len);
sText = aBuffer.makeStringAndClear();
mHelper.chars(sText);
mHelper.endElement("data");
#endif
lcl_utext(data, len);
#ifdef DEBUG_LOGGING
mHelper.endElement("utext");
#endif
}
void LoggedStream::props(writerfilter::Reference<Properties>::Pointer_t ref)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("props");
#endif
lcl_props(ref);
#ifdef DEBUG_LOGGING
mHelper.endElement("props");
#endif
}
void LoggedStream::table(Id name, writerfilter::Reference<Table>::Pointer_t ref)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("table");
mHelper.attribute("name", (*QNameToString::Instance())(name));
#endif
lcl_table(name, ref);
#ifdef DEBUG_LOGGING
mHelper.endElement("table");
#endif
}
void LoggedStream::substream(Id name, writerfilter::Reference<Stream>::Pointer_t ref)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("substream");
mHelper.attribute("name", (*QNameToString::Instance())(name));
#endif
lcl_substream(name, ref);
#ifdef DEBUG_LOGGING
mHelper.endElement("substream");
#endif
}
void LoggedStream::info(const string & _info)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("info");
mHelper.attribute("text", _info);
#endif
lcl_info(_info);
#ifdef DEBUG_LOGGING
mHelper.endElement("info");
#endif
}
// class LoggedProperties
LoggedProperties::LoggedProperties(TagLogger::Pointer_t pLogger, const string & sPrefix)
: mHelper(pLogger, sPrefix)
{
}
LoggedProperties::~LoggedProperties()
{
}
void LoggedProperties::attribute(Id name, Value & val)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("attribute");
mHelper.attribute("name", (*QNameToString::Instance())(name));
mHelper.attribute("value", val.toString());
mHelper.endElement("attribute");
#endif
lcl_attribute(name, val);
}
void LoggedProperties::sprm(Sprm & _sprm)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("sprm");
mHelper.attribute("name", (*QNameToString::Instance())(_sprm.getId()));
mHelper.chars(sprm.toString());
#endif
lcl_sprm(_sprm);
#ifdef DEBUG_LOGGING
mHelper.endElement("sprm");
#endif
}
LoggedTable::LoggedTable(TagLogger::Pointer_t pLogger, const string & sPrefix)
: mHelper(pLogger, sPrefix)
{
}
LoggedTable::~LoggedTable()
{
}
void LoggedTable::entry(int pos, writerfilter::Reference<Properties>::Pointer_t ref)
{
#ifdef DEBUG_LOGGING
mHelper.startElement("entry");
mHelper.attribute("pos", pos);
#endif
lcl_entry(pos, ref);
#ifdef DEBUG_LOGGING
mHelper.endElement("entry");
#endif
}
}