code: public final SrcGen4JConfig init(@NotNull final SrcGen4JContext context, @NotNull @FileExists @IsDirectory final File rootDir) {
  
          Contract.requireArgNotNull("context", context);
          Contract.requireArgNotNull(ROOT_DIR_VAR, rootDir);
          FileExistsValidator.requireArgValid(ROOT_DIR_VAR, rootDir);
          IsDirectoryValidator.requireArgValid(ROOT_DIR_VAR, rootDir);
  
          initVarMap(rootDir);
          if (variables != null) {
              variables.init(varMap);
          }
          if (projects != null) {
              for (final Project project : projects) {
                  project.init(context, this, varMap);
              }
          }
          if (generators != null) {
              generators.init(context, this, varMap);
          }
          if (parsers != null) {
              parsers.init(context, this, varMap);
          }
          initialized = true;
          return this;
      }
docs: Initializes this object and it's childs.<br>
  <br>
  <b>CAUTION:</b> Elements contained in this configuration may be changed. If you serialize the object after calling this method the
  new state will be saved.
  
  @param context
  Current context.
  @param rootDir
  Root directory that is available as variable 'rootDir'.
  
  @return This instance.