whole_func_string: function() {
        var t = this;
  
        var p;
        if (!this.__opened) {
          this.__opened = true;
  
          var resManager = null;
          if (this.isProcessResources()) {
            resManager = new qx.tool.compiler.resources.Manager(this);
          }
          this.__resManager = resManager;
          p = Promise.all(
              [ 
                util.promisifyThis(t.loadDatabase, t),
                new Promise((resolve, reject) => {
                  if (resManager) {
                    log.debug("Loading resource database");
                    return util.promisifyThis(resManager.loadDatabase, resManager)
                      .then(resolve)
                      .catch(reject);
                  }
                  resolve();
                  return undefined;
                })
              ]);
        } else {
          p = Promise.resolve(); 
        }
  
        return p.then(() => {
            log.debug("Scanning source code");
            return util.promisifyThis(t.initialScan, t);
          })
          .then(() => {
            log.debug("Saving database");
            return t.saveDatabase();
          });
      }
func_code_string: function() {
        var t = this;
  
        var p;
        if (!this.__opened) {
          this.__opened = true;
  
          var resManager = null;
          if (this.isProcessResources()) {
            resManager = new qx.tool.compiler.resources.Manager(this);
          }
          this.__resManager = resManager;
          p = Promise.all(
              [ 
                util.promisifyThis(t.loadDatabase, t),
                new Promise((resolve, reject) => {
                  if (resManager) {
                    log.debug("Loading resource database");
                    return util.promisifyThis(resManager.loadDatabase, resManager)
                      .then(resolve)
                      .catch(reject);
                  }
                  resolve();
                  return undefined;
                })
              ]);
        } else {
          p = Promise.resolve(); 
        }
  
        return p.then(() => {
            log.debug("Scanning source code");
            return util.promisifyThis(t.initialScan, t);
          })
          .then(() => {
            log.debug("Saving database");
            return t.saveDatabase();
          });
      }
func_documentation_string: Opens the analyser, loads database etc
  
  @async