Project Report: fawkez

Packagesummary org.jcoderz.commons.taskdefs

org.jcoderz.commons.taskdefs.LogMessageGenerator

LineHitsNoteSource
1  /*
2   * $Id: LogMessageGenerator.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons.taskdefs;
34  
35  import javax.xml.transform.Transformer;
36  
37  import org.apache.tools.ant.BuildException;
38  
39  
40  /**
41   * Ant task that generates classes out of the log message info XML document.
42   * <p>
43   * Documentation of this Ant task can be found in
44   * {@link org.jcoderz.commons.taskdefs}.
45   *
46   * @author Michael Griffel
47   */
48100 public final class LogMessageGenerator
49        extends XsltBasedTask
50  {
51     /** The default stylesheet name. */
52     private static final String DEFAULT_STYLESHEET
53           = "generate-log-message-info.xsl";
54  
55     /** The application name. */
56100    private String mApplication = null;
57  
58     /**
59      * The custom logger class to generate log messages for.
60      * A possible valid value is 'java.util.logging.Logger'.
61      */
62100    private String mCustomLoggerClass = null;
63  
64     /**
65      * Shall the log messages get a .log() method that uses the
66      * logger of the LoggableImpl to log the messages to?
67      */
68100    private Boolean mAllowUseOfBaseLogger = null;
69  
70     /**
71      * Sets the custom logger class to generate log messages for.
72      * A possible valid value is 'java.util.logging.Logger'.
73      * @param className the name of the custom logger
74      */
75     public void setCustomLoggerClass (String className)
76     {
770        mCustomLoggerClass = className;
780    }
79  
80     /**
81      * Sets whether the log messages get a .log() method that uses the
82      * logger of the LoggableImpl to log the messages to?
83      * @param allow the flag value to be set.
84      */
85     public void setAllowUseOfBaseLogger (boolean allow)
86     {
870        mAllowUseOfBaseLogger = Boolean.valueOf(allow);
880    }
89  
90     /**
91      * Sets the application (short) name. This parameter is required.
92      * @param s The application (short) name.
93      */
94     public void setApplication (String s)
95     {
96100       mApplication = s;
97100    }
98  
99     /** {@inheritDoc} */
100     String getDefaultStyleSheet ()
101     {
102100       return DEFAULT_STYLESHEET;
103     }
104  
105     /** {@inheritDoc} */
106     void setAdditionalTransformerParameters (Transformer transformer)
107     {
108100       transformer.setParameter("application-short-name", mApplication);
109100       transformer.setParameter("application-name", mApplication);
110100       if (mAllowUseOfBaseLogger != null)
111        {
1120           transformer.setParameter("allow-use-of-base-logger",
113                mAllowUseOfBaseLogger);
114        }
115100       if (mCustomLoggerClass != null)
116        {
1170           transformer.setParameter("custom-logger-class",
118                mCustomLoggerClass);
119        }
120100    }
121  
122     /** {@inheritDoc} */
123     void checkAttributes ()
124           throws BuildException
125     {
126100       super.checkAttributes();
127  
128100       if (mApplication == null)
129        {
130100          throw new BuildException(
131                 "Missing mandatory attribute 'application'.", getLocation());
132        }
133  
134100    }
135  }

Findings in this File