org.skeletor.generator.container
Class ContainerGenerator

java.lang.Object
  |
  +--org.skeletor.generator.container.ContainerGenerator
All Implemented Interfaces:
Generator

public class ContainerGenerator
extends java.lang.Object
implements Generator

Container class generator implementation.

Version:
$Name: $ $Revision: 1.10 $
Author:
Matti Dahlbom

Constructor Summary
ContainerGenerator()
           
 
Method Summary
private  java.lang.String capitolize(java.lang.String s)
          Capitolizes first letter of a string.
private  java.lang.String decapitolize(java.lang.String s)
          Decapitolizes first letter of a string.
private  java.util.Collection doGenerate(java.util.Vector v, int indent, boolean useCvsTags, boolean useJavadocTags, java.lang.String className, java.lang.String packageName)
          Performs the actual generation.
 java.util.Collection generate(GeneratorContext ctxt, org.w3c.dom.Node rootNode)
          Generates container class with the instance variables for the class as the input.
private  java.lang.String generateAccessors(java.util.Vector v, int indent, boolean useCvsTags, boolean useJavadocTags)
          Generates code for accessor methods.
private  java.lang.String generateConstructor(java.util.Vector v, int indent, boolean useCvsTags, boolean useJavadocTags, java.lang.String className)
          Generates code for constructor.
private  java.lang.String generateHeaderInfo(java.util.Vector v, int indent, boolean useCvsTags, boolean useJavadocTags, java.lang.String className, java.lang.String packageName)
          Generates code for header information such as imports, package definition, class description etc.
private  java.lang.String generateInstanceVariables(java.util.Vector v, int indent, boolean useCvsTags, boolean useJavadocTags)
          Generates code for instance variables.
static ContainerGenerationVariable parseVariableNode(org.w3c.dom.Node node)
          Parses a node representing a variable.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Constructor Detail

ContainerGenerator

public ContainerGenerator()
Method Detail

generate

public java.util.Collection generate(GeneratorContext ctxt,
                                     org.w3c.dom.Node rootNode)
                              throws IllegalInputException
Generates container class with the instance variables for the class as the input.

Specified by:
generate in interface Generator
Parameters:
ctxt - Current GeneratorContext
rootNode - root node of the XML document
Returns:
parsing result as a Collection of ContainerGenerationResult objects
Throws:
IllegalInputException - if the input format is illegal

doGenerate

private java.util.Collection doGenerate(java.util.Vector v,
                                        int indent,
                                        boolean useCvsTags,
                                        boolean useJavadocTags,
                                        java.lang.String className,
                                        java.lang.String packageName)
Performs the actual generation.

Parameters:
a - Vector containing parameters as VariableDescriptor objects
indent - amount of indentation
useCvsTags - whether to generate CVS tags
useJavadocTags - whether to generate javadoc tags @author and @version
className - class name
packageName - package name
Returns:
generation result containing GenerationResult objects

capitolize

private java.lang.String capitolize(java.lang.String s)
Capitolizes first letter of a string.

Parameters:
input - string
Returns:
original string with first letter capitolized.

decapitolize

private java.lang.String decapitolize(java.lang.String s)
Decapitolizes first letter of a string.

Parameters:
input - string
Returns:
original string with first letter decapitolized.

generateAccessors

private java.lang.String generateAccessors(java.util.Vector v,
                                           int indent,
                                           boolean useCvsTags,
                                           boolean useJavadocTags)
Generates code for accessor methods.

Parameters:
a - Vector containing parameters as ContainerGenerationVariable objects
indent - amount of indentation
useCvsTags - whether to generate CVS tags
useJavadocTags - whether to generate javadoc tags @author and @version
Returns:
generation result

generateConstructor

private java.lang.String generateConstructor(java.util.Vector v,
                                             int indent,
                                             boolean useCvsTags,
                                             boolean useJavadocTags,
                                             java.lang.String className)
Generates code for constructor.

Parameters:
a - Vector containing parameters as ContainerGenerationVariable objects
indent - amount of indentation
useCvsTags - whether to generate CVS tags
useJavadocTags - whether to generate javadoc tags @author and @version
className -  
Returns:
generation result

generateInstanceVariables

private java.lang.String generateInstanceVariables(java.util.Vector v,
                                                   int indent,
                                                   boolean useCvsTags,
                                                   boolean useJavadocTags)
Generates code for instance variables.

Parameters:
a - Vector containing parameters as ContainerGenerationVariable objects
indent - amount of indentation
useCvsTags - whether to generate CVS tags
useJavadocTags - whether to generate javadoc tags @author and @version
Returns:
generation result

generateHeaderInfo

private java.lang.String generateHeaderInfo(java.util.Vector v,
                                            int indent,
                                            boolean useCvsTags,
                                            boolean useJavadocTags,
                                            java.lang.String className,
                                            java.lang.String packageName)
Generates code for header information such as imports, package definition, class description etc.

Parameters:
a - Vector containing parameters as ContainerGenerationVariable objects
indent - amount of indentation
useCvsTags - whether to generate CVS tags
useJavadocTags - whether to generate javadoc tags @author and @version
className - class name
packageName - package name
Returns:
generation result

parseVariableNode

public static ContainerGenerationVariable parseVariableNode(org.w3c.dom.Node node)
Parses a node representing a variable.

Parameters:
node - input node representing a variable
Returns:
parsed variable


Skeletor the Advanced Code Generation Tool