Coverage report

| %line | %branch
--- | --- | ---

org.apache.commons.jelly.impl.ScriptBlock

91%

100%

1

     /*

2

      * Copyright 2002,2004 The Apache Software Foundation.

3

      *

4

      * Licensed under the Apache License, Version 2.0 (the "License");

5

      * you may not use this file except in compliance with the License.

6

      * You may obtain a copy of the License at

7

      *

8

      *      http://www.apache.org/licenses/LICENSE-2.0

9

      *

10

      * Unless required by applicable law or agreed to in writing, software

11

      * distributed under the License is distributed on an "AS IS" BASIS,

12

      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

13

      * See the License for the specific language governing permissions and

14

      * limitations under the License.

15

      */

16

     package org.apache.commons.jelly.impl;

17

18

     import java.util.ArrayList;

19

     import java.util.Iterator;

20

     import java.util.List;

21

22

     import org.apache.commons.jelly.JellyContext;

23

     import org.apache.commons.jelly.JellyException;

24

     import org.apache.commons.jelly.JellyTagException;

25

     import org.apache.commons.jelly.Script;

26

     import org.apache.commons.jelly.XMLOutput;

27

28

     /** <p><code>ScriptBlock</code> a block of scripts.</p>

29

       *

30

       * @author <a href="mailto:jstrachan@apache.org">James Strachan</a>

31

       * @version $Revision: 155420 $

32

       */

33

     public class ScriptBlock implements Script {

34

35

         /** The list of scripts */

36

21203

         private List list = new ArrayList();

37

38

         /**

39

          * Create a new instance.

40

          */

41

21203

         public ScriptBlock() {

42

21203

         }

43

44

         /**

45

          * @see Object#toString()

46

          */

47

         public String toString() {

48

0

             return super.toString() + "[scripts=" + list + "]";

49

         }

50

51

         /** Add a new script to the end of this block */

52

         public void addScript(Script script) {

53

48373

             list.add(script);

54

48373

         }

55

56

         /** Removes a script from this block */

57

         public void removeScript(Script script) {

58

0

             list.remove(script);

59

0

         }

60

61

         /**

62

          * Gets the child scripts that make up this block. This list is live

63

          * so that it can be modified if requried

64

          */

65

         public List getScriptList() {

66

4290

             return list;

67

         }

68

69

         // Script interface

70

         //-------------------------------------------------------------------------

71

         public Script compile() throws JellyException {

72

21086

             int size = list.size();

73

21086

             if (size == 1) {

74

3926

                 Script script = (Script) list.get(0);

75

3926

                 return script.compile();

76

             }

77

             // now compile children

78

61516

             for (int i = 0; i < size; i++) {

79

44356

                 Script script = (Script) list.get(i);

80

44356

                 list.set(i, script.compile());

81

             }

82

17160

             return this;

83

         }

84

85

         /** Evaluates the body of a tag */

86

         public void run(JellyContext context, XMLOutput output) throws JellyTagException {

87

     /*

88

             for (int i = 0, size = scripts.length; i < size; i++) {

89

                 Script script = scripts[i];

90

                 script.run(context, output);

91

             }

92

     */

93

5993

             for (Iterator iter = list.iterator(); iter.hasNext(); ) {

94

12675

                 Script script = (Script) iter.next();

95

12675

                 script.run(context, output);

96

12129

             }

97

5447

         }

98

99

         /**

100

          * Trim the body of the script.

101

          * In this case, trim all elements, removing any that are empty text.

102

          */

103

         public void trimWhitespace() {

104

4225

             List list = getScriptList();

105

24258

             for ( int i = list.size() - 1; i >= 0; i-- ) {

106

20033

                 Script script = (Script) list.get(i);

107

20033

                 if ( script instanceof TextScript ) {

108

11401

                     TextScript textScript = (TextScript) script;

109

11401

                     String text = textScript.getText();

110

11401

                     text = text.trim();

111

11401

                     if ( text.length() == 0 ) {

112

11336

                         list.remove(i);

113

11336

                     }

114

                     else {

115

65

                         textScript.setText(text);

116

                     }

117

                 }

118

             }

119

4225

         }

120

     }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.