org.codehaus.mojo.jaxb2.helpers
Class SchemagenHelper

java.lang.Object
  extended by org.codehaus.mojo.jaxb2.helpers.SchemagenHelper

public final class SchemagenHelper
extends Object

Utility class holding algorithms used by the AbstractSchemagenMojo and decendents.

Author:
Lennart Jörelid

Constructor Summary
SchemagenHelper()
           
 
Method Summary
static Map<String,SimpleNamespaceResolver> getFileNameToResolverMap(File outputDirectory)
          Acquires a map relating generated schema filename to its SimpleNamespaceResolver.
protected static String getHumanReadableXml(Node node)
          Converts the provided DOM Node to a pretty-printed XML-formatted string.
static Document parseXmlStream(Reader xmlStream)
          Parses the provided InputStream to create a dom Document.
static void process(Node node, boolean recurseToChildren, NodeProcessor visitor)
          Drives the supplied visitor to process the provided Node and all its children, should the recurseToChildren flag be set to true.
static void renameGeneratedSchemaFiles(Map<String,SimpleNamespaceResolver> resolverMap, List<TransformSchema> configuredTransformSchemas, org.apache.maven.plugin.logging.Log mavenLog, File schemaDirectory)
          Updates all schemaLocation attributes within the generated schema files to match the 'file' properties within the Schemas read from the plugin configuration.
static void replaceNamespacePrefixes(Map<String,SimpleNamespaceResolver> resolverMap, List<TransformSchema> configuredTransformSchemas, org.apache.maven.plugin.logging.Log mavenLog, File schemaDirectory)
          Replaces all namespaces within generated schema files, as instructed by the configured Schema instances.
static void validateSchemasInPluginConfiguration(List<TransformSchema> configuredTransformSchemas)
          Validates that the list of Schemas provided within the configuration all contain unique values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SchemagenHelper

public SchemagenHelper()
Method Detail

getFileNameToResolverMap

public static Map<String,SimpleNamespaceResolver> getFileNameToResolverMap(File outputDirectory)
                                                                    throws org.apache.maven.plugin.MojoExecutionException
Acquires a map relating generated schema filename to its SimpleNamespaceResolver.

Parameters:
outputDirectory - The output directory of the generated schema files.
Returns:
a map relating generated schema filename to an initialized SimpleNamespaceResolver.
Throws:
org.apache.maven.plugin.MojoExecutionException - if two generated schema files used the same namespace URI.

validateSchemasInPluginConfiguration

public static void validateSchemasInPluginConfiguration(List<TransformSchema> configuredTransformSchemas)
                                                 throws org.apache.maven.plugin.MojoExecutionException
Validates that the list of Schemas provided within the configuration all contain unique values. Should a MojoExecutionException be thrown, it contains informative text about the exact nature of the configuration problem - we should simplify for all plugin users.

Parameters:
configuredTransformSchemas - The List of configuration schemas provided to this mojo.
Throws:
org.apache.maven.plugin.MojoExecutionException - if any two configuredSchemas instances contain duplicate values for any of the properties uri, prefix or file. Also throws a MojoExecutionException if the uri of any Schema is null or empty, or if none of the 'file' and 'prefix' properties are given within any of the configuredSchema instances.

replaceNamespacePrefixes

public static void replaceNamespacePrefixes(Map<String,SimpleNamespaceResolver> resolverMap,
                                            List<TransformSchema> configuredTransformSchemas,
                                            org.apache.maven.plugin.logging.Log mavenLog,
                                            File schemaDirectory)
                                     throws org.apache.maven.plugin.MojoExecutionException
Replaces all namespaces within generated schema files, as instructed by the configured Schema instances.

Parameters:
resolverMap - The map relating generated schema file name to SimpleNamespaceResolver instances.
configuredTransformSchemas - The Schema instances read from the configuration of this plugin.
mavenLog - The active Log.
schemaDirectory - The directory where all generated schema files reside.
Throws:
org.apache.maven.plugin.MojoExecutionException - If the namespace replacement could not be done.

renameGeneratedSchemaFiles

public static void renameGeneratedSchemaFiles(Map<String,SimpleNamespaceResolver> resolverMap,
                                              List<TransformSchema> configuredTransformSchemas,
                                              org.apache.maven.plugin.logging.Log mavenLog,
                                              File schemaDirectory)
Updates all schemaLocation attributes within the generated schema files to match the 'file' properties within the Schemas read from the plugin configuration. After that, the files are physically renamed.

Parameters:
resolverMap - The map relating generated schema file name to SimpleNamespaceResolver instances.
configuredTransformSchemas - The Schema instances read from the configuration of this plugin.
mavenLog - The active Log.
schemaDirectory - The directory where all generated schema files reside.

process

public static void process(Node node,
                           boolean recurseToChildren,
                           NodeProcessor visitor)
Drives the supplied visitor to process the provided Node and all its children, should the recurseToChildren flag be set to true. All attributes of the current node are processed before recursing to children (i.e. breadth first recursion).

Parameters:
node - The Node to process.
recurseToChildren - if true, processes all children of the supplied node recursively.
visitor - The NodeProcessor instance which should process the nodes.

parseXmlStream

public static Document parseXmlStream(Reader xmlStream)
Parses the provided InputStream to create a dom Document.

Parameters:
xmlStream - An InputStream connected to an XML document.
Returns:
A DOM Document created from the contents of the provided stream.

getHumanReadableXml

protected static String getHumanReadableXml(Node node)
Converts the provided DOM Node to a pretty-printed XML-formatted string.

Parameters:
node - The Node whose children should be converted to a String.
Returns:
a pretty-printed XML-formatted string.


Copyright © 2005-2012 Codehaus. All Rights Reserved.