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
package Torello.JavaDoc.SyntaxHiLite;

import Torello.Java.Additional.Ret2;

import Torello.HTML.TagNode;
import Torello.HTML.HTMLTags;
import Torello.HTML.TC;

class ACGenerateHelper 
{
    static Ret2<TagNode[], TagNode[]> generate
        (final AbstractConfig<?> THIS) 
    {
        final String    cAttr       = THIS.upperOrLower_ClassAttrName ? "CLASS" : "class";
        final boolean   useQuotes   = (THIS.quotes != null);
        final String    q           = useQuotes ? ("" + THIS.quotes.quote) : "";

        final TagNode CLOSE_SPAN = THIS.upperOrLower_TagName
            ? HTMLTags.hasTag("SPAN", TC.ClosingTags)
            : HTMLTags.hasTag("span", TC.ClosingTags);

        final TagNode CLOSE_BOLD = THIS.upperOrLower_TagName
            ? HTMLTags.hasTag("B", TC.ClosingTags)
            : HTMLTags.hasTag("b", TC.ClosingTags);

        final TagNode[] openers = new TagNode[THIS.CONFIG_ARR_LEN];
        final TagNode[] closers = new TagNode[THIS.CONFIG_ARR_LEN];

        for (int i=1; i < THIS.CONFIG_ARR_LEN; i++)
        {
            openers[i] = THIS.utilize[i]
                ? TAG(
                    THIS.upperOrLower_TagName,
                    cAttr,
                    q,
                    THIS.classNames[i],
                    THIS.spansOrBolds[i]
                )
                : null;

            closers[i] = THIS.utilize[i]
                ? (THIS.spansOrBolds[i] ? CLOSE_SPAN : CLOSE_BOLD)
                : null;
        }

        return new Ret2<>(openers, closers);
    }

    private static TagNode TAG(
            final boolean upperOrLower_TagName,
            final String cAttr,
            final String q,
            final String className,
            final boolean spanOrBold
        )
    {
        final String tag;

        if (upperOrLower_TagName)   tag = spanOrBold ? "SPAN" : "B";
        else                        tag = spanOrBold ? "span" : "b";

        return new TagNode('<' + tag + ' ' + cAttr + '=' + q + className + q + '>');
    }

}