" );
sb.append( elaborateDesc );
sb.append( " : available:
- " );
sb.append( buildWebLinkToJDK( refWithSlashes ) );
sb.append( "
- " );
sb.append( buildLocalLinkToCurrentJDK( refWithSlashes ) );
sb.append( " " );
sb.append( buildJDriveDescription() );
sb.append( "
\n" );
if ( SHOW_OLD_JAVA )
{
sb.append( "- " );
sb.append( buildLocalLinkToOldJDK( refWithSlashes ) );
sb.append( " " );
sb.append( buildJDriveDescription() );
sb.append( "
\n" );
}
sb.append( "
\n" );
return sb.toString();
}
/**
* guts to Generate reference to a Oracle HTML document.
*
* @param ref usually a fully qualified referenced to sun or oracle site,
* @param desc human description of what it is.
* @param notes notes about what this class/method is for, or how to use it.
*
* @return expand href both to online and local.
* @noinspection WeakerAccess
*/
private String expand( String ref, String desc, String notes )
{
if ( ref.startsWith( "api" ) || ref.startsWith( "http:" ) || ref.startsWith( "/" ) )
{
throw new IllegalArgumentException(
"JavaFXAPI reference should start with a package name. e.g. javafx..." );
}
if ( !( ref.startsWith( "javafx/" )
|| ref.startsWith( "allclasses-frame.html" )
|| ref.startsWith( "index-files/" )
|| ref.startsWith( "org/omg/" )
|| ref.startsWith( "org/w3c/" )
|| ref.startsWith( "overview-frame.html" )
|| ref.startsWith( "overview-tree.html" )
|| ref.startsWith( "serialized-form.html" )
) )
{
//docs.oracle.com/javase/7/docs/jre/api/javaws/jnlp/index.html
err.println( "Warning: JavaFXAPI reference to unknown package: " + ref + " on page " + fileBeingProcessed
.toString() );
}
// reference java/text/Normalizer.html -> http://docs.oracle.com/javase/7/docs/api/java/text/Normalizer.html
return buildTripleLinkToAPIDoc( ref, elaborate( ref, desc, notes ) );
}// /method
/**
* typical use: macro JavaFXAPI javaFX javafx/beans/binding/Binding.html Binding
* no lead http:
*
* @param parms link desc, not entified
* @param quiet true if should suppress optional info.
* @param verbose @return expanded macro HTML
*/
public final String expandMacro( String[] parms, final boolean quiet, final boolean verbose )
{
if ( !quiet )
{
out.print( "J" );
}
if ( !( 2 <= parms.length && parms.length <= 3 ) )
{
throw new IllegalArgumentException( USAGE );
}
final String ref = parms[ 0 ];
if ( !ref.contains( ".html" ) )
{
throw new IllegalArgumentException( "JavaFXAPI Missing .html in reference\n" + USAGE );
}
final String desc = EntifyStrings.entifyHTML( parms[ 1 ] );
final String notes = parms.length > 2 ? parms[ 2 ] : null;
return expand( ref, desc, notes );
}// /method
// /methods
}