1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | package Torello.JavaDoc.Messager; import Torello.Java.StrIndent; import Torello.Java.StrPrint; import static Torello.Java.C.RED_BKGND; import static Torello.Java.C.BCYAN; import static Torello.Java.C.BWHITE; import static Torello.Java.C.RESET; /** * This interface is designed to be implemented, strictly, by Java {@code 'enum'} Types. The * constants of {@code enum's} which implement the {@code 'Where_Am_I'} interface are intended * to be used for <B STYLE='color:red;'><I>BOTH</I></B> giving a name to * <B STYLE='color:red;'><I>AND</I></B> providing a simple description of the various points of * program execution in a large scale Java-Application. */ public interface Where_Am_I { /** * This field holds the Text-Color & Text Background-Color for the Labels which are printed * to the Terminal-Window. Labels which use this color are utilized for rendering & * displaying Program-Execution Location - <B STYLE='color:red'><I>specifically: "Where am * I?"</I></B> in the application which is being executed. * */ static final String LABEL_COLOR = RED_BKGND + BWHITE; /** * Prints the current location of program exeuction to an output {@code String}. * * @param indentation The number / amount of Space-Characters ({@code ' '}) to use when * indenting the Program-Execution Location-Text which is being printed to the Terminal-Window. * * @return An output {@code String} which has been decorated using the UNIX-Terminal * Color-Codes (offered in class {@link Torello.Java.C 'C'}) and explicates the Program / * Applications current execution path / location. */ default String messagerString(int indentation) { return StrIndent.indent(this.getDescription(), indentation); } /** * <EMBED CLASS='external-html' DATA-FILE-ID=WAI_GET_DESC_DESC> * @return <EMBED CLASS='external-html' DATA-FILE-ID=WAI_GET_DESC_RET> */ String getDescription(); /** * <EMBED CLASS='external-html' DATA-FILE-ID=WAI_GEN_DESC_STR_DESC> * * @param enumConstant The enum constant representing the code location. Its name will be used * in the formatted output. * * @param categoryTitle A short label (e.g., "Parser Phase", "My Module") describing the module * or context of the enum location. * * @param description A detailed explanation of what this program location represents. This * text is automatically wrapped and indented. * * @return <EMBED CLASS='external-html' DATA-FILE-ID=WAI_GEN_DESC_STR_RET> */ static String generateDescriptionStr( final Enum<?> enumConstant, final String categoryTitle, final String description ) { final String title = ' ' + categoryTitle + ' '; return StrIndent.indentAfter2ndLine( LABEL_COLOR + title + RESET + " [" + BCYAN + enumConstant.name() + RESET + "]: " + StrPrint.wrap(description, 60, 80) + '\n', title.length() + 1, // "+1" Space-Character true, true ); } } |