code: public static String dot2path(String qualifiedName, String fileExtension)
    {
      if(qualifiedName == null) {
        return null;
      }
      StringBuilder path = new StringBuilder();
      path.append(dot2path(qualifiedName));
      if(fileExtension != null) {
        if(fileExtension.charAt(0) != '.') {
          path.append('.');
        }
        path.append(fileExtension);
      }
      return path.toString();
    }
docs: Convert qualified name to platform specific path and add given extension. Uses {@link #dot2path(String)} to convert
  <code>qualifiedName</code> to file path then add give <code>fileExtension</code>. Is legal for
  <code>fileExtension</code> to start with dot.
  
  <pre>
  js.net.Transaction java -&gt; js/net/Transaction.java or js\net\Transaction.java
  js.net.Transaction .java -&gt; js/net/Transaction.java or js\net\Transaction.java
  </pre>
  
  Returns null if <code>qualifiedName</code> parameter is null. If <code>fileExtension</code> parameter is null
  resulting path has no extension.
  
  @param qualifiedName qualified name,
  @param fileExtension requested file extension, leading dot accepted.
  @return resulting file path or null.