File: DocHtmlElement.pm

package info (click to toggle)
pgbackrest 2.57.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,344 kB
  • sloc: ansic: 127,546; xml: 19,452; perl: 12,761; pascal: 3,279; sh: 91; sql: 32; makefile: 23
file content (158 lines) | stat: -rw-r--r-- 5,471 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
####################################################################################################################################
# DOC HTML ELEMENT MODULE
####################################################################################################################################
package pgBackRestDoc::Html::DocHtmlElement;

use strict;
use warnings FATAL => qw(all);
use Carp qw(confess);

use Exporter qw(import);
    our @EXPORT = qw();
use Scalar::Util qw(blessed);

use pgBackRestDoc::Common::Log;

####################################################################################################################################
# Html Element Types
####################################################################################################################################
use constant HTML_A                                                 => 'a';
    push @EXPORT, qw(HTML_A);
use constant HTML_BODY                                              => 'body';
    push @EXPORT, qw(HTML_BODY);
use constant HTML_PRE                                               => 'pre';
    push @EXPORT, qw(HTML_PRE);
use constant HTML_DIV                                               => 'div';
    push @EXPORT, qw(HTML_DIV);
use constant HTML_SPAN                                              => 'span';
    push @EXPORT, qw(HTML_SPAN);
use constant HTML_TABLE                                             => 'table';
    push @EXPORT, qw(HTML_TABLE);
use constant HTML_TABLE_CAPTION                                     => 'caption';
    push @EXPORT, qw(HTML_TABLE_CAPTION);
use constant HTML_TD                                                => 'td';
    push @EXPORT, qw(HTML_TD);
use constant HTML_TH                                                => 'th';
    push @EXPORT, qw(HTML_TH);
use constant HTML_TR                                                => 'tr';
    push @EXPORT, qw(HTML_TR);
use constant HTML_UL                                                => 'ul';
    push @EXPORT, qw(HTML_UL);
use constant HTML_LI                                                => 'li';
    push @EXPORT, qw(HTML_LI);

####################################################################################################################################
# CONSTRUCTOR
####################################################################################################################################
sub new
{
    my $class = shift;       # Class name

    # Create the class hash
    my $self = {};
    bless $self, $class;

    $self->{strClass} = $class;

    # Assign function parameters, defaults, and log debug info
    (
        my $strOperation,
        $self->{strType},
        $self->{strClass},
        my $oParam
    ) =
        logDebugParam
        (
            __PACKAGE__ . '->new', \@_,
            {name => 'strType', trace => true},
            {name => 'strClass', required => false, trace => true},
            {name => 'oParam', required => false, trace => true}
        );

    $self->{oyElement} = [];
    $self->{strContent} = $$oParam{strContent};
    $self->{strId} = $$oParam{strId};
    $self->{strRef} = $$oParam{strRef};
    $self->{strExtra} = $$oParam{strExtra};
    $self->{bPre} = $$oParam{bPre};

    # Return from function and log return values if any
    return logDebugReturn
    (
        $strOperation,
        {name => 'self', value => $self}
    );
}

####################################################################################################################################
# addNew
#
# Create a new element and add it.
####################################################################################################################################
sub addNew
{
    my $self = shift;

    # Assign function parameters, defaults, and log debug info
    my (
        $strOperation,
        $strType,
        $strClass,
        $oParam
    ) =
        logDebugParam
        (
            __PACKAGE__ . '->addNew', \@_,
            {name => 'strType', trace => true},
            {name => 'strClass', required => false, trace => true},
            {name => 'oParam', required => false, trace => true}
        );

    my $oElement = new pgBackRestDoc::Html::DocHtmlElement($strType, $strClass, $oParam);

    $self->add($oElement);

    # Return from function and log return values if any
    return logDebugReturn
    (
        $strOperation,
        {name => 'oElement', value => $oElement, trace => true}
    );
}

####################################################################################################################################
# add
#
# Add an element.
####################################################################################################################################
sub add
{
    my $self = shift;

    # Assign function parameters, defaults, and log debug info
    my (
        $strOperation,
        $oElement
    ) =
        logDebugParam
        (
            __PACKAGE__ . '->add', \@_,
            {name => 'oElement', trace => true}
        );

    if (!(blessed($oElement) && $oElement->isa('pgBackRestDoc::Html::DocHtmlElement')))
    {
        confess &log(ASSERT, 'oElement must be a valid element object');
    }

    push(@{$self->{oyElement}}, $oElement);

    # Return from function and log return values if any
    return logDebugReturn
    (
        $strOperation,
        {name => 'oElement', value => $oElement, trace => true}
    );
}

1;