Project Report: fawkez

Packagesummary org.jcoderz.commons.taskdefs

org.jcoderz.commons.taskdefs.ConfigurationInitFileGenerator

LineHitsNoteSource
1  /*
2   * $Id: ConfigurationInitFileGenerator.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 java.io.File;
36  
37  import javax.xml.transform.Transformer;
38  
39  import org.apache.tools.ant.BuildException;
40  import org.jcoderz.commons.util.Constants;
41  
42  /**
43   * Ant task that generates the configuration initialization files
44   * out of an XML document.
45   * <p>
46   * Documentation of this Ant task can be found in
47   * {@link org.jcoderz.commons.taskdefs}.
48   *
49   * @author Michael Griffel
50   */
510 public final class ConfigurationInitFileGenerator
52        extends XsltBasedTask
53  {
54     /** The default stylesheet name. */
55     private static final String DEFAULT_STYLESHEET
56           = "generate-config-init-file.xsl";
57  
58     /** The application name. */
590    private String mApplication = null;
60     /** The group short names. */
610    private String mGroups = null;
62     /** The mode. */
630    private String mMode = "PROPERTIES";
64  
65     /**
66      * Sets the application (short) name. This parameter is required.
67      * @param s The application (short) name.
68      */
69     public void setApplication (String s)
70     {
710       mApplication = s;
720    }
73  
74     /**
75      * Sets the group short names. This parameter is required.
76      * @param s The group short names.
77      */
78     public void setGroups (String s)
79     {
800       mGroups = s;
810    }
82  
83     /**
84      * Sets the mode. This parameter is optional.
85      * @param s The group short names.
86      */
87     public void setMode (String s)
88     {
890       mMode = s.toUpperCase(Constants.SYSTEM_LOCALE);
900    }
91  
92     /** {@inheritDoc} */
93     String getDefaultStyleSheet ()
94     {
950       return DEFAULT_STYLESHEET;
96     }
97  
98     /** {@inheritDoc} */
99     void setAdditionalTransformerParameters (Transformer transformer)
100     {
1010       transformer.setParameter("application-short-name", mApplication);
1020       transformer.setParameter("application-name", mApplication);
1030       transformer.setParameter("group-short-name", mGroups);
1040       transformer.setParameter("mode", mMode);
1050    }
106  
107     /** {@inheritDoc} */
108     void checkAttributes ()
109           throws BuildException
110     {
111        // fake destDir
1120       setDestdir(new File("."));
113  
1140       super.checkAttributes();
115  
1160       if (mApplication == null)
117        {
1180          throw new BuildException(
119                 "Missing mandatory attribute 'application'.", getLocation());
120        }
1210       if (mGroups == null)
122        {
1230          throw new BuildException(
124                 "Missing mandatory attribute 'groups'.", getLocation());
125        }
126  
1270    }
128  
129  }

Findings in this File