code: public static String getResourceFolderPath(ResourceType type) {
          String cachePath = getSystemConfiguration().getCacheDirectory()
                  .getAbsolutePath();
  
          File cacheDir = new File(cachePath);
          if (!cacheDir.exists()) {
              throw new IllegalStateException(
                      "The system configuration's cache directory - "
                              + cacheDir.getAbsolutePath() + " - does not exist.");
          }
  
          if (!cacheDir.canRead()) {
              throw new IllegalStateException(
                      "The system configuration's cache directory - "
                              + cacheDir.getAbsolutePath()
                              + " - is not readable.");
          }
  
          if (!cacheDir.canWrite()) {
              throw new IllegalStateException(
                      "The system configuration's cache directory - "
                              + cacheDir.getAbsolutePath()
                              + " - is not writable.");
          }
  
          StringBuilder resourceFolderPath = new StringBuilder();
          resourceFolderPath.append(cachePath);
  
          if (!cachePath.endsWith("/")) {
              resourceFolderPath.append(File.separator);
          }
  
          resourceFolderPath.append(type.getResourceFolderName());
          return resourceFolderPath.toString();
      }
docs: Returns the absolute path for the sub-directory resource folder using
  the cache directory provided by
  {@link SystemConfiguration#getCacheDirectory()}.
  
  <p>
  If the sub-directory resource folder does not exist it will be created.
  </p>
  
  <p>
  If the {@link SystemConfiguration} object's cache directory does not
  exist or the {@link SystemConfiguration} has not been created then an
  {@link IllegalStateException} will be thrown.
  </p>
  
  @return {@link String}, the absolute path for the sub-directory resource
  folder
  @throws IllegalStateException Thrown if the {@link SystemConfiguration}
  object's cache directory does not exist, is not readable, is not writable,
  or if the {@link SystemConfiguration} has not been created yet.