src/aria/templates/ClassWriter.js
function (processStatement, processErrors) {
        /**
         * Callback used to process a single statement in the content
         * @type aria.core.CfgBeans:Callback
         * @protected
         */
        this._processStatement = processStatement;

        /**
         * Callback used to process errors
         * @type aria.core.CfgBeans:Callback
         * @protected
         */
        this._processErrors = processErrors;

        /**
         * Current indentation string. Used when writing a line
         * @type String
         * @protected
         */
        this._curindent = '';

        /**
         * Text used for indentation (null to disable)
         * @type String
         */
        this.indentUnit = ' ';

        /**
         * Counter for number of variables created. This is increased every time a new var statement is called and is
         * used as unique key.
         * @type Number
         * @protected
         */
        this._varNameNumber = 0;

        /**
         * Optional error context to be passed when logging errors
         * @type Object
         */
        this.errorContext = null;

        /**
         * if true, the dependencies section should even contain already loaded dependencies
         * @type Boolean
         */
        this.allDependencies = null;

        /**
         * Stores the template parameter
         * @type Object
         */
        this.templateParam = null;

        /**
         * Stores the parent class type
         * @type String
         */
        this.parentClassType = "JS";

        /**
         * Stores the parent class name
         * @type String
         */
        this.parentClassName = null;

        /**
         * Stores the parent classpath
         * @type String
         */
        this.parentClasspath = null;

        /**
         * Stores the script class name
         * @type String
         */
        this.scriptClassName = null;

        /**
         * Stores the script classpath
         * @type String
         */
        this.scriptClasspath = null;

        /**
         * Callback to call when generation is finished
         * @type aria.core.CfgBeans:Callback
         */
        this.callback = null;

        /**
         * Direct link to widget libraries
         * @type Object
         *
         * <pre>
         * {
         *     libName : libClasspath
         * }
         * </pre>
         */
        this.wlibs = {};

        /**
         * Map of declared macros
         * @type Object
         *
         * <pre>
         * {
         *     macroName : {
         *         definition : statement
         *     }
         * }
         * </pre>
         */
        this.macros = {};

        /**
         * Map of declared views
         * @type Object
         *
         * <pre>
         * {
         *    viewName : {
         *       firstDefinition : statement,
         *       nbParams : numberOfParameters
         *    }
         * }
         * </pre>
         */
        this.views = {};

        /**
         * Current working output block
         * @type Object
         * @protected
         */
        this._curblock = null;

        /**
         * Map of possible output block
         * @type Object
         *
         * <pre>
         * {
         *    blockName : {
         *       curindentnbr : indent,
         *       out : []
         *    }
         * }
         * </pre>
         *
         * @protected
         */
        this._blocks = {};

        /**
         * Stack of output blocks
         * @type Array
         * @protected
         */
        this._stack = [];

        /**
         * Map of dependencies found for the class to be generated
         * @protected
         */
        this._dependencies = {};

        /**
         * Contains information about errors which occured during the generation process. If the processErrors callback
         * is provided, the errors property contains a boolean indicating whether errors occurred or not. If the
         * processErrors callback is not provided, the errors property is null if no error occured, otherwise, it
         * contains the array of errors.
         */
        this.errors = processErrors ? false : null;

        /**
         * Indicates if the writer has a mirror debug writer
         * @type Boolean
         */
        this.debug = false;

        /**
         * Tree structure generated by the parser
         * @type aria.templates.TreeBeans:Root
         */
        this.tree = null;

        /**
         * If set to true, code generation is disabled, only parsing matters.
         * @type Boolean
         */
        this.parseOnly = false;

        /**
         * If set to true, widget libraries will not be loaded during class generation.
         * @type Boolean
         */
        this.dontLoadWidgetLibs = false;
    }
function (processStatement, processErrors) {
        /**
         * Callback used to process a single statement in the content
         * @type aria.core.CfgBeans:Callback
         * @protected
         */
        this._processStatement = processStatement;

        /**
         * Callback used to process errors
         * @type aria.core.CfgBeans:Callback
         * @protected
         */
        this._processErrors = processErrors;

        /**
         * Current indentation string. Used when writing a line
         * @type String
         * @protected
         */
        this._curindent = '';

        /**
         * Text used for indentation (null to disable)
         * @type String
         */
        this.indentUnit = ' ';

        /**
         * Counter for number of variables created. This is increased every time a new var statement is called and is
         * used as unique key.
         * @type Number
         * @protected
         */
        this._varNameNumber = 0;

        /**
         * Optional error context to be passed when logging errors
         * @type Object
         */
        this.errorContext = null;

        /**
         * if true, the dependencies section should even contain already loaded dependencies
         * @type Boolean
         */
        this.allDependencies = null;

        /**
         * Stores the template parameter
         * @type Object
         */
        this.templateParam = null;

        /**
         * Stores the parent class type
         * @type String
         */
        this.parentClassType = "JS";

        /**
         * Stores the parent class name
         * @type String
         */
        this.parentClassName = null;

        /**
         * Stores the parent classpath
         * @type String
         */
        this.parentClasspath = null;

        /**
         * Stores the script class name
         * @type String
         */
        this.scriptClassName = null;

        /**
         * Stores the script classpath
         * @type String
         */
        this.scriptClasspath = null;

        /**
         * Callback to call when generation is finished
         * @type aria.core.CfgBeans:Callback
         */
        this.callback = null;

        /**
         * Direct link to widget libraries
         * @type Object
         *
         * <pre>
         * {
         *     libName : libClasspath
         * }
         * </pre>
         */
        this.wlibs = {};

        /**
         * Map of declared macros
         * @type Object
         *
         * <pre>
         * {
         *     macroName : {
         *         definition : statement
         *     }
         * }
         * </pre>
         */
        this.macros = {};

        /**
         * Map of declared views
         * @type Object
         *
         * <pre>
         * {
         *    viewName : {
         *       firstDefinition : statement,
         *       nbParams : numberOfParameters
         *    }
         * }
         * </pre>
         */
        this.views = {};

        /**
         * Current working output block
         * @type Object
         * @protected
         */
        this._curblock = null;

        /**
         * Map of possible output block
         * @type Object
         *
         * <pre>
         * {
         *    blockName : {
         *       curindentnbr : indent,
         *       out : []
         *    }
         * }
         * </pre>
         *
         * @protected
         */
        this._blocks = {};

        /**
         * Stack of output blocks
         * @type Array
         * @protected
         */
        this._stack = [];

        /**
         * Map of dependencies found for the class to be generated
         * @protected
         */
        this._dependencies = {};

        /**
         * Contains information about errors which occured during the generation process. If the processErrors callback
         * is provided, the errors property contains a boolean indicating whether errors occurred or not. If the
         * processErrors callback is not provided, the errors property is null if no error occured, otherwise, it
         * contains the array of errors.
         */
        this.errors = processErrors ? false : null;

        /**
         * Indicates if the writer has a mirror debug writer
         * @type Boolean
         */
        this.debug = false;

        /**
         * Tree structure generated by the parser
         * @type aria.templates.TreeBeans:Root
         */
        this.tree = null;

        /**
         * If set to true, code generation is disabled, only parsing matters.
         * @type Boolean
         */
        this.parseOnly = false;

        /**
         * If set to true, widget libraries will not be loaded during class generation.
         * @type Boolean
         */
        this.dontLoadWidgetLibs = false;
    }
function ( processStatement , processErrors ) { /**
         * Callback used to process a single statement in the content
         * @type aria.core.CfgBeans:Callback
         * @protected
         */ this . _processStatement = processStatement ; /**
         * Callback used to process errors
         * @type aria.core.CfgBeans:Callback
         * @protected
         */ this . _processErrors = processErrors ; /**
         * Current indentation string. Used when writing a line
         * @type String
         * @protected
         */ this . _curindent = '' ; /**
         * Text used for indentation (null to disable)
         * @type String
         */ this . indentUnit = ' ' ; /**
         * Counter for number of variables created. This is increased every time a new var statement is called and is
         * used as unique key.
         * @type Number
         * @protected
         */ this . _varNameNumber = 0 ; /**
         * Optional error context to be passed when logging errors
         * @type Object
         */ this . errorContext = null ; /**
         * if true, the dependencies section should even contain already loaded dependencies
         * @type Boolean
         */ this . allDependencies = null ; /**
         * Stores the template parameter
         * @type Object
         */ this . templateParam = null ; /**
         * Stores the parent class type
         * @type String
         */ this . parentClassType = "JS" ; /**
         * Stores the parent class name
         * @type String
         */ this . parentClassName = null ; /**
         * Stores the parent classpath
         * @type String
         */ this . parentClasspath = null ; /**
         * Stores the script class name
         * @type String
         */ this . scriptClassName = null ; /**
         * Stores the script classpath
         * @type String
         */ this . scriptClasspath = null ; /**
         * Callback to call when generation is finished
         * @type aria.core.CfgBeans:Callback
         */ this . callback = null ; /**
         * Direct link to widget libraries
         * @type Object
         *
         * <pre>
         * {
         *     libName : libClasspath
         * }
         * </pre>
         */ this . wlibs = { } ; /**
         * Map of declared macros
         * @type Object
         *
         * <pre>
         * {
         *     macroName : {
         *         definition : statement
         *     }
         * }
         * </pre>
         */ this . macros = { } ; /**
         * Map of declared views
         * @type Object
         *
         * <pre>
         * {
         *    viewName : {
         *       firstDefinition : statement,
         *       nbParams : numberOfParameters
         *    }
         * }
         * </pre>
         */ this . views = { } ; /**
         * Current working output block
         * @type Object
         * @protected
         */ this . _curblock = null ; /**
         * Map of possible output block
         * @type Object
         *
         * <pre>
         * {
         *    blockName : {
         *       curindentnbr : indent,
         *       out : []
         *    }
         * }
         * </pre>
         *
         * @protected
         */ this . _blocks = { } ; /**
         * Stack of output blocks
         * @type Array
         * @protected
         */ this . _stack = [ ] ; /**
         * Map of dependencies found for the class to be generated
         * @protected
         */ this . _dependencies = { } ; /**
         * Contains information about errors which occured during the generation process. If the processErrors callback
         * is provided, the errors property contains a boolean indicating whether errors occurred or not. If the
         * processErrors callback is not provided, the errors property is null if no error occured, otherwise, it
         * contains the array of errors.
         */ this . errors = processErrors ? false : null ; /**
         * Indicates if the writer has a mirror debug writer
         * @type Boolean
         */ this . debug = false ; /**
         * Tree structure generated by the parser
         * @type aria.templates.TreeBeans:Root
         */ this . tree = null ; /**
         * If set to true, code generation is disabled, only parsing matters.
         * @type Boolean
         */ this . parseOnly = false ; /**
         * If set to true, widget libraries will not be loaded during class generation.
         * @type Boolean
         */ this . dontLoadWidgetLibs = false ; }
Create a Class Writer instance
@param {aria.core.CfgBeans:Callback} processStatement Callback used to process a single statement in the content
@param {aria.core.CfgBeans:Callback} processErrors Callback used to process errors. Can be omitted for default
error processing (appending errors to the errors array)
Create a Class Writer instance