@@ -194,103 +194,178 @@ class ElementAdapter final : public abstract::ElementAdapter,
194194 }
195195
196196 [[nodiscard]] const TextRootAdapter *
197- text_root_adapter (const ExtendedElementIdentifier) const override {
197+ text_root_adapter (const ExtendedElementIdentifier element_id) const override {
198+ if (m_registry->element (element_id).type != ElementType::root) {
199+ return nullptr ;
200+ }
198201 return this ;
199202 }
200203 [[nodiscard]] const SlideAdapter *
201- slide_adapter (const ExtendedElementIdentifier) const override {
204+ slide_adapter (const ExtendedElementIdentifier element_id) const override {
205+ if (m_registry->element (element_id).type != ElementType::slide) {
206+ return nullptr ;
207+ }
202208 return this ;
203209 }
204210 [[nodiscard]] const PageAdapter *
205- page_adapter (const ExtendedElementIdentifier) const override {
211+ page_adapter (const ExtendedElementIdentifier element_id) const override {
212+ if (m_registry->element (element_id).type != ElementType::page) {
213+ return nullptr ;
214+ }
206215 return this ;
207216 }
208217 [[nodiscard]] const SheetAdapter *
209- sheet_adapter (const ExtendedElementIdentifier) const override {
218+ sheet_adapter (const ExtendedElementIdentifier element_id) const override {
219+ if (m_registry->element (element_id).type != ElementType::sheet) {
220+ return nullptr ;
221+ }
210222 return this ;
211223 }
212- [[nodiscard]] const SheetColumnAdapter *
213- sheet_column_adapter (const ExtendedElementIdentifier) const override {
224+ [[nodiscard]] const SheetColumnAdapter *sheet_column_adapter (
225+ const ExtendedElementIdentifier element_id) const override {
226+ if (m_registry->element (element_id).type != ElementType::sheet_column) {
227+ return nullptr ;
228+ }
214229 return this ;
215230 }
216231 [[nodiscard]] const SheetRowAdapter *
217- sheet_row_adapter (const ExtendedElementIdentifier) const override {
232+ sheet_row_adapter (const ExtendedElementIdentifier element_id) const override {
233+ if (m_registry->element (element_id).type != ElementType::sheet_row) {
234+ return nullptr ;
235+ }
218236 return this ;
219237 }
220- [[nodiscard]] const SheetCellAdapter *
221- sheet_cell_adapter (const ExtendedElementIdentifier) const override {
238+ [[nodiscard]] const SheetCellAdapter *sheet_cell_adapter (
239+ const ExtendedElementIdentifier element_id) const override {
240+ if (m_registry->element (element_id).type != ElementType::sheet_cell) {
241+ return nullptr ;
242+ }
222243 return this ;
223244 }
224- [[nodiscard]] const MasterPageAdapter *
225- master_page_adapter (const ExtendedElementIdentifier) const override {
245+ [[nodiscard]] const MasterPageAdapter *master_page_adapter (
246+ const ExtendedElementIdentifier element_id) const override {
247+ if (m_registry->element (element_id).type != ElementType::page) {
248+ return nullptr ;
249+ }
226250 return this ;
227251 }
228- [[nodiscard]] const LineBreakAdapter *
229- line_break_adapter (const ExtendedElementIdentifier) const override {
252+ [[nodiscard]] const LineBreakAdapter *line_break_adapter (
253+ const ExtendedElementIdentifier element_id) const override {
254+ if (m_registry->element (element_id).type != ElementType::line_break) {
255+ return nullptr ;
256+ }
230257 return this ;
231258 }
232259 [[nodiscard]] const ParagraphAdapter *
233- paragraph_adapter (const ExtendedElementIdentifier) const override {
260+ paragraph_adapter (const ExtendedElementIdentifier element_id) const override {
261+ if (m_registry->element (element_id).type != ElementType::paragraph) {
262+ return nullptr ;
263+ }
234264 return this ;
235265 }
236266 [[nodiscard]] const SpanAdapter *
237- span_adapter (const ExtendedElementIdentifier) const override {
267+ span_adapter (const ExtendedElementIdentifier element_id) const override {
268+ if (m_registry->element (element_id).type != ElementType::span) {
269+ return nullptr ;
270+ }
238271 return this ;
239272 }
240273 [[nodiscard]] const TextAdapter *
241- text_adapter (const ExtendedElementIdentifier) const override {
274+ text_adapter (const ExtendedElementIdentifier element_id) const override {
275+ if (m_registry->element (element_id).type != ElementType::text) {
276+ return nullptr ;
277+ }
242278 return this ;
243279 }
244280 [[nodiscard]] const LinkAdapter *
245- link_adapter (const ExtendedElementIdentifier) const override {
281+ link_adapter (const ExtendedElementIdentifier element_id) const override {
282+ if (m_registry->element (element_id).type != ElementType::link) {
283+ return nullptr ;
284+ }
246285 return this ;
247286 }
248287 [[nodiscard]] const BookmarkAdapter *
249- bookmark_adapter (const ExtendedElementIdentifier) const override {
288+ bookmark_adapter (const ExtendedElementIdentifier element_id) const override {
289+ if (m_registry->element (element_id).type != ElementType::bookmark) {
290+ return nullptr ;
291+ }
250292 return this ;
251293 }
252294 [[nodiscard]] const ListItemAdapter *
253- list_item_adapter (const ExtendedElementIdentifier) const override {
295+ list_item_adapter (const ExtendedElementIdentifier element_id) const override {
296+ if (m_registry->element (element_id).type != ElementType::list_item) {
297+ return nullptr ;
298+ }
254299 return this ;
255300 }
256301 [[nodiscard]] const TableAdapter *
257- table_adapter (const ExtendedElementIdentifier) const override {
302+ table_adapter (const ExtendedElementIdentifier element_id) const override {
303+ if (m_registry->element (element_id).type != ElementType::table) {
304+ return nullptr ;
305+ }
258306 return this ;
259307 }
260- [[nodiscard]] const TableColumnAdapter *
261- table_column_adapter (const ExtendedElementIdentifier) const override {
308+ [[nodiscard]] const TableColumnAdapter *table_column_adapter (
309+ const ExtendedElementIdentifier element_id) const override {
310+ if (m_registry->element (element_id).type != ElementType::table_column) {
311+ return nullptr ;
312+ }
262313 return this ;
263314 }
264315 [[nodiscard]] const TableRowAdapter *
265- table_row_adapter (const ExtendedElementIdentifier) const override {
316+ table_row_adapter (const ExtendedElementIdentifier element_id) const override {
317+ if (m_registry->element (element_id).type != ElementType::table_row) {
318+ return nullptr ;
319+ }
266320 return this ;
267321 }
268- [[nodiscard]] const TableCellAdapter *
269- table_cell_adapter (const ExtendedElementIdentifier) const override {
322+ [[nodiscard]] const TableCellAdapter *table_cell_adapter (
323+ const ExtendedElementIdentifier element_id) const override {
324+ if (m_registry->element (element_id).type != ElementType::table_cell) {
325+ return nullptr ;
326+ }
270327 return this ;
271328 }
272329 [[nodiscard]] const FrameAdapter *
273- frame_adapter (const ExtendedElementIdentifier) const override {
330+ frame_adapter (const ExtendedElementIdentifier element_id) const override {
331+ if (m_registry->element (element_id).type != ElementType::frame) {
332+ return nullptr ;
333+ }
274334 return this ;
275335 }
276336 [[nodiscard]] const RectAdapter *
277- rect_adapter (const ExtendedElementIdentifier) const override {
337+ rect_adapter (const ExtendedElementIdentifier element_id) const override {
338+ if (m_registry->element (element_id).type != ElementType::rect) {
339+ return nullptr ;
340+ }
278341 return this ;
279342 }
280343 [[nodiscard]] const LineAdapter *
281- line_adapter (const ExtendedElementIdentifier) const override {
344+ line_adapter (const ExtendedElementIdentifier element_id) const override {
345+ if (m_registry->element (element_id).type != ElementType::line) {
346+ return nullptr ;
347+ }
282348 return this ;
283349 }
284350 [[nodiscard]] const CircleAdapter *
285- circle_adapter (const ExtendedElementIdentifier) const override {
351+ circle_adapter (const ExtendedElementIdentifier element_id) const override {
352+ if (m_registry->element (element_id).type != ElementType::circle) {
353+ return nullptr ;
354+ }
286355 return this ;
287356 }
288- [[nodiscard]] const CustomShapeAdapter *
289- custom_shape_adapter (const ExtendedElementIdentifier) const override {
357+ [[nodiscard]] const CustomShapeAdapter *custom_shape_adapter (
358+ const ExtendedElementIdentifier element_id) const override {
359+ if (m_registry->element (element_id).type != ElementType::custom_shape) {
360+ return nullptr ;
361+ }
290362 return this ;
291363 }
292364 [[nodiscard]] const ImageAdapter *
293- image_adapter (const ExtendedElementIdentifier) const override {
365+ image_adapter (const ExtendedElementIdentifier element_id) const override {
366+ if (m_registry->element (element_id).type != ElementType::image) {
367+ return nullptr ;
368+ }
294369 return this ;
295370 }
296371
0 commit comments