in maven2-plugins/myfaces-i18n-plugin/src/main/java/org/apache/myfaces/buildtools/maven2/plugin/i18n/uixtools/JSLocaleElementsGenerator.java [42:219]
public static void main(
String[] args
)
{
if ((args.length == 1) && ("?".equals(args[0])))
{
System.out.println("Generates JavaScript Locale information files");
System.out.println("for the Locales available in the JVM.");
System.out.println("These files are used by the Cabo HTML client");
System.out.println("logic to handle date formatting and validation.");
System.out.println();
System.out.println("Parameters:");
System.out.println("\tprettyPrint=false\tTurns off pretty printed output");
System.out.println("\toutDir=[path]\t\tDirectory path to write JavaScript files to");
System.out.println("\tsourceDir=[path]\t\tRoot directory path to write Java source to");
System.out.println(
"\tbundleOutDir=[path]\t\tRoot directory path to write " +
"Java ResourceBundles to (defaults to sourceDir).");
System.out.println(
"\tvariant=[variant name]\t\tIf supplied utility will generate " +
"ResourceBundles for this variant, and nothing else.");
System.out.println("\tverbose=true\t\tTurns on verbose output");
System.out.println("\tgenerateBundleBaseOnly=true\t\tGenerates the base LocaleElement.java file only");
System.exit(0);
}
// whether the output should be pretty printed for legibility
boolean prettyPrint = getArgBooleanValue(args, "prettyPrint", true);
// whether verbose ouput should be generated.
boolean verbose = getArgBooleanValue(args, "verbose", false);
boolean writeSource = getArgBooleanValue(args, "writeSource", true);
boolean writeJavascript = getArgBooleanValue(args, "writeJavascript", true);
// whether only the Base LocaleElements.java file should be created.
// this is based on the Locale.US
boolean generateBundleBaseOnly = getArgBooleanValue(args,"generateBundleBaseOnly",false);
// the output directory
String outDir = getArgStringValue(args, "outDir", null);
if (outDir == null)
{
outDir = System.getProperty("user.dir") +
File.separator +
_DEFAULT_LOCATION_PATH;
}
if (!outDir.endsWith(File.separator))
{
outDir = outDir + File.separator;
}
// the requested variant
String variant = getArgStringValue(args, "variant", null);
boolean writeAll = true;
if (variant != null)
{
writeAll = false;
variant = variant.toUpperCase();
}
// the source directory
String sourceDir = getArgStringValue(args, "sourceDir", null);
if (sourceDir == null)
{
sourceDir = System.getProperty("user.dir");
}
String bundleOutDir = getArgStringValue(args, "bundleOutDir", null);
if (bundleOutDir == null)
{
bundleOutDir = sourceDir;
}
// The bundle output dir is the base of the heirarchy, we'll actually put
// the files into the appropriate sub directory for the package.
String fullBundleOutDir = (bundleOutDir
+ (bundleOutDir.endsWith(File.separator)
? ""
: File.separator)
+ _DEFAULT_BUNDLE_LOCATION_PATH);
String version = getArgStringValue(args, "version", null);
version = VersionUtils.normalizeVersionSuffix(version);
if (verbose)
{
System.out.println("Writing files to: " + outDir);
if (writeAll)
{
System.out.println("Writing source to: " + sourceDir);
}
System.out.println("Writing bundles to: " + fullBundleOutDir);
}
try
{
File localeListFile = null;
if (writeSource)
{
(new File(fullBundleOutDir)).mkdirs();
}
if (writeJavascript)
{
(new File(outDir)).mkdirs();
}
if (writeAll && writeSource && !generateBundleBaseOnly)
{
localeListFile = new File(sourceDir, _LOCALE_LIST_PATH);
localeListFile.getParentFile().mkdirs();
localeListFile.createNewFile();
}
Locale[] locales = null;
if (generateBundleBaseOnly)
{
locales = new Locale[1];
locales[0] = Locale.US;
}
else
{
locales = Locale.getAvailableLocales();
}
//
// loop through the available Locales, writing their contents out
// as JavaScript libraries and/or ResourceBundles
//
for (int i = 0; i < locales.length; i++)
{
// write the JavaSCript library for this locale
_generateJSLocaleElements(outDir, fullBundleOutDir, locales[i],
variant, prettyPrint, verbose,
writeJavascript, writeSource, generateBundleBaseOnly, version);
}
// And write out a listing of all the locales, but not when we want to
// just generate the base Resource file.
if (writeAll && writeSource && !generateBundleBaseOnly)
{
Writer sourceWriter = new FileWriter(localeListFile);
sourceWriter.write(_LOCALE_LIST_CODE_START);
for (int i = 0; i < locales.length; i++)
{
sourceWriter.write(" new Locale(\"");
sourceWriter.write(locales[i].getLanguage());
sourceWriter.write("\",\"");
sourceWriter.write(locales[i].getCountry());
sourceWriter.write("\",\"");
sourceWriter.write(locales[i].getVariant());
sourceWriter.write("\"),\n");
}
sourceWriter.write(_LOCALE_LIST_CODE_END);
sourceWriter.close();
}
}
catch (IOException e)
{
System.err.println(e);
e.printStackTrace();
}
if (verbose)
{
System.out.println("Done writing files");
}
}