ModelBuilder
Date: 2017-03-29

com.thoughtworks.qdox.model

## Class ModelBuilder

- java.lang.Object
- - com.thoughtworks.qdox.model.ModelBuilder

- All Implemented Interfaces:
    Builder

      public class ModelBuilder
      extends java.lang.Object
      implements Builder

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ModelBuilder()`
    `ModelBuilder(JavaClassContext context, DocletTagFactory docletTagFactory, java.util.Map allPackages)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAnnotation(Annotation annotation)`
    `void` | `addField(FieldDef def)`
    `void` | `addImport(java.lang.String importName)`
    `void` | `addJavaDoc(java.lang.String text)`
    `void` | `addJavaDocTag(TagDef tagDef)`
    `void` | `addMethod(MethodDef def)`
    `void` | `addPackage(PackageDef packageDef)`
    `void` | `addParameter(FieldDef fieldDef)`
    `void` | `beginClass(ClassDef def)`
    `void` | `beginMethod()`
    `Type` | `createType(java.lang.String typeName, int dimensions)`
    `Type` | `createType(TypeDef typeDef)`
    `Type` | `createType(TypeDef typeDef, int dimensions)` this one is specific for those cases where dimensions can be part of both the type and identifier i.e.
    `TypeVariable` | `createTypeVariable(java.lang.String name, java.util.List typeParams)`
    `TypeVariable` | `createTypeVariable(TypeVariableDef typeVariableDef)`
    `void` | `endClass()`
    `void` | `endMethod(MethodDef def)`
    `JavaSource` | `getSource()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ModelBuilder

          public ModelBuilder()

    - #### ModelBuilder

          public ModelBuilder(JavaClassContext context,
                      DocletTagFactory docletTagFactory,
                      java.util.Map allPackages)

  - ### Method Detail

    - #### addPackage

          public void addPackage(PackageDef packageDef)

      Specified by:
        `addPackage` in interface `Builder`

    - #### addImport

          public void addImport(java.lang.String importName)

      Specified by:
        `addImport` in interface `Builder`

    - #### addJavaDoc

          public void addJavaDoc(java.lang.String text)

      Specified by:
        `addJavaDoc` in interface `Builder`

    - #### addJavaDocTag

          public void addJavaDocTag(TagDef tagDef)

      Specified by:
        `addJavaDocTag` in interface `Builder`

    - #### beginClass

          public void beginClass(ClassDef def)

      Specified by:
        `beginClass` in interface `Builder`

    - #### endClass

          public void endClass()

      Specified by:
        `endClass` in interface `Builder`

    - #### createType

          public Type createType(java.lang.String typeName,
                        int dimensions)

      Specified by:
        `createType` in interface `Builder`

    - #### createType

          public Type createType(TypeDef typeDef)

      Specified by:
        `createType` in interface `Builder`

    - #### createType

          public Type createType(TypeDef typeDef,
                        int dimensions)

      this one is specific for those cases where dimensions can be part of both the type and identifier i.e. private String[] matrix[]; //field public abstract String[] getMatrix[](); //method
      Parameters:
        `typeDef` -
        `dimensions` -
      Returns:
        the Type

    - #### addMethod

          public void addMethod(MethodDef def)

    - #### beginMethod

          public void beginMethod()

      Specified by:
        `beginMethod` in interface `Builder`

    - #### endMethod

          public void endMethod(MethodDef def)

      Specified by:
        `endMethod` in interface `Builder`

    - #### createTypeVariable

          public TypeVariable createTypeVariable(TypeVariableDef typeVariableDef)

    - #### createTypeVariable

          public TypeVariable createTypeVariable(java.lang.String name,
                                        java.util.List typeParams)

    - #### addField

          public void addField(FieldDef def)

      Specified by:
        `addField` in interface `Builder`

    - #### addParameter

          public void addParameter(FieldDef fieldDef)

      Specified by:
        `addParameter` in interface `Builder`

    - #### addAnnotation

          public void addAnnotation(Annotation annotation)

      Specified by:
        `addAnnotation` in interface `Builder`

    - #### getSource

          public JavaSource getSource()