public static String createMangledName(Source source,String path,boolean strType,Map<String,Object> attrs,String prefix){
  StringBuilder buf=new StringBuilder(128);
  if (prefix != null)   buf.append(prefix);
  int hash=attrs.hashCode();
  String mimeType=(String)attrs.get(Transcoder.MIMETYPE);
  VirtualFile f=null;
  if (path != null) {
    buf.append(path);
    f=source.resolve(path);
    if (f != null)     hash^=f.hashCode();
  }
 else   if (mimeType != null) {
    buf.append(mimeType);
  }
  String symbol=(String)attrs.get(Transcoder.SYMBOL);
  if (symbol != null) {
    buf.append('_');
    buf.append(symbol);
  }
  if (strType) {
    buf.append("_s");
  }
  return createMangledName(buf.toString(),hash);
}

public static String createMangledName ( Source source , String path , boolean strType , Map < String , Object > attrs , String prefix ) { StringBuilder buf = new StringBuilder ( 128 ) ; if ( prefix != null ) buf . append ( prefix ) ; int hash = attrs . hashCode ( ) ; String mimeType = ( String ) attrs . get ( Transcoder . MIMETYPE ) ; VirtualFile f = null ; if ( path != null ) { buf . append ( path ) ; f = source . resolve ( path ) ; if ( f != null ) hash ^= f . hashCode ( ) ; } else if ( mimeType != null ) { buf . append ( mimeType ) ; } String symbol = ( String ) attrs . get ( Transcoder . SYMBOL ) ; if ( symbol != null ) { buf . append ( '_' ) ; buf . append ( symbol ) ; } if ( strType ) { buf . append ( "_s" ) ; } return createMangledName ( buf . toString ( ) , hash ) ; }
given source , path , symbol ? , prefix ? , produces identifier = [ prefix ] path [ _symbol ] _hash < p > prefix is added as - is , if non - null < p > hash = absolute value of java string hash of path ( resolved if possible ) combined with hash of symbol if non - null < p > result is guaranteed to contain only legal id chars
