/* * [InterfaceName.java] * * Summary: Describes one interface name token for display. * * Copyright: (c) 2004-2017 Roedy Green, Canadian Mind Products, http://mindprod.com * * Licence: This software may be copied and used freely for any purpose but military. * http://mindprod.com/contact/nonmil.html * * Requires: JDK 1.8+ * * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/ * * Version History: * 2.0 2009-04-19 tidy comments, more accurate colour names */ package com.mindprod.jtokens.java; import java.awt.Color; import java.awt.Font; import static com.mindprod.jtokens.TokenColourScheme.JAVA_fOREGROUND_FOR_INTERFACE_NAME; import static com.mindprod.jtokens.TokenFonts.MONO_FONTS; import static com.mindprod.jtokens.TokenFonts.NORMAL_FONT_SIZE_IN_POINTS; import static java.lang.System.*; /** * Describes one interface name token for display. * * @author Roedy Green, Canadian Mind Products * @version 2.0 2009-04-19 tidy comments, more accurate colour names * @since 2004-04-24 */ public final class InterfaceName extends Definable { /** * version number for the class */ static final long serialVersionUID = 1L; @SuppressWarnings( { "ConstantNamingConvention" } ) private static final Font fontDef = bestFont( MONO_FONTS, Font.BOLD + Font.ITALIC, NORMAL_FONT_SIZE_IN_POINTS ); /** * Font to render this token */ @SuppressWarnings( { "ConstantNamingConvention" } ) private static final Font fontRef = bestFont( MONO_FONTS, Font.ITALIC, NORMAL_FONT_SIZE_IN_POINTS ); /** * Constructor * * @param interfaceName the name of a class e.g. String, Color. * @param defining true if this where the class is defined. false if it is a reference to the class. */ public InterfaceName( String interfaceName, boolean defining ) { super( interfaceName, defining ); if ( !Character.isUpperCase( interfaceName.charAt( 0 ) ) ) { err.println( "\007interface " + interfaceName + " should begin with an upper case letter." ); } } /** * font to render this token. * * @return Font, in the correct size. */ public Font getFont() { return defining ? fontDef : fontRef; } /** * foreground colour to render this token. * * @return Color object. */ public Color getForeground() { return JAVA_fOREGROUND_FOR_INTERFACE_NAME; } /** * @inheritDoc */ public String getHTML() { return ( defining ? "" : "" ) + getRawHTML() + ""; } }