Coverage report

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

org.apache.commons.jelly.tags.core.GetStaticTag

83%

97%

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.tags.core;

17

18

     import org.apache.commons.jelly.JellyContext;

19

     import org.apache.commons.jelly.JellyTagException;

20

     import org.apache.commons.jelly.MissingAttributeException;

21

     import org.apache.commons.jelly.TagSupport;

22

     import org.apache.commons.jelly.XMLOutput;

23

     import org.apache.commons.jelly.util.ClassLoaderUtils;

24

25

26

     /**

27

      * A tag which can retrieve the value of a static field of a given class.

28

      * The following attributes are required:<br />

29

      * <ul>

30

      *   <li>var - The variable to which to assign the resulting value.</li>

31

      *   <li>field - The name of the static field to retrieve.</li>

32

      *   <li>className - The name of the class containing the static field.</li>

33

      * </ul>

34

      *

35

      * Example usage:

36

      * <pre>

37

      * &lt;j:getStatic var="closeOperation" className="javax.swing.JFrame"

38

      *              field="EXIT_ON_CLOSE"/&gt;

39

      * </pre>

40

      *

41

      * @version $Revision: 155420 $

42

      */

43

44

26

     public class GetStaticTag extends TagSupport {

45

46

         /** The variable to which to assign the resulting value. */

47

         private String var;

48

49

         /** The name of the static field to retrieve. */

50

         private String field;

51

52

         /** The name of the class containing the static field. */

53

         private String className;

54

55

56

         /**

57

          * Sets the name of the variable exported by this tag.

58

          *

59

          * @param var The variable name.

60

          */

61

62

         public void setVar(String var) {

63

26

             this.var = <span class="keyword">var;

64

26

         }

65

66

67

         /**

68

          * Sets the name of the field to retrieve.

69

          *

70

          * @param method The method name

71

          */

72

73

         public void setField(String field) {

74

26

             this.field = field;

75

26

         }

76

77

78

         /**

79

          * Sets the fully qualified name of the class containing the static field.

80

          *

81

          * @param className The name of the class.

82

          */

83

84

         public void setClassName(String className) {

85

26

             this.className = className;

86

26

         }

87

88

89

         // Tag interface

90

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

91

92

         public void doTag(XMLOutput output) throws JellyTagException {

93

26

             String message = null;

94

95

26

             if(var == null)

96

0

                 message = "var";

97

26

             else if(field == null)

98

0

                 message = "field";

99

26

             else if(className == null)

100

0

                 message = "className";

101

102

26

             if(message != null)

103

0

                 throw new MissingAttributeException(message);

104

105

             try {

106

26

                 Class type     = ClassLoaderUtils.getClassLoader(getClass()).loadClass(className);

107

26

                 Object result  = type.getField(field).get(null);

108

13

                 JellyContext context = getContext();

109

110

13

                 context.setVariable(var, result);

111

112

13

             } catch(Throwable t) {

113

13

                 throw

114

                     new JellyTagException("Could not access " + className + "." +

115

                                           var + ".  Original exception message: " +

116

                                           t.getMessage(), t);

117

13

             }

118

13

         }

119

120

     }

121

122

123

     /* Emacs configuration

124

      * Local variables:        **

125

      * mode:             java  **

126

      * c-basic-offset:   4     **

127

      * indent-tabs-mode: nil   **

128

      * End:                    **

129

      */

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