Coverage Report

Created: 2026-03-12 06:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libetonyek/src/lib/contexts/IWORKPropertyMapElement.cpp
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/*
3
 * This file is part of the libetonyek project.
4
 *
5
 * This Source Code Form is subject to the terms of the Mozilla Public
6
 * License, v. 2.0. If a copy of the MPL was not distributed with this
7
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
 */
9
10
#include "IWORKPropertyMapElement.h"
11
12
#include <memory>
13
14
#include "libetonyek_xml.h"
15
#include "IWORKCollector.h"
16
#include "IWORKColorElement.h"
17
#include "IWORKCoreImageFilterDescriptorElement.h"
18
#include "IWORKDictionary.h"
19
#include "IWORKDirectCollector.h"
20
#include "IWORKFillElement.h"
21
#include "IWORKFormatElement.h"
22
#include "IWORKGeometryElement.h"
23
#include "IWORKLineElement.h"
24
#include "IWORKLineEndElement.h"
25
#include "IWORKListLabelGeometriesProperty.h"
26
#include "IWORKListLabelIndentsProperty.h"
27
#include "IWORKListLabelTypesProperty.h"
28
#include "IWORKListTextIndentsProperty.h"
29
#include "IWORKMutableArrayElement.h"
30
#include "IWORKNumericPropertyContext.h"
31
#include "IWORKProperties.h"
32
#include "IWORKPropertyContext.h"
33
#include "IWORKPropertyHandler.h"
34
#include "IWORKPropertyMap.h"
35
#include "IWORKPtrPropertyContext.h"
36
#include "IWORKRefContext.h"
37
#include "IWORKStringElement.h"
38
#include "IWORKStrokeContext.h"
39
#include "IWORKStyleContainer.h"
40
#include "IWORKStyleContext.h"
41
#include "IWORKStyleRefContext.h"
42
#include "IWORKTabsElement.h"
43
#include "IWORKToken.h"
44
#include "IWORKTokenizer.h"
45
#include "IWORKValueContext.h"
46
#include "IWORKWrapElement.h"
47
#include "IWORKXMLParserState.h"
48
49
namespace libetonyek
50
{
51
52
using boost::optional;
53
54
using std::deque;
55
using std::string;
56
57
namespace
58
{
59
template<typename Property, typename Context>
60
class RedirectPropertyContext : public IWORKPropertyContextBase
61
{
62
public:
63
  RedirectPropertyContext(IWORKXMLParserState &state, IWORKPropertyMap &propMap)
64
0
    : IWORKPropertyContextBase(state, propMap)
65
0
    , m_context(new Context(state, m_value))
66
0
    , m_value()
67
0
  {
68
0
  }
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Fill, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::ParagraphStroke, libetonyek::IWORKStrokeContext>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DAreaFillProperty, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DColumnFillProperty, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DMixedColumnFillProperty, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DPieFillProperty, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DAreaFillProperty, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DColumnFillProperty, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTableCellStylePropertyFill, libetonyek::IWORKFillElement>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTStrokeProperty, libetonyek::IWORKStrokeContext>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Stroke, libetonyek::IWORKStrokeContext>::RedirectPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&)
69
70
  void attribute(int name, const char *value) override
71
0
  {
72
0
    m_context->attribute(name,value);
73
0
  }
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Fill, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::ParagraphStroke, libetonyek::IWORKStrokeContext>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DAreaFillProperty, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DColumnFillProperty, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DMixedColumnFillProperty, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DPieFillProperty, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DAreaFillProperty, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DColumnFillProperty, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTableCellStylePropertyFill, libetonyek::IWORKFillElement>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTStrokeProperty, libetonyek::IWORKStrokeContext>::attribute(int, char const*)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Stroke, libetonyek::IWORKStrokeContext>::attribute(int, char const*)
74
  void startOfElement() override
75
0
  {
76
0
    m_context->startOfElement();
77
0
  }
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Fill, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::ParagraphStroke, libetonyek::IWORKStrokeContext>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DAreaFillProperty, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DColumnFillProperty, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DMixedColumnFillProperty, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DPieFillProperty, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DAreaFillProperty, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DColumnFillProperty, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTableCellStylePropertyFill, libetonyek::IWORKFillElement>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTStrokeProperty, libetonyek::IWORKStrokeContext>::startOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Stroke, libetonyek::IWORKStrokeContext>::startOfElement()
78
  IWORKXMLContextPtr_t element(int name) override
79
0
  {
80
0
    return m_context->element(name);
81
0
  }
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Fill, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::ParagraphStroke, libetonyek::IWORKStrokeContext>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DAreaFillProperty, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DColumnFillProperty, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DMixedColumnFillProperty, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DPieFillProperty, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DAreaFillProperty, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DColumnFillProperty, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTableCellStylePropertyFill, libetonyek::IWORKFillElement>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTStrokeProperty, libetonyek::IWORKStrokeContext>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Stroke, libetonyek::IWORKStrokeContext>::element(int)
82
  void endOfElement() override
83
0
  {
84
0
    m_context->endOfElement();
85
0
    if (m_value) m_propMap.put<Property>(get(m_value));
86
0
  }
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Fill, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::ParagraphStroke, libetonyek::IWORKStrokeContext>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DAreaFillProperty, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DColumnFillProperty, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DMixedColumnFillProperty, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC2DPieFillProperty, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DAreaFillProperty, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFC3DColumnFillProperty, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTableCellStylePropertyFill, libetonyek::IWORKFillElement>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::SFTStrokeProperty, libetonyek::IWORKStrokeContext>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RedirectPropertyContext<libetonyek::property::Stroke, libetonyek::IWORKStrokeContext>::endOfElement()
87
88
private:
89
90
  std::shared_ptr<IWORKXMLContext> m_context;
91
  boost::optional<typename IWORKPropertyInfo<Property>::ValueType > m_value;
92
};
93
94
template<typename Property, typename Context, int TokenId, int RefTokenId>
95
class RefPropertyContext : public IWORKPropertyContextBase
96
{
97
  typedef typename IWORKPropertyInfo<Property>::ValueType RedirectType;
98
  typedef std::unordered_map<ID_t, RedirectType> RedirectMap_t;
99
public:
100
  RefPropertyContext(IWORKXMLParserState &state, IWORKPropertyMap &propMap, RedirectMap_t &dataMap);
101
102
protected:
103
  IWORKXMLContextPtr_t element(int name) override;
104
  void endOfElement() override;
105
106
protected:
107
  RedirectMap_t &m_dataMap;
108
  boost::optional<RedirectType> m_data;
109
  optional<ID_t> m_ref;
110
};
111
112
template<typename Property, typename Context, int TokenId, int RefTokenId>
113
RefPropertyContext<Property, Context, TokenId, RefTokenId>::RefPropertyContext(IWORKXMLParserState &state, IWORKPropertyMap &propMap, RedirectMap_t &dataMap)
114
0
  : IWORKPropertyContextBase(state, propMap)
115
0
  , m_dataMap(dataMap)
116
0
  , m_data()
117
0
  , m_ref()
118
0
{
119
0
}
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::Columns, libetonyek::(anonymous namespace)::ColumnsElement, 131198, 131199>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKColumns, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKColumns> > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::ExternalTextWrap, libetonyek::IWORKExternalTextWrapElement, 131238, 131239>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKExternalTextWrap, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKExternalTextWrap> > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::LayoutMargins, libetonyek::(anonymous namespace)::PaddingElement, 131389, 131390>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKPadding, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKPadding> > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::LineSpacing, libetonyek::(anonymous namespace)::LinespacingElement, 131346, 131347>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKLineSpacing, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKLineSpacing> > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::Padding, libetonyek::(anonymous namespace)::PaddingElement, 131389, 131390>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKPadding, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKPadding> > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyNumberFormat, libetonyek::IWORKNumberFormatElement, 131378, 131379>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKNumberFormat, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKNumberFormat> > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyDateTimeFormat, libetonyek::IWORKDateTimeFormatElement, 131220, 131221>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKDateTimeFormat, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKDateTimeFormat> > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyDurationFormat, libetonyek::IWORKDurationFormatElement, 131229, 131230>::RefPropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, libetonyek::IWORKDurationFormat, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, libetonyek::IWORKDurationFormat> > >&)
120
121
template<typename Property, typename Context, int TokenId, int RefTokenId>
122
IWORKXMLContextPtr_t RefPropertyContext<Property, Context, TokenId, RefTokenId>::element(const int name)
123
0
{
124
0
  switch (name)
125
0
  {
126
0
  case TokenId :
127
0
    return std::make_shared<Context>(getState(), m_data);
128
0
  case RefTokenId :
129
0
    return std::make_shared<IWORKRefContext>(getState(), m_ref);
130
0
  case IWORKToken::NS_URI_SF | IWORKToken::null:
131
0
    return IWORKXMLContextPtr_t();
132
0
  default:
133
0
    break;
134
0
  }
135
0
  ETONYEK_DEBUG_MSG(("RefPropertyContext<...>::element: unknown element %d\n", name));
136
0
  return IWORKXMLContextPtr_t();
137
0
}
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::Columns, libetonyek::(anonymous namespace)::ColumnsElement, 131198, 131199>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::ExternalTextWrap, libetonyek::IWORKExternalTextWrapElement, 131238, 131239>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::LayoutMargins, libetonyek::(anonymous namespace)::PaddingElement, 131389, 131390>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::LineSpacing, libetonyek::(anonymous namespace)::LinespacingElement, 131346, 131347>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::Padding, libetonyek::(anonymous namespace)::PaddingElement, 131389, 131390>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyNumberFormat, libetonyek::IWORKNumberFormatElement, 131378, 131379>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyDateTimeFormat, libetonyek::IWORKDateTimeFormatElement, 131220, 131221>::element(int)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyDurationFormat, libetonyek::IWORKDurationFormatElement, 131229, 131230>::element(int)
138
139
template<typename Property, typename Context, int TokenId, int RefTokenId>
140
void RefPropertyContext<Property, Context, TokenId, RefTokenId>::endOfElement()
141
0
{
142
0
  if (m_ref)
143
0
  {
144
0
    typename RedirectMap_t::const_iterator it = m_dataMap.find(get(m_ref));
145
0
    if (m_dataMap.end() != it)
146
0
      m_propMap.put<Property>(it->second);
147
0
    else if (!get(m_ref).empty())
148
0
    {
149
0
      ETONYEK_DEBUG_MSG(("RefPropertyContext<...>::endOfElement: unknown data %s\n", get(m_ref).c_str()));
150
0
    }
151
0
  }
152
0
  else if (m_data)
153
0
  {
154
0
    m_propMap.put<Property>(get(m_data));
155
0
  }
156
0
}
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::Columns, libetonyek::(anonymous namespace)::ColumnsElement, 131198, 131199>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::ExternalTextWrap, libetonyek::IWORKExternalTextWrapElement, 131238, 131239>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::LayoutMargins, libetonyek::(anonymous namespace)::PaddingElement, 131389, 131390>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::LineSpacing, libetonyek::(anonymous namespace)::LinespacingElement, 131346, 131347>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::Padding, libetonyek::(anonymous namespace)::PaddingElement, 131389, 131390>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyNumberFormat, libetonyek::IWORKNumberFormatElement, 131378, 131379>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyDateTimeFormat, libetonyek::IWORKDateTimeFormatElement, 131220, 131221>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::RefPropertyContext<libetonyek::property::SFTCellStylePropertyDurationFormat, libetonyek::IWORKDurationFormatElement, 131229, 131230>::endOfElement()
157
158
}
159
160
namespace
161
{
162
template<typename Property, int TokenId, int RefTokenId, int TokenId2=0, int RefTokenId2=0>
163
class StylePropertyContext : public IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>
164
{
165
public:
166
  StylePropertyContext(IWORKXMLParserState &state, IWORKPropertyMap &propMap, IWORKStyleMap_t &styleMap);
167
  StylePropertyContext(IWORKXMLParserState &state, IWORKPropertyMap &propMap, IWORKStyleMap_t &styleMap, IWORKStyleMap_t &styleMap2);
168
169
private:
170
  void endOfElement() override;
171
172
  IWORKStylePtr_t m_style;
173
  IWORKPropertyMap &m_propertyMap;
174
};
175
176
template<typename Property, int TokenId, int RefTokenId, int TokenId2, int RefTokenId2>
177
StylePropertyContext<Property, TokenId, RefTokenId, TokenId2, RefTokenId2>::StylePropertyContext(IWORKXMLParserState &state, IWORKPropertyMap &propMap, IWORKStyleMap_t &styleMap)
178
0
  : IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>(state, m_style, styleMap)
179
0
  , m_style()
180
0
  , m_propertyMap(propMap)
181
0
{
182
0
}
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::FollowingLayoutStyle, 131338, 131339, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::FollowingParagraphStyle, 131401, 131402, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::LabelCharacterStyle, 131181, 131182, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::LayoutParagraphStyle, 131401, 131402, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::LayoutStyle, 131338, 131339, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::ListStyle, 131358, 131359, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFSeries, 131188, 131189, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTableStylePropertyCellStyle, 131474, 131475, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTableStylePropertyHeaderColumnCellStyle, 131474, 131475, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTableStylePropertyHeaderRowCellStyle, 131474, 131475, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTCellStylePropertyLayoutStyle, 131338, 131339, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTCellStylePropertyParagraphStyle, 131401, 131402, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultBodyCellStyleProperty, 131176, 131177, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultBodyVectorStyleProperty, 131537, 131538, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultBorderVectorStyleProperty, 131537, 131538, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultFooterBodyVectorStyleProperty, 131537, 131538, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultFooterRowCellStyleProperty, 131176, 131177, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultFooterSeparatorVectorStyleProperty, 131537, 131538, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultGroupingLevelVectorStyleProperty, 131537, 131538, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultGroupingRowCellStyleProperty, 131176, 131177, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderBodyVectorStyleProperty, 131537, 131538, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderColumnCellStyleProperty, 131176, 131177, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderRowCellStyleProperty, 131176, 131177, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderSeparatorVectorStyleProperty, 131537, 131538, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTTableNameStylePropertyLayoutStyle, 131338, 131339, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTTableNameStylePropertyParagraphStyle, 131401, 131402, 0, 0>::StylePropertyContext(libetonyek::IWORKXMLParserState&, libetonyek::IWORKPropertyMap&, std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::shared_ptr<libetonyek::IWORKStyle>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::shared_ptr<libetonyek::IWORKStyle> > > >&)
183
184
template<typename Property, int TokenId, int RefTokenId, int TokenId2, int RefTokenId2>
185
StylePropertyContext<Property, TokenId, RefTokenId, TokenId2, RefTokenId2>::StylePropertyContext(IWORKXMLParserState &state, IWORKPropertyMap &propMap, IWORKStyleMap_t &styleMap, IWORKStyleMap_t &styleMap2)
186
0
  : IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>(state, m_style, styleMap, styleMap2)
187
0
  , m_style()
188
0
  , m_propertyMap(propMap)
189
0
{
190
0
}
191
192
template<typename Property, int TokenId, int RefTokenId, int TokenId2, int RefTokenId2>
193
void StylePropertyContext<Property, TokenId, RefTokenId, TokenId2, RefTokenId2>::endOfElement()
194
0
{
195
0
  IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>::endOfElement();
196
0
  m_propertyMap.template put<Property>(m_style);
197
0
}
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::FollowingLayoutStyle, 131338, 131339, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::FollowingParagraphStyle, 131401, 131402, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::LabelCharacterStyle, 131181, 131182, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::LayoutParagraphStyle, 131401, 131402, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::LayoutStyle, 131338, 131339, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::ListStyle, 131358, 131359, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFSeries, 131188, 131189, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTableStylePropertyCellStyle, 131474, 131475, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTableStylePropertyHeaderColumnCellStyle, 131474, 131475, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTableStylePropertyHeaderRowCellStyle, 131474, 131475, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTCellStylePropertyLayoutStyle, 131338, 131339, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTCellStylePropertyParagraphStyle, 131401, 131402, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultBodyCellStyleProperty, 131176, 131177, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultBodyVectorStyleProperty, 131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultBorderVectorStyleProperty, 131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultFooterBodyVectorStyleProperty, 131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultFooterRowCellStyleProperty, 131176, 131177, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultFooterSeparatorVectorStyleProperty, 131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultGroupingLevelVectorStyleProperty, 131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultGroupingRowCellStyleProperty, 131176, 131177, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderBodyVectorStyleProperty, 131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderColumnCellStyleProperty, 131176, 131177, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderRowCellStyleProperty, 131176, 131177, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTDefaultHeaderSeparatorVectorStyleProperty, 131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTTableNameStylePropertyLayoutStyle, 131338, 131339, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::SFTTableNameStylePropertyParagraphStyle, 131401, 131402, 0, 0>::endOfElement()
Unexecuted instantiation: IWORKPropertyMapElement.cpp:libetonyek::(anonymous namespace)::StylePropertyContext<libetonyek::property::TocStyle, 131525, 131526, 131401, 131402>::endOfElement()
198
199
}
200
201
namespace
202
{
203
204
class TabsProperty : public IWORKPropertyContextBase
205
{
206
public:
207
  TabsProperty(IWORKXMLParserState &state, IWORKPropertyMap &propMap);
208
209
private:
210
  IWORKXMLContextPtr_t element(int name) override;
211
  void endOfElement() override;
212
213
private:
214
  IWORKTabStops_t m_tabs;
215
  optional<ID_t> m_ref;
216
};
217
218
TabsProperty::TabsProperty(IWORKXMLParserState &state, IWORKPropertyMap &propMap)
219
0
  : IWORKPropertyContextBase(state, propMap)
220
0
  , m_tabs()
221
0
  , m_ref()
222
0
{
223
0
}
224
225
IWORKXMLContextPtr_t TabsProperty::element(const int name)
226
0
{
227
0
  m_default = false;
228
229
0
  switch (name)
230
0
  {
231
0
  case IWORKToken::NS_URI_SF | IWORKToken::tabs :
232
0
    return std::make_shared<IWORKTabsElement>(getState(), m_tabs);
233
0
  case IWORKToken::NS_URI_SF | IWORKToken::tabs_ref :
234
0
    return std::make_shared<IWORKRefContext>(getState(), m_ref);
235
0
  default:
236
0
    ETONYEK_DEBUG_MSG(("TabsProperty::element[IWORKPropertyMapElement.cpp]: find unknown element\n"));
237
0
  }
238
239
0
  return IWORKXMLContextPtr_t();
240
0
}
241
242
void TabsProperty::endOfElement()
243
0
{
244
0
  if (!m_tabs.empty())
245
0
  {
246
0
    m_propMap.put<property::Tabs>(m_tabs);
247
0
  }
248
0
  else if (m_ref)
249
0
  {
250
0
    IWORKTabStopsMap_t::const_iterator it = getState().getDictionary().m_tabs.find(get(m_ref));
251
0
    if (getState().getDictionary().m_tabs.end() != it)
252
0
      m_propMap.put<property::Tabs>(it->second);
253
0
    else if (!get(m_ref).empty())
254
0
    {
255
0
      ETONYEK_DEBUG_MSG(("TabsProperty::endOfElement[IWORKPropertyMapElement.cpp]: unknown tabs %s\n", get(m_ref).c_str()));
256
0
    }
257
0
  }
258
0
  else if (m_default)
259
0
  {
260
0
    m_propMap.clear<property::Tabs>();
261
0
  }
262
0
}
263
264
}
265
266
namespace
267
{
268
269
class LinespacingElement : public IWORKXMLEmptyContextBase
270
{
271
public:
272
  LinespacingElement(IWORKXMLParserState &state, optional<IWORKLineSpacing> &value);
273
274
private:
275
  void attribute(int name, const char *value) override;
276
  void endOfElement() override;
277
278
private:
279
  optional<IWORKLineSpacing> &m_value;
280
  optional<double> m_amount;
281
  optional<bool> m_relative;
282
};
283
284
LinespacingElement::LinespacingElement(IWORKXMLParserState &state, optional<IWORKLineSpacing> &value)
285
0
  : IWORKXMLEmptyContextBase(state)
286
0
  , m_value(value)
287
0
  , m_amount()
288
0
  , m_relative()
289
0
{
290
0
}
291
292
void LinespacingElement::attribute(const int name, const char *const value)
293
0
{
294
0
  switch (name)
295
0
  {
296
0
  case IWORKToken::NS_URI_SF | IWORKToken::amt :
297
0
    m_amount = double_cast(value);
298
0
    break;
299
0
  case IWORKToken::NS_URI_SF | IWORKToken::mode :
300
0
    m_relative = IWORKToken::relative == getToken(value);
301
0
    break;
302
0
  case IWORKToken::NS_URI_SFA | IWORKToken::ID :
303
0
    IWORKXMLEmptyContextBase::attribute(name, value);
304
0
    break;
305
0
  default:
306
0
    ETONYEK_DEBUG_MSG(("Linespacing::attribute[IWORKPropertyMapElement.cpp]: find unknown attribute\n"));
307
0
  }
308
0
}
309
310
void LinespacingElement::endOfElement()
311
0
{
312
0
  if (m_amount)
313
0
  {
314
0
    m_value = IWORKLineSpacing(get(m_amount), get_optional_value_or(m_relative, false));
315
0
    if (getId())
316
0
      getState().getDictionary().m_lineSpacings.insert(IWORKLineSpacingMap_t::value_type(get(getId()),get(m_value)));
317
0
  }
318
0
}
319
320
}
321
322
namespace
323
{
324
325
class ColumnElement : public IWORKXMLEmptyContextBase
326
{
327
public:
328
  ColumnElement(IWORKXMLParserState &state, IWORKColumns::Column &value);
329
330
private:
331
  void attribute(int name, const char *value) override;
332
333
private:
334
  IWORKColumns::Column &m_value;
335
};
336
337
ColumnElement::ColumnElement(IWORKXMLParserState &state, IWORKColumns::Column &value)
338
0
  : IWORKXMLEmptyContextBase(state)
339
0
  , m_value(value)
340
0
{
341
0
}
342
343
void ColumnElement::attribute(const int name, const char *const value)
344
0
{
345
0
  switch (name)
346
0
  {
347
0
  case IWORKToken::NS_URI_SF | IWORKToken::spacing :
348
0
    m_value.m_spacing = get_optional_value_or(try_double_cast(value), 0);
349
0
    break;
350
0
  case IWORKToken::NS_URI_SF | IWORKToken::width :
351
0
    m_value.m_width = get_optional_value_or(try_double_cast(value), 0);
352
0
    break;
353
0
  case IWORKToken::NS_URI_SF | IWORKToken::index : // column index, probably save to ignore
354
0
    break;
355
0
  default:
356
0
    ETONYEK_DEBUG_MSG(("ColumnElement::attribute[IWORKPropertyMapElement.cpp]: find unknown attribute\n"));
357
0
    break;
358
0
  }
359
0
}
360
}
361
362
namespace
363
{
364
365
class ColumnsElement : public IWORKXMLElementContextBase
366
{
367
public:
368
  ColumnsElement(IWORKXMLParserState &state, optional<IWORKColumns> &value);
369
370
private:
371
  void attribute(int name, const char *value) override;
372
  IWORKXMLContextPtr_t element(int name) override;
373
  void endOfElement() override;
374
375
private:
376
  optional<IWORKColumns> &m_value;
377
};
378
379
ColumnsElement::ColumnsElement(IWORKXMLParserState &state, optional<IWORKColumns> &value)
380
0
  : IWORKXMLElementContextBase(state)
381
0
  , m_value(value)
382
0
{
383
0
  m_value=IWORKColumns();
384
0
}
385
386
void ColumnsElement::attribute(const int name, const char *const value)
387
0
{
388
0
  switch (name)
389
0
  {
390
0
  case IWORKToken::NS_URI_SF | IWORKToken::equal_columns :
391
0
    get(m_value).m_equal = get_optional_value_or(try_bool_cast(value), false);
392
0
    break;
393
0
  case IWORKToken::NS_URI_SFA | IWORKToken::ID :
394
0
    IWORKXMLElementContextBase::attribute(name, value);
395
0
    break;
396
0
  default:
397
0
    ETONYEK_DEBUG_MSG(("ColumnsElement::attribute[IWORKPropertyMapElement.cpp]: find unknown attribute\n"));
398
0
    break;
399
0
  }
400
0
}
401
402
IWORKXMLContextPtr_t ColumnsElement::element(const int name)
403
0
{
404
0
  switch (name)
405
0
  {
406
0
  case IWORKToken::NS_URI_SF | IWORKToken::column :
407
0
    get(m_value).m_columns.push_back(IWORKColumns::Column());
408
0
    return std::make_shared<ColumnElement>(getState(), get(m_value).m_columns.back());
409
0
  default:
410
0
    ETONYEK_DEBUG_MSG(("ColumnsElement::element[IWORKPropertyMapElement.cpp]: find unknown element\n"));
411
0
  }
412
0
  return IWORKXMLContextPtr_t();
413
0
}
414
415
void ColumnsElement::endOfElement()
416
0
{
417
0
  if (getId())
418
0
    getState().getDictionary().m_columnSets.insert(IWORKColumnsMap_t::value_type(get(getId()),get(m_value)));
419
0
}
420
421
}
422
423
namespace
424
{
425
426
class PaddingElement : public IWORKXMLEmptyContextBase
427
{
428
public:
429
  PaddingElement(IWORKXMLParserState &state, optional<IWORKPadding> &value);
430
431
private:
432
  void attribute(int name, const char *value) override;
433
  void endOfElement() override;
434
435
private:
436
  optional<IWORKPadding> &m_value;
437
};
438
439
PaddingElement::PaddingElement(IWORKXMLParserState &state, optional<IWORKPadding> &value)
440
0
  : IWORKXMLEmptyContextBase(state)
441
0
  , m_value(value)
442
0
{
443
0
  m_value=IWORKPadding();
444
0
}
445
446
void PaddingElement::attribute(const int name, const char *const value)
447
0
{
448
0
  switch (name)
449
0
  {
450
0
  case IWORKToken::NS_URI_SF | IWORKToken::bottom :
451
0
    get(m_value).m_bottom = try_double_cast(value);
452
0
    break;
453
0
  case IWORKToken::NS_URI_SF | IWORKToken::left :
454
0
    get(m_value).m_left = try_double_cast(value);
455
0
    break;
456
0
  case IWORKToken::NS_URI_SF | IWORKToken::right :
457
0
    get(m_value).m_right = try_double_cast(value);
458
0
    break;
459
0
  case IWORKToken::NS_URI_SF | IWORKToken::top :
460
0
    get(m_value).m_top = try_double_cast(value);
461
0
    break;
462
0
  case IWORKToken::NS_URI_SFA | IWORKToken::ID :
463
0
    IWORKXMLEmptyContextBase::attribute(name, value);
464
0
    break;
465
0
  default:
466
0
    ETONYEK_DEBUG_MSG(("PaddingElement::attribute[IWORKPropertyMapElement.cpp]: find unknown attribute\n"));
467
0
    break;
468
0
  }
469
0
}
470
471
void PaddingElement::endOfElement()
472
0
{
473
0
  if (getId())
474
0
    getState().getDictionary().m_paddings.insert(IWORKPaddingMap_t::value_type(get(getId()),get(m_value)));
475
0
}
476
477
}
478
479
namespace
480
{
481
482
class LanguageElement : public IWORKPropertyContextBase
483
{
484
public:
485
  LanguageElement(IWORKXMLParserState &state, IWORKPropertyMap &propMap);
486
487
private:
488
  IWORKXMLContextPtr_t element(int name) override;
489
  void endOfElement() override;
490
491
private:
492
  optional<string> m_lang;
493
};
494
495
LanguageElement::LanguageElement(IWORKXMLParserState &state, IWORKPropertyMap &propMap)
496
0
  : IWORKPropertyContextBase(state, propMap)
497
0
  , m_lang()
498
0
{
499
0
}
500
501
IWORKXMLContextPtr_t LanguageElement::element(const int name)
502
0
{
503
0
  switch (name)
504
0
  {
505
0
  case IWORKToken::NS_URI_SF | IWORKToken::string:
506
0
    return std::make_shared<IWORKStringElement>(getState(), m_lang);
507
0
  case IWORKToken::NS_URI_SF | IWORKToken::null:
508
0
    break;
509
0
  default:
510
0
    ETONYEK_DEBUG_MSG(("LanguageElement::element[IWORKPropertyMapElement.cpp]: find unknown element\n"));
511
0
    break;
512
0
  }
513
0
  return IWORKXMLContextPtr_t();
514
0
}
515
516
void LanguageElement::endOfElement()
517
0
{
518
0
  if (m_lang)
519
0
  {
520
0
    if (IWORKToken::__multilingual != getToken(get(m_lang).c_str()))
521
0
    {
522
0
      const string &tag = getState().m_langManager.addLocale(get(m_lang));
523
0
      if (tag.empty())
524
0
        m_propMap.clear<property::Language>();
525
0
      else
526
0
        m_propMap.put<property::Language>(tag);
527
0
    }
528
0
  }
529
0
  else if (m_default)
530
0
  {
531
0
    m_propMap.clear<property::Language>();
532
0
  }
533
0
}
534
535
}
536
537
namespace
538
{
539
/* a date time format is either store as a real date-format or a simple string.
540
541
    note: This is probably similar for duration */
542
template <typename Property>
543
class PropertyDateTimeFormatElement : public RefPropertyContext<Property, IWORKDateTimeFormatElement, IWORKToken::NS_URI_SF | IWORKToken::date_format, IWORKToken::NS_URI_SF | IWORKToken::date_format_ref>
544
{
545
  typedef RefPropertyContext<Property, IWORKDateTimeFormatElement, IWORKToken::NS_URI_SF | IWORKToken::date_format, IWORKToken::NS_URI_SF | IWORKToken::date_format_ref> Parent;
546
  typedef std::unordered_map<ID_t, IWORKDateTimeFormat> RedirectMap_t;
547
548
public:
549
  PropertyDateTimeFormatElement(IWORKXMLParserState &state, IWORKPropertyMap &propMap, RedirectMap_t &dataMap)
550
0
    : Parent(state, propMap, dataMap)
551
0
    , m_string()
552
0
  {
553
0
  }
554
private:
555
  IWORKXMLContextPtr_t element(int name) override
556
0
  {
557
0
    if (name==(IWORKToken::NS_URI_SF | IWORKToken::string))
558
0
      return std::make_shared<IWORKStringElement>(Parent::getState(), m_string);
559
0
    else
560
0
      return Parent::element(name);
561
0
  }
562
  void endOfElement() override
563
0
  {
564
0
    if (m_string)
565
0
    {
566
0
      m_data=IWORKDateTimeFormat();
567
0
      get(m_data).m_format=get(m_string);
568
0
    }
569
0
    Parent::endOfElement();
570
0
  }
571
  using Parent::m_data;
572
  optional<std::string> m_string;
573
};
574
}
575
576
namespace
577
{
578
579
class OverridesElement : public IWORKXMLElementContextBase
580
{
581
public:
582
  OverridesElement(IWORKXMLParserState &state, IWORKShadow &value);
583
584
private:
585
  typedef IWORKValueContext<double, IWORKNumberElement<double>, IWORKToken::NS_URI_SF | IWORKToken::number> NumberProperty;
586
  typedef IWORKValueContext<IWORKColor, IWORKColorElement, IWORKToken::NS_URI_SF | IWORKToken::color> ColorProperty;
587
588
private:
589
  void attribute(int name, const char *value) override;
590
  IWORKXMLContextPtr_t element(int name) override;
591
  void endOfElement() override;
592
593
private:
594
  IWORKShadow &m_value;
595
};
596
597
OverridesElement::OverridesElement(IWORKXMLParserState &state, IWORKShadow &value)
598
0
  : IWORKXMLElementContextBase(state)
599
0
  , m_value(value)
600
0
{
601
0
}
602
603
void OverridesElement::attribute(int name, const char *value)
604
0
{
605
0
  switch (name)
606
0
  {
607
0
  case IWORKToken::NS_URI_SFA | IWORKToken::ID :
608
0
    IWORKXMLElementContextBase::attribute(name, value);
609
0
    break;
610
0
  default:
611
0
    ETONYEK_DEBUG_MSG(("OverridesElement::attribute[IWORKPropertyMapElement.cpp]: find unknown attribute\n"));
612
0
    break;
613
0
  }
614
0
}
615
616
IWORKXMLContextPtr_t OverridesElement::element(const int name)
617
0
{
618
0
  switch (name)
619
0
  {
620
0
  case IWORKToken::NS_URI_SF | IWORKToken::inputAngle :
621
0
    return std::make_shared<NumberProperty>(getState(), m_value.m_angle);
622
0
  case IWORKToken::NS_URI_SF | IWORKToken::inputColor :
623
0
    return std::make_shared<ColorProperty>(getState(), m_value.m_color);
624
0
  case IWORKToken::NS_URI_SF | IWORKToken::inputDistance :
625
0
    return std::make_shared<NumberProperty>(getState(), m_value.m_offset);
626
0
  case IWORKToken::NS_URI_SF | IWORKToken::inputGlossiness :
627
0
    return std::make_shared<NumberProperty>(getState(), m_value.m_glossiness);
628
0
  case IWORKToken::NS_URI_SF | IWORKToken::inputOpacity :
629
0
    return std::make_shared<NumberProperty>(getState(), m_value.m_opacity);
630
0
  case IWORKToken::NS_URI_SF | IWORKToken::inputRadius :
631
0
    return std::make_shared<NumberProperty>(getState(), m_value.m_radius);
632
0
  default:
633
0
    ETONYEK_DEBUG_MSG(("OverridesElement::element[IWORKPropertyMapElement.cpp]: find unknown element\n"));
634
0
  }
635
0
  return IWORKXMLContextPtr_t();
636
0
}
637
638
void OverridesElement::endOfElement()
639
0
{
640
0
  if (getId())
641
0
    getState().getDictionary().m_shadows.insert(IWORKShadowMap_t::value_type(get(getId()),m_value));
642
0
}
643
}
644
645
namespace
646
{
647
648
class CoreImageFilterInfoElement : public IWORKXMLElementContextBase
649
{
650
public:
651
  CoreImageFilterInfoElement(IWORKXMLParserState &state, deque<IWORKShadow> &elements);
652
653
private:
654
  void attribute(int name, const char *value) override;
655
  IWORKXMLContextPtr_t element(int name) override;
656
  void endOfElement() override;
657
658
private:
659
  deque<IWORKShadow> &m_elements;
660
  bool m_isShadow;
661
  optional<ID_t> m_descriptorRef;
662
  optional<ID_t> m_overridesRef;
663
  IWORKShadow m_value;
664
};
665
666
CoreImageFilterInfoElement::CoreImageFilterInfoElement(IWORKXMLParserState &state, deque<IWORKShadow> &elements)
667
0
  : IWORKXMLElementContextBase(state)
668
0
  , m_elements(elements)
669
0
  , m_isShadow(false)
670
0
  , m_descriptorRef()
671
0
  , m_overridesRef()
672
0
  , m_value()
673
0
{
674
0
}
675
676
void CoreImageFilterInfoElement::attribute(int name, const char *value)
677
0
{
678
0
  switch (name)
679
0
  {
680
0
  case IWORKToken::NS_URI_SFA | IWORKToken::ID :
681
0
    IWORKXMLElementContextBase::attribute(name, value);
682
0
    break;
683
0
  case IWORKToken::filter_visibility: // USEME? a bool
684
0
    break;
685
0
  default:
686
0
    ETONYEK_DEBUG_MSG(("CoreImageFilterInfoElement::attribute[IWORKPropertyMapElement.cpp]: find unknown attribute\n"));
687
0
    break;
688
0
  }
689
0
}
690
691
IWORKXMLContextPtr_t CoreImageFilterInfoElement::element(const int name)
692
0
{
693
0
  switch (name)
694
0
  {
695
0
  case IWORKToken::NS_URI_SF | IWORKToken::core_image_filter_descriptor :
696
0
    return std::make_shared<IWORKCoreImageFilterDescriptorElement>(getState(), m_isShadow);
697
0
  case IWORKToken::NS_URI_SF | IWORKToken::core_image_filter_descriptor_ref :
698
0
    return std::make_shared<IWORKRefContext>(getState(), m_descriptorRef);
699
0
  case IWORKToken::NS_URI_SF | IWORKToken::overrides :
700
0
    return std::make_shared<OverridesElement>(getState(), m_value);
701
0
  case IWORKToken::NS_URI_SF | IWORKToken::overrides_ref :
702
0
    return std::make_shared<IWORKRefContext>(getState(), m_overridesRef);
703
0
  default:
704
0
    ETONYEK_DEBUG_MSG(("CoreImageFilterInfoElement::element[IWORKPropertyMapElement.cpp]: find unknown element\n"));
705
0
  }
706
0
  return IWORKXMLContextPtr_t();
707
0
}
708
709
void CoreImageFilterInfoElement::endOfElement()
710
0
{
711
0
  if (m_descriptorRef)
712
0
  {
713
0
    const IWORKFilterDescriptorMap_t::const_iterator it = getState().getDictionary().m_filterDescriptors.find(get(m_descriptorRef));
714
0
    if (it != getState().getDictionary().m_filterDescriptors.end())
715
0
      m_isShadow = it->second.m_isShadow;
716
0
    else if (!get(m_descriptorRef).empty())
717
0
    {
718
0
      ETONYEK_DEBUG_MSG(("CoreImageFilterInfoElement::endOfElement[IWORKPropertyMapElement.cpp]: unknown descriptor %s\n", get(m_descriptorRef).c_str()));
719
0
    }
720
0
  }
721
0
  if (m_overridesRef)
722
0
  {
723
0
    const IWORKShadowMap_t::const_iterator it = getState().getDictionary().m_shadows.find(get(m_overridesRef));
724
0
    if (it != getState().getDictionary().m_shadows.end())
725
0
      m_value = it->second;
726
0
    else if (!get(m_overridesRef).empty())
727
0
    {
728
0
      ETONYEK_DEBUG_MSG(("CoreImageFilterInfoElement::endOfElement[IWORKPropertyMapElement.cpp]: unknown overrides %s\n", get(m_overridesRef).c_str()));
729
0
    }
730
0
  }
731
0
  if (m_isShadow)
732
0
  {
733
0
    m_elements.push_back(m_value);
734
0
    if (getId())
735
0
      getState().getDictionary().m_coreImageFilterInfos.insert(IWORKShadowMap_t::value_type(get(getId()),m_value));
736
0
  }
737
0
}
738
739
}
740
741
namespace
742
{
743
744
class FiltersElement : public IWORKXMLElementContextBase
745
{
746
  typedef IWORKMutableArrayElement<IWORKShadow, CoreImageFilterInfoElement, IWORKDirectCollector, IWORKToken::NS_URI_SF | IWORKToken::core_image_filter_info, IWORKToken::NS_URI_SF | IWORKToken::core_image_filter_info_ref> MutableArrayElement;
747
748
public:
749
  FiltersElement(IWORKXMLParserState &state, IWORKPropertyMap &propMap);
750
751
private:
752
  IWORKXMLContextPtr_t element(int name) override;
753
  void endOfElement() override;
754
755
private:
756
  IWORKPropertyMap &m_propMap;
757
  deque<IWORKShadow> m_elements;
758
  optional<ID_t> m_ref;
759
  IWORKStylePtr_t m_layout;
760
};
761
762
FiltersElement::FiltersElement(IWORKXMLParserState &state, IWORKPropertyMap &propMap)
763
0
  : IWORKXMLElementContextBase(state)
764
0
  , m_propMap(propMap)
765
0
  , m_elements()
766
0
  , m_ref()
767
0
  , m_layout()
768
0
{
769
0
}
770
771
typedef IWORKStyleContainer<IWORKToken::NS_URI_SF | IWORKToken::layoutstyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle_ref> FiltersLayoutStyle;
772
773
IWORKXMLContextPtr_t FiltersElement::element(const int name)
774
0
{
775
0
  switch (name)
776
0
  {
777
0
  case IWORKToken::NS_URI_SF | IWORKToken::mutable_array:
778
0
  case IWORKToken::NS_URI_SF | IWORKToken::array:
779
0
    return std::make_shared<MutableArrayElement>(getState(), getState().getDictionary().m_filters, getState().getDictionary().m_coreImageFilterInfos, m_elements);
780
0
  case IWORKToken::NS_URI_SF | IWORKToken::mutable_array_ref:
781
0
  case IWORKToken::NS_URI_SF | IWORKToken::array_ref:
782
0
    return std::make_shared<IWORKRefContext>(getState(), m_ref);
783
0
  case IWORKToken::NS_URI_SF | IWORKToken::layoutStyle: // useme
784
0
    return std::make_shared<FiltersLayoutStyle>(getState(), m_layout, getState().getDictionary().m_layoutStyles);
785
0
  case IWORKToken::NS_URI_SF | IWORKToken::null:
786
0
    break;
787
0
  default:
788
0
    ETONYEK_DEBUG_MSG(("FiltersElement::element[FiltersElements.cpp]: find unknown element\n"));
789
0
    break;
790
0
  }
791
0
  return IWORKXMLContextPtr_t();
792
0
}
793
794
void FiltersElement::endOfElement()
795
0
{
796
0
  if (m_ref)
797
0
  {
798
0
    const IWORKFiltersMap_t::const_iterator it = getState().getDictionary().m_filters.find(get(m_ref));
799
0
    if (it != getState().getDictionary().m_filters.end())
800
0
      m_elements = it->second;
801
0
    else if (!get(m_ref).empty())
802
0
    {
803
0
      ETONYEK_DEBUG_MSG(("FiltersElement::endOfElement[IWORKPropertyMapElement.cpp]: unknown overrides %s\n", get(m_ref).c_str()));
804
0
    }
805
0
  }
806
0
  if (m_elements.empty())
807
0
    m_propMap.clear<property::Shadow>();
808
0
  else
809
0
    m_propMap.put<property::Shadow>(m_elements.back());
810
0
}
811
812
}
813
814
namespace
815
{
816
817
typedef RefPropertyContext<property::Columns, ColumnsElement, IWORKToken::NS_URI_SF | IWORKToken::columns, IWORKToken::NS_URI_SF | IWORKToken::columns_ref> ColumnsPropertyElement;
818
typedef RefPropertyContext<property::ExternalTextWrap, IWORKExternalTextWrapElement, IWORKToken::NS_URI_SF | IWORKToken::external_text_wrap, IWORKToken::NS_URI_SF | IWORKToken::external_text_wrap_ref> ExternalTextWrapElement;
819
typedef RedirectPropertyContext<property::Fill, IWORKFillElement> FillPropertyElement;
820
typedef IWORKPropertyContext<property::FontColor, IWORKColorElement, IWORKToken::NS_URI_SF | IWORKToken::color> FontColorElement;
821
typedef IWORKPropertyContext<property::FontName, IWORKStringElement, IWORKToken::NS_URI_SF | IWORKToken::string> FontNameElement;
822
typedef IWORKPropertyContext<property::HeadLineEnd, IWORKLineEndElement, IWORKToken::NS_URI_SF | IWORKToken::line_end> HeadLineEndElement;
823
typedef RefPropertyContext<property::LayoutMargins, PaddingElement, IWORKToken::NS_URI_SF | IWORKToken::padding, IWORKToken::NS_URI_SF | IWORKToken::padding_ref> LayoutMarginsElement;
824
typedef RefPropertyContext<property::LineSpacing, LinespacingElement, IWORKToken::NS_URI_SF | IWORKToken::linespacing, IWORKToken::NS_URI_SF | IWORKToken::linespacing_ref> LineSpacingElement;
825
typedef RefPropertyContext<property::Padding, PaddingElement, IWORKToken::NS_URI_SF | IWORKToken::padding, IWORKToken::NS_URI_SF | IWORKToken::padding_ref> PaddingContext;
826
typedef IWORKPropertyContext<property::ParagraphFill, IWORKColorElement, IWORKToken::NS_URI_SF | IWORKToken::color> ParagraphFillElement;
827
typedef RedirectPropertyContext<property::ParagraphStroke, IWORKStrokeContext> ParagraphStrokeElement;
828
typedef IWORKPropertyContext<property::TailLineEnd, IWORKLineEndElement, IWORKToken::NS_URI_SF | IWORKToken::line_end> TailLineEndElement;
829
typedef PropertyDateTimeFormatElement<property::SFTCellStylePropertyDateTimeFormat> SFTCellStylePropertyDateTimeFormatElement;
830
typedef RefPropertyContext<property::SFTCellStylePropertyDurationFormat, IWORKDurationFormatElement, IWORKToken::NS_URI_SF | IWORKToken::duration_format, IWORKToken::NS_URI_SF | IWORKToken::duration_format_ref> SFTCellStylePropertyDurationFormatElement;
831
typedef RefPropertyContext<property::SFTCellStylePropertyNumberFormat, IWORKNumberFormatElement, IWORKToken::NS_URI_SF | IWORKToken::number_format, IWORKToken::NS_URI_SF | IWORKToken::number_format_ref> SFTCellStylePropertyNumberFormatElement;
832
typedef RedirectPropertyContext<property::SFTStrokeProperty, IWORKStrokeContext> SFTStrokePropertyElement;
833
typedef RedirectPropertyContext<property::Stroke, IWORKStrokeContext> StrokePropertyElement;
834
typedef IWORKPropertyContext<property::TextBackground, IWORKColorElement, IWORKToken::NS_URI_SF | IWORKToken::color> TextBackgroundElement;
835
836
typedef IWORKPtrPropertyContext<property::Geometry, IWORKGeometryElement, IWORKToken::NS_URI_SF | IWORKToken::geometry> GeometryElement;
837
838
typedef StylePropertyContext<property::FollowingLayoutStyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle_ref> FollowingLayoutStyleElement;
839
typedef StylePropertyContext<property::FollowingParagraphStyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle_ref> FollowingParagraphStyleElement;
840
typedef StylePropertyContext<property::LabelCharacterStyle, IWORKToken::NS_URI_SF | IWORKToken::characterstyle, IWORKToken::NS_URI_SF | IWORKToken::characterstyle_ref> LabelCharacterStyleElement;
841
typedef StylePropertyContext<property::LayoutParagraphStyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle_ref> LayoutParagraphStyleElement;
842
typedef StylePropertyContext<property::LayoutStyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle_ref> LayoutStyleElement;
843
typedef StylePropertyContext<property::ListStyle, IWORKToken::NS_URI_SF | IWORKToken::liststyle, IWORKToken::NS_URI_SF | IWORKToken::liststyle_ref> ListStyleElement;
844
// in Pages, followed by a tocstyle, in Number by a paragraph-style ?
845
typedef StylePropertyContext<property::TocStyle, IWORKToken::NS_URI_SF | IWORKToken::tocstyle, IWORKToken::NS_URI_SF | IWORKToken::tocstyle_ref
846
, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle_ref> TocStyleElement;
847
typedef StylePropertyContext<property::SFSeries, IWORKToken::NS_URI_SF | IWORKToken::chart_series_style, IWORKToken::NS_URI_SF | IWORKToken::chart_series_style_ref> SFSeriesElement;
848
typedef RedirectPropertyContext<property::SFC2DAreaFillProperty, IWORKFillElement> SFC2DAreaFillPropertyElement;
849
typedef RedirectPropertyContext<property::SFC2DColumnFillProperty, IWORKFillElement> SFC2DColumnFillPropertyElement;
850
typedef RedirectPropertyContext<property::SFC2DMixedColumnFillProperty, IWORKFillElement> SFC2DMixedColumnFillPropertyElement;
851
typedef RedirectPropertyContext<property::SFC2DPieFillProperty, IWORKFillElement> SFC2DPieFillPropertyElement;
852
typedef RedirectPropertyContext<property::SFC3DAreaFillProperty, IWORKFillElement> SFC3DAreaFillPropertyElement;
853
typedef RedirectPropertyContext<property::SFC3DColumnFillProperty, IWORKFillElement> SFC3DColumnFillPropertyElement;
854
typedef RedirectPropertyContext<property::SFC3DPieFillProperty, IWORKFillElement> SFC3DPieFillPropertyElement;
855
typedef RedirectPropertyContext<property::SFTableCellStylePropertyFill, IWORKFillElement> SFTableCellStylePropertyFillElement;
856
typedef StylePropertyContext<property::SFTableStylePropertyCellStyle, IWORKToken::NS_URI_SF | IWORKToken::table_cell_style, IWORKToken::NS_URI_SF | IWORKToken::table_cell_style_ref> SFTableStylePropertyCellStyleElement;
857
typedef StylePropertyContext<property::SFTableStylePropertyHeaderColumnCellStyle, IWORKToken::NS_URI_SF | IWORKToken::table_cell_style, IWORKToken::NS_URI_SF | IWORKToken::table_cell_style_ref> SFTableStylePropertyHeaderColumnCellStyleElement;
858
typedef StylePropertyContext<property::SFTableStylePropertyHeaderRowCellStyle, IWORKToken::NS_URI_SF | IWORKToken::table_cell_style, IWORKToken::NS_URI_SF | IWORKToken::table_cell_style_ref> SFTableStylePropertyHeaderRowCellStyleElement;
859
typedef StylePropertyContext<property::SFTCellStylePropertyLayoutStyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle_ref> SFTCellStylePropertyLayoutStylePropertyElement;
860
typedef StylePropertyContext<property::SFTCellStylePropertyParagraphStyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle_ref> SFTCellStylePropertyParagraphStylePropertyElement;
861
typedef StylePropertyContext<property::SFTDefaultBodyCellStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::cell_style, IWORKToken::NS_URI_SF | IWORKToken::cell_style_ref> SFTDefaultBodyCellStylePropertyElement;
862
typedef StylePropertyContext<property::SFTDefaultBodyVectorStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::vector_style, IWORKToken::NS_URI_SF | IWORKToken::vector_style_ref> SFTDefaultBodyVectorStylePropertyElement;
863
typedef StylePropertyContext<property::SFTDefaultBorderVectorStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::vector_style, IWORKToken::NS_URI_SF | IWORKToken::vector_style_ref> SFTDefaultBorderVectorStylePropertyElement;
864
typedef StylePropertyContext<property::SFTDefaultFooterBodyVectorStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::vector_style, IWORKToken::NS_URI_SF | IWORKToken::vector_style_ref> SFTDefaultFooterBodyVectorStylePropertyElement;
865
typedef StylePropertyContext<property::SFTDefaultFooterRowCellStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::cell_style, IWORKToken::NS_URI_SF | IWORKToken::cell_style_ref> SFTDefaultFooterRowCellStylePropertyElement;
866
typedef StylePropertyContext<property::SFTDefaultFooterSeparatorVectorStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::vector_style, IWORKToken::NS_URI_SF | IWORKToken::vector_style_ref> SFTDefaultFooterSeparatorVectorStylePropertyElement;
867
typedef StylePropertyContext<property::SFTDefaultGroupingLevelVectorStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::vector_style, IWORKToken::NS_URI_SF | IWORKToken::vector_style_ref> SFTDefaultGroupingLevelVectorStylePropertyElement;
868
typedef StylePropertyContext<property::SFTDefaultGroupingRowCellStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::cell_style, IWORKToken::NS_URI_SF | IWORKToken::cell_style_ref> SFTDefaultGroupingRowCellStylePropertyElement;
869
typedef StylePropertyContext<property::SFTDefaultHeaderBodyVectorStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::vector_style, IWORKToken::NS_URI_SF | IWORKToken::vector_style_ref> SFTDefaultHeaderBodyVectorStylePropertyElement;
870
typedef StylePropertyContext<property::SFTDefaultHeaderColumnCellStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::cell_style, IWORKToken::NS_URI_SF | IWORKToken::cell_style_ref> SFTDefaultHeaderColumnCellStylePropertyElement;
871
typedef StylePropertyContext<property::SFTDefaultHeaderRowCellStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::cell_style, IWORKToken::NS_URI_SF | IWORKToken::cell_style_ref> SFTDefaultHeaderRowCellStylePropertyElement;
872
typedef StylePropertyContext<property::SFTDefaultHeaderSeparatorVectorStyleProperty, IWORKToken::NS_URI_SF | IWORKToken::vector_style, IWORKToken::NS_URI_SF | IWORKToken::vector_style_ref> SFTDefaultHeaderSeparatorVectorStylePropertyElement;
873
typedef StylePropertyContext<property::SFTTableNameStylePropertyLayoutStyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle, IWORKToken::NS_URI_SF | IWORKToken::layoutstyle_ref> SFTTableNameStylePropertyLayoutStyleElement;
874
typedef StylePropertyContext<property::SFTTableNameStylePropertyParagraphStyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle, IWORKToken::NS_URI_SF | IWORKToken::paragraphstyle_ref> SFTTableNameStylePropertyParagraphStyleElement;
875
876
typedef IWORKNumericPropertyContext<property::Alignment> AlignmentElement;
877
typedef IWORKNumericPropertyContext<property::Baseline> SuperscriptElement;
878
typedef IWORKNumericPropertyContext<property::BaselineShift> BaselineShiftElement;
879
typedef IWORKNumericPropertyContext<property::Bold> BoldElement;
880
typedef IWORKNumericPropertyContext<property::Capitalization> CapitalizationElement;
881
typedef IWORKNumericPropertyContext<property::FirstLineIndent> FirstLineIndentElement;
882
typedef IWORKNumericPropertyContext<property::FontSize> FontSizeElement;
883
typedef IWORKNumericPropertyContext<property::Italic> ItalicElement;
884
typedef IWORKNumericPropertyContext<property::KeepLinesTogether> KeepLinesTogetherElement;
885
typedef IWORKNumericPropertyContext<property::KeepWithNext> KeepWithNextElement;
886
typedef IWORKNumericPropertyContext<property::LeftIndent> LeftIndentElement;
887
typedef IWORKNumericPropertyContext<property::Opacity> OpacityElement;
888
typedef IWORKNumericPropertyContext<property::Outline> OutlineElement;
889
typedef IWORKNumericPropertyContext<property::PageBreakBefore> PageBreakBeforeElement;
890
typedef IWORKNumericPropertyContext<property::ParagraphBorderType> ParagraphBorderTypeElement;
891
typedef IWORKNumericPropertyContext<property::RightIndent> RightIndentElement;
892
typedef IWORKNumericPropertyContext<property::SFTHeaderColumnRepeatsProperty> SFTHeaderColumnRepeatsPropertyElement;
893
typedef IWORKNumericPropertyContext<property::SFTHeaderRowRepeatsProperty> SFTHeaderRowRepeatsPropertyElement;
894
typedef IWORKNumericPropertyContext<property::SFTTableBandedRowsProperty> SFTTableBandedRowsPropertyElement;
895
typedef IWORKNumericPropertyContext<property::SpaceAfter> SpaceAfterElement;
896
typedef IWORKNumericPropertyContext<property::SpaceBefore> SpaceBeforeElement;
897
typedef IWORKNumericPropertyContext<property::Strikethru> StrikethruElement;
898
typedef IWORKNumericPropertyContext<property::Tracking> TrackingElement;
899
typedef IWORKNumericPropertyContext<property::Underline> UnderlineElement;
900
typedef IWORKNumericPropertyContext<property::VerticalAlignment> VerticalAlignmentElement;
901
typedef IWORKNumericPropertyContext<property::WidowControl> WidowControlElement;
902
903
}
904
905
IWORKPropertyMapElement::IWORKPropertyMapElement(IWORKXMLParserState &state, IWORKPropertyMap &propMap)
906
0
  : IWORKXMLElementContextBase(state)
907
0
  , m_propMap(&propMap)
908
0
  , m_propHandler(nullptr)
909
0
{
910
0
}
911
912
IWORKPropertyMapElement::IWORKPropertyMapElement(IWORKXMLParserState &state, IWORKPropertyHandler &propHandler)
913
0
  : IWORKXMLElementContextBase(state)
914
0
  , m_propMap(nullptr)
915
0
  , m_propHandler(&propHandler)
916
0
{
917
0
}
918
919
IWORKXMLContextPtr_t IWORKPropertyMapElement::element(const int name)
920
0
{
921
0
  if (m_propHandler)
922
0
    return m_propHandler->handle(name);
923
924
0
  switch (name)
925
0
  {
926
0
  case IWORKToken::NS_URI_SF | IWORKToken::alignment :
927
0
    return std::make_shared<AlignmentElement>(getState(), *m_propMap);
928
0
  case IWORKToken::NS_URI_SF | IWORKToken::baselineShift :
929
0
    return std::make_shared<BaselineShiftElement>(getState(), *m_propMap);
930
0
  case IWORKToken::NS_URI_SF | IWORKToken::bold :
931
0
    return std::make_shared<BoldElement>(getState(), *m_propMap);
932
0
  case IWORKToken::NS_URI_SF | IWORKToken::capitalization :
933
0
    return std::make_shared<CapitalizationElement>(getState(), *m_propMap);
934
0
  case IWORKToken::NS_URI_SF | IWORKToken::columns :
935
0
    return std::make_shared<ColumnsPropertyElement>(getState(), *m_propMap, getState().getDictionary().m_columnSets);
936
0
  case IWORKToken::NS_URI_SF | IWORKToken::externalTextWrap:
937
0
    return std::make_shared<ExternalTextWrapElement>(getState(), *m_propMap, getState().getDictionary().m_externalTextWraps);
938
0
  case IWORKToken::NS_URI_SF | IWORKToken::fill :
939
0
    return std::make_shared<FillPropertyElement>(getState(), *m_propMap);
940
0
  case IWORKToken::NS_URI_SF | IWORKToken::filters :
941
0
    return std::make_shared<FiltersElement>(getState(), *m_propMap);
942
0
  case IWORKToken::NS_URI_SF | IWORKToken::firstLineIndent :
943
0
    return std::make_shared<FirstLineIndentElement>(getState(), *m_propMap);
944
0
  case IWORKToken::NS_URI_SF | IWORKToken::followingLayoutStyle :
945
0
    return std::make_shared<FollowingLayoutStyleElement>(getState(), *m_propMap, getState().getDictionary().m_layoutStyles);
946
0
  case IWORKToken::NS_URI_SF | IWORKToken::followingParagraphStyle :
947
0
    return std::make_shared<FollowingParagraphStyleElement>(getState(), *m_propMap, getState().getDictionary().m_paragraphStyles);
948
0
  case IWORKToken::NS_URI_SF | IWORKToken::fontColor :
949
0
    return std::make_shared<FontColorElement>(getState(), *m_propMap);
950
0
  case IWORKToken::NS_URI_SF | IWORKToken::fontName :
951
0
    return std::make_shared<FontNameElement>(getState(), *m_propMap);
952
0
  case IWORKToken::NS_URI_SF | IWORKToken::fontSize :
953
0
    return std::make_shared<FontSizeElement>(getState(), *m_propMap);
954
0
  case IWORKToken::NS_URI_SF | IWORKToken::geometry :
955
0
    return std::make_shared<GeometryElement>(getState(), *m_propMap);
956
0
  case IWORKToken::NS_URI_SF | IWORKToken::headLineEnd :
957
0
    return std::make_shared<HeadLineEndElement>(getState(), *m_propMap);
958
0
  case IWORKToken::NS_URI_SF | IWORKToken::italic :
959
0
    return std::make_shared<ItalicElement>(getState(), *m_propMap);
960
0
  case IWORKToken::NS_URI_SF | IWORKToken::keepLinesTogether :
961
0
    return std::make_shared<KeepLinesTogetherElement>(getState(), *m_propMap);
962
0
  case IWORKToken::NS_URI_SF | IWORKToken::keepWithNext :
963
0
    return std::make_shared<KeepWithNextElement>(getState(), *m_propMap);
964
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle1 :
965
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle2 :
966
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle3 :
967
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle4 :
968
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle5 :
969
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle6 :
970
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle7 :
971
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle8 :
972
0
  case IWORKToken::NS_URI_SF | IWORKToken::labelCharacterStyle9 :
973
    // CHANGE: this must be used to retrieve some Wingdings bullet character
974
0
    return std::make_shared<LabelCharacterStyleElement>(getState(), *m_propMap, getState().getDictionary().m_characterStyles);
975
0
  case IWORKToken::NS_URI_SF | IWORKToken::language :
976
0
    return std::make_shared<LanguageElement>(getState(), *m_propMap);
977
0
  case IWORKToken::NS_URI_SF | IWORKToken::layoutMargins :
978
0
    return std::make_shared<LayoutMarginsElement>(getState(), *m_propMap, getState().getDictionary().m_paddings);
979
0
  case IWORKToken::NS_URI_SF | IWORKToken::layoutParagraphStyle :
980
0
    return std::make_shared<LayoutParagraphStyleElement>(getState(), *m_propMap, getState().getDictionary().m_paragraphStyles);
981
0
  case IWORKToken::NS_URI_SF | IWORKToken::layoutStyle :
982
0
    return std::make_shared<LayoutStyleElement>(getState(), *m_propMap, getState().getDictionary().m_layoutStyles);
983
0
  case IWORKToken::NS_URI_SF | IWORKToken::leftIndent :
984
0
    return std::make_shared<LeftIndentElement>(getState(), *m_propMap);
985
0
  case IWORKToken::NS_URI_SF | IWORKToken::lineSpacing :
986
0
    return std::make_shared<LineSpacingElement>(getState(), *m_propMap, getState().getDictionary().m_lineSpacings);
987
0
  case IWORKToken::NS_URI_SF | IWORKToken::listLabelGeometries :
988
0
    return std::make_shared<IWORKListLabelGeometriesProperty>(getState(), *m_propMap);
989
0
  case IWORKToken::NS_URI_SF | IWORKToken::listLabelIndents :
990
0
    return std::make_shared<IWORKListLabelIndentsProperty>(getState(), *m_propMap);
991
0
  case IWORKToken::NS_URI_SF | IWORKToken::listLabelTypes :
992
0
    return std::make_shared<IWORKListLabelTypesProperty>(getState(), *m_propMap);
993
0
  case IWORKToken::NS_URI_SF | IWORKToken::listStyle :
994
0
    return std::make_shared<ListStyleElement>(getState(), *m_propMap, getState().getDictionary().m_listStyles);
995
0
  case IWORKToken::NS_URI_SF | IWORKToken::listTextIndents :
996
0
    return std::make_shared<IWORKListTextIndentsProperty>(getState(), *m_propMap);
997
0
  case IWORKToken::NS_URI_SF | IWORKToken::opacity :
998
0
    return std::make_shared<OpacityElement>(getState(), *m_propMap);
999
0
  case IWORKToken::NS_URI_SF | IWORKToken::outline :
1000
0
    return std::make_shared<OutlineElement>(getState(), *m_propMap);
1001
0
  case IWORKToken::NS_URI_SF | IWORKToken::padding :
1002
0
    return std::make_shared<PaddingContext>(getState(), *m_propMap, getState().getDictionary().m_paddings);
1003
0
  case IWORKToken::NS_URI_SF | IWORKToken::pageBreakBefore :
1004
0
    return std::make_shared<PageBreakBeforeElement>(getState(), *m_propMap);
1005
0
  case IWORKToken::NS_URI_SF | IWORKToken::paragraphBorderType :
1006
0
    return std::make_shared<ParagraphBorderTypeElement>(getState(), *m_propMap);
1007
0
  case IWORKToken::NS_URI_SF | IWORKToken::paragraphFill :
1008
0
    return std::make_shared<ParagraphFillElement>(getState(), *m_propMap);
1009
0
  case IWORKToken::NS_URI_SF | IWORKToken::paragraphStroke :
1010
0
    return std::make_shared<ParagraphStrokeElement>(getState(), *m_propMap);
1011
0
  case IWORKToken::NS_URI_SF | IWORKToken::rightIndent :
1012
0
    return std::make_shared<RightIndentElement>(getState(), *m_propMap);
1013
0
  case IWORKToken::NS_URI_SF | IWORKToken::tailLineEnd :
1014
0
    return std::make_shared<TailLineEndElement>(getState(), *m_propMap);
1015
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_0 :
1016
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_1 :
1017
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_2 :
1018
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_3 :
1019
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_4 :
1020
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_5 :
1021
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_6 :
1022
0
  case IWORKToken::NS_URI_SF | IWORKToken::Series_7 :
1023
    // CHANGEME
1024
0
    return std::make_shared<SFSeriesElement>(getState(), *m_propMap, getState().getDictionary().m_chartSeriesStyles);
1025
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFC2DAreaFillProperty :
1026
0
    return std::make_shared<SFC2DAreaFillPropertyElement>(getState(), *m_propMap);
1027
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFC2DColumnFillProperty :
1028
0
    return std::make_shared<SFC2DColumnFillPropertyElement>(getState(), *m_propMap);
1029
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFC2DMixedColumnFillProperty :
1030
0
    return std::make_shared<SFC2DMixedColumnFillPropertyElement>(getState(), *m_propMap);
1031
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFC2DPieFillProperty :
1032
0
    return std::make_shared<SFC2DPieFillPropertyElement>(getState(), *m_propMap);
1033
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFC3DAreaFillProperty :
1034
0
    return std::make_shared<SFC3DAreaFillPropertyElement>(getState(), *m_propMap);
1035
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFC3DColumnFillProperty :
1036
0
    return std::make_shared<SFC3DColumnFillPropertyElement>(getState(), *m_propMap);
1037
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFC3DPieFillProperty :
1038
0
    return std::make_shared<SFC2DPieFillPropertyElement>(getState(), *m_propMap);
1039
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTableCellStylePropertyFill :
1040
0
    return std::make_shared<SFTableCellStylePropertyFillElement>(getState(), *m_propMap);
1041
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTableStylePropertyCellStyle :
1042
0
    return std::make_shared<SFTableStylePropertyCellStyleElement>(getState(), *m_propMap, getState().getDictionary().m_tableCellStyles);
1043
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTableStylePropertyHeaderColumnCellStyle :
1044
0
    return std::make_shared<SFTableStylePropertyHeaderColumnCellStyleElement>(getState(), *m_propMap, getState().getDictionary().m_tableCellStyles);
1045
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTableStylePropertyHeaderRowCellStyle :
1046
0
    return std::make_shared<SFTableStylePropertyHeaderRowCellStyleElement>(getState(), *m_propMap, getState().getDictionary().m_tableCellStyles);
1047
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTCellStylePropertyNumberFormat :
1048
0
    return std::make_shared<SFTCellStylePropertyNumberFormatElement>(getState(), *m_propMap, getState().getDictionary().m_numberFormats);
1049
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTCellStylePropertyDateTimeFormat :
1050
0
    return std::make_shared<SFTCellStylePropertyDateTimeFormatElement>(getState(), *m_propMap, getState().getDictionary().m_dateTimeFormats);
1051
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTCellStylePropertyDurationFormat :
1052
0
    return std::make_shared<SFTCellStylePropertyDurationFormatElement>(getState(), *m_propMap, getState().getDictionary().m_durationFormats);
1053
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTCellStylePropertyLayoutStyle :
1054
0
    return std::make_shared<SFTCellStylePropertyLayoutStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_layoutStyles);
1055
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTCellStylePropertyParagraphStyle :
1056
0
    return std::make_shared<SFTCellStylePropertyParagraphStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_paragraphStyles);
1057
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultBodyCellStyleProperty :
1058
0
    return std::make_shared<SFTDefaultBodyCellStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_cellStyles);
1059
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultBodyVectorStyleProperty :
1060
0
    return std::make_shared<SFTDefaultBodyVectorStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_vectorStyles);
1061
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultBorderVectorStyleProperty :
1062
0
    return std::make_shared<SFTDefaultBorderVectorStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_vectorStyles);
1063
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultFooterBodyVectorStyleProperty :
1064
0
    return std::make_shared<SFTDefaultFooterBodyVectorStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_vectorStyles);
1065
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultFooterRowCellStyleProperty :
1066
0
    return std::make_shared<SFTDefaultFooterRowCellStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_cellStyles);
1067
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultFooterSeparatorVectorStyleProperty :
1068
0
    return std::make_shared<SFTDefaultFooterSeparatorVectorStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_vectorStyles);
1069
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingLevel0VectorStyleProperty:
1070
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingLevel1VectorStyleProperty:
1071
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingLevel2VectorStyleProperty:
1072
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingLevel3VectorStyleProperty:
1073
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingLevel4VectorStyleProperty:
1074
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingLevel5VectorStyleProperty:
1075
0
    return std::make_shared<SFTDefaultGroupingLevelVectorStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_vectorStyles);
1076
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingRowCell0StyleProperty :
1077
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingRowCell1StyleProperty :
1078
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingRowCell2StyleProperty :
1079
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingRowCell3StyleProperty :
1080
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingRowCell4StyleProperty :
1081
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultGroupingRowCell5StyleProperty :
1082
0
    return std::make_shared<SFTDefaultGroupingRowCellStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_cellStyles);
1083
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultHeaderBodyVectorStyleProperty :
1084
0
    return std::make_shared<SFTDefaultHeaderBodyVectorStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_vectorStyles);
1085
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultHeaderColumnCellStyleProperty :
1086
0
    return std::make_shared<SFTDefaultHeaderColumnCellStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_cellStyles);
1087
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultHeaderRowCellStyleProperty :
1088
0
    return std::make_shared<SFTDefaultHeaderRowCellStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_cellStyles);
1089
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTDefaultHeaderSeparatorVectorStyleProperty :
1090
0
    return std::make_shared<SFTDefaultHeaderSeparatorVectorStylePropertyElement>(getState(), *m_propMap, getState().getDictionary().m_vectorStyles);
1091
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTTableNameStylePropertyLayoutStyle :
1092
0
    return std::make_shared<SFTTableNameStylePropertyLayoutStyleElement>(getState(), *m_propMap, getState().getDictionary().m_layoutStyles);
1093
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTTableNameStylePropertyParagraphStyle :
1094
0
    return std::make_shared<SFTTableNameStylePropertyParagraphStyleElement>(getState(), *m_propMap, getState().getDictionary().m_paragraphStyles);
1095
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTHeaderColumnRepeatsProperty :
1096
0
    return std::make_shared<SFTHeaderColumnRepeatsPropertyElement>(getState(), *m_propMap);
1097
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTHeaderRowRepeatsProperty :
1098
0
    return std::make_shared<SFTHeaderRowRepeatsPropertyElement>(getState(), *m_propMap);
1099
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTStrokeProperty :
1100
0
    return std::make_shared<SFTStrokePropertyElement>(getState(), *m_propMap);
1101
0
  case IWORKToken::NS_URI_SF | IWORKToken::SFTTableBandedRowsProperty :
1102
0
    return std::make_shared<SFTTableBandedRowsPropertyElement>(getState(), *m_propMap);
1103
0
  case IWORKToken::NS_URI_SF | IWORKToken::spaceAfter :
1104
0
    return std::make_shared<SpaceAfterElement>(getState(), *m_propMap);
1105
0
  case IWORKToken::NS_URI_SF | IWORKToken::spaceBefore :
1106
0
    return std::make_shared<SpaceBeforeElement>(getState(), *m_propMap);
1107
0
  case IWORKToken::NS_URI_SF | IWORKToken::strikethru :
1108
0
    return std::make_shared<StrikethruElement>(getState(), *m_propMap);
1109
0
  case IWORKToken::NS_URI_SF | IWORKToken::stroke :
1110
0
    return std::make_shared<StrokePropertyElement>(getState(), *m_propMap);
1111
0
  case IWORKToken::NS_URI_SF | IWORKToken::superscript :
1112
0
    return std::make_shared<SuperscriptElement>(getState(), *m_propMap);
1113
0
  case IWORKToken::NS_URI_SF | IWORKToken::tabs :
1114
0
    return std::make_shared<TabsProperty>(getState(), *m_propMap);
1115
0
  case IWORKToken::NS_URI_SF | IWORKToken::textBackground :
1116
0
    return std::make_shared<TextBackgroundElement>(getState(), *m_propMap);
1117
0
  case IWORKToken::NS_URI_SF | IWORKToken::tocStyle :
1118
0
    return std::make_shared<TocStyleElement>(getState(), *m_propMap, getState().getDictionary().m_tocStyles, getState().getDictionary().m_paragraphStyles);
1119
0
  case IWORKToken::NS_URI_SF | IWORKToken::tracking :
1120
0
    return std::make_shared<TrackingElement>(getState(), *m_propMap);
1121
0
  case IWORKToken::NS_URI_SF | IWORKToken::underline :
1122
0
    return std::make_shared<UnderlineElement>(getState(), *m_propMap);
1123
0
  case IWORKToken::NS_URI_SF | IWORKToken::verticalAlignment :
1124
0
    return std::make_shared<VerticalAlignmentElement>(getState(), *m_propMap);
1125
0
  case IWORKToken::NS_URI_SF | IWORKToken::widowControl :
1126
0
    return std::make_shared<WidowControlElement>(getState(), *m_propMap);
1127
0
  default:
1128
0
    if (name)
1129
0
    {
1130
      //TODO: print a message even if name is unknown...
1131
0
      ETONYEK_DEBUG_MSG(("IWORKPropertyMapElement::element: find some unknown element %d\n", int(name)));
1132
0
    }
1133
0
  }
1134
1135
0
  return IWORKXMLContextPtr_t();
1136
0
}
1137
1138
}
1139
1140
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */