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/IWORKStyleContainer.h
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
#ifndef IWORKSTYLECONTAINER_H_INCLUDED
11
#define IWORKSTYLECONTAINER_H_INCLUDED
12
13
#include <memory>
14
#include <string>
15
16
#include <boost/optional.hpp>
17
18
#include "IWORKStyle_fwd.h"
19
#include "IWORKStyleContext.h"
20
#include "IWORKToken.h"
21
#include "IWORKXMLParserState.h"
22
23
#include "IWORKXMLContextBase.h"
24
25
namespace libetonyek
26
{
27
28
template<int TokenId, int RefTokenId, int TokenId2=0, int RefTokenId2=0>
29
class IWORKStyleContainer : public IWORKXMLElementContextBase
30
{
31
public:
32
  IWORKStyleContainer(IWORKXMLParserState &state, IWORKStylePtr_t &style, IWORKStyleMap_t &styleMap);
33
  IWORKStyleContainer(IWORKXMLParserState &state, IWORKStylePtr_t &style, IWORKStyleMap_t &styleMap, IWORKStyleMap_t &styleMap2);
34
35
protected:
36
  IWORKXMLContextPtr_t element(int name) override;
37
  void endOfElement() override;
38
39
private:
40
  IWORKStyleContainer(IWORKStyleContainer const &);
41
  IWORKStyleContainer &operator=(IWORKStyleContainer const &);
42
43
  IWORKStylePtr_t &m_style;
44
  IWORKStyleMap_t &m_styleMap;
45
  std::shared_ptr<IWORKStyleContext> m_context;
46
  boost::optional<ID_t> m_ref;
47
  IWORKStyleMap_t *m_styleMap2;
48
  boost::optional<ID_t> m_ref2;
49
};
50
51
template<int TokenId, int RefTokenId, int TokenId2, int RefTokenId2>
52
IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>::IWORKStyleContainer(IWORKXMLParserState &state, IWORKStylePtr_t &style, IWORKStyleMap_t &styleMap)
53
0
  : IWORKXMLElementContextBase(state)
54
0
  , m_style(style)
55
0
  , m_styleMap(styleMap)
56
0
  , m_context()
57
0
  , m_ref()
58
0
  , m_styleMap2(nullptr)
59
0
  , m_ref2()
60
0
{
61
0
}
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131203, 131204, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131282, 131283, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131338, 131339, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131401, 131402, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131181, 131182, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131358, 131359, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131188, 131189, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131474, 131475, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131176, 131177, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131537, 131538, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131477, 131478, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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: libetonyek::IWORKStyleContainer<131508, 131509, 0, 0>::IWORKStyleContainer(libetonyek::IWORKXMLParserState&, std::__1::shared_ptr<libetonyek::IWORKStyle>&, 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> > > >&)
62
63
template<int TokenId, int RefTokenId, int TokenId2, int RefTokenId2>
64
IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>::IWORKStyleContainer(IWORKXMLParserState &state, IWORKStylePtr_t &style, IWORKStyleMap_t &styleMap, IWORKStyleMap_t &styleMap2)
65
0
  : IWORKXMLElementContextBase(state)
66
0
  , m_style(style)
67
0
  , m_styleMap(styleMap)
68
0
  , m_context()
69
0
  , m_ref()
70
0
  , m_styleMap2(&styleMap2)
71
0
  , m_ref2()
72
0
{
73
0
}
74
75
template<int TokenId, int RefTokenId, int TokenId2, int RefTokenId2>
76
IWORKXMLContextPtr_t IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>::element(const int name)
77
0
{
78
0
  switch (name)
79
0
  {
80
0
  case TokenId :
81
0
    m_context = std::make_shared<IWORKStyleContext>(getState(), &m_styleMap);
82
0
    return m_context;
83
0
  case RefTokenId :
84
0
    return std::make_shared<IWORKRefContext>(getState(), m_ref);
85
0
  case IWORKToken::NS_URI_SF | IWORKToken::null:
86
0
    return IWORKXMLContextPtr_t();
87
0
  case IWORKToken::INVALID_TOKEN: // TokenId2 and RefTokenId2 are optional, so avoid unintentional match
88
0
    break;
89
0
  default:
90
0
    if (!name) break;
91
0
    if (name==TokenId2)
92
0
    {
93
0
      m_context = std::make_shared<IWORKStyleContext>(getState(), m_styleMap2);
94
0
      return m_context;
95
0
    }
96
0
    if (name==RefTokenId2)
97
0
      return std::make_shared<IWORKRefContext>(getState(), m_ref2);
98
0
    break;
99
0
  }
100
0
  ETONYEK_DEBUG_MSG(("IWORKStyleContainer<...>::element: unknown element %d\n", name));
101
0
  return IWORKXMLContextPtr_t();
102
0
}
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131203, 131204, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131282, 131283, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131338, 131339, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131401, 131402, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131181, 131182, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131358, 131359, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131188, 131189, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131474, 131475, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131176, 131177, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131537, 131538, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131525, 131526, 131401, 131402>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131477, 131478, 0, 0>::element(int)
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131508, 131509, 0, 0>::element(int)
103
104
template<int TokenId, int RefTokenId, int TokenId2, int RefTokenId2>
105
void IWORKStyleContainer<TokenId, RefTokenId, TokenId2, RefTokenId2>::endOfElement()
106
0
{
107
0
  if (m_ref)
108
0
    m_style = getState().getStyleByName(get(m_ref).c_str(), m_styleMap);
109
0
  else if (m_ref2 && m_styleMap2)
110
0
    m_style = getState().getStyleByName(get(m_ref2).c_str(), *m_styleMap2);
111
0
  else if (m_context)
112
0
    m_style=m_context->getStyle();
113
0
}
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131203, 131204, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131282, 131283, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131338, 131339, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131401, 131402, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131181, 131182, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131358, 131359, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131188, 131189, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131474, 131475, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131176, 131177, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131537, 131538, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131525, 131526, 131401, 131402>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131477, 131478, 0, 0>::endOfElement()
Unexecuted instantiation: libetonyek::IWORKStyleContainer<131508, 131509, 0, 0>::endOfElement()
114
115
}
116
117
#endif // IWORKSTYLECONTAINER_H_INCLUDED
118
119
/* vim:set shiftwidth=2 softtabstop=2 expandtab: */