code: public File getDir() {
  		if (this.dir == null) {
  			synchronized (this) {
  				byte[] hash = generateHash(this.sourceClass);
  				this.dir = new File(getTempDirectory(), toHexString(hash));
  				this.dir.mkdirs();
  				Assert.state(this.dir.exists(),
  						() -> "Unable to create temp directory " + this.dir);
  			}
  		}
  		return this.dir;
  	}
docs: Return the directory to be used for application specific temp files.
  @return the application temp directory