001/*license*\ 002 Codelet: Copyright (C) 2014, Jeff Epstein (aliteralmind __DASH__ github __AT__ yahoo __DOT__ com) 003 004 This software is dual-licensed under the: 005 - Lesser General Public License (LGPL) version 3.0 or, at your option, any later version; 006 - Apache Software License (ASL) version 2.0. 007 008 Either license may be applied at your discretion. More information may be found at 009 - http://en.wikipedia.org/wiki/Multi-licensing. 010 011 The text of both licenses is available in the root directory of this project, under the names "LICENSE_lgpl-3.0.txt" and "LICENSE_asl-2.0.txt". The latest copies may be downloaded at: 012 - LGPL 3.0: https://www.gnu.org/licenses/lgpl-3.0.txt 013 - ASL 2.0: http://www.apache.org/licenses/LICENSE-2.0.txt 014\*license*/ 015package com.github.aliteralmind.codelet.examples; 016 import com.github.aliteralmind.codelet.CodeletInstance; 017 import com.github.aliteralmind.codelet.CodeletType; 018 import com.github.aliteralmind.codelet.CustomizationInstructions; 019 import com.github.aliteralmind.codelet.alter.NewJDLinkForWordOccuranceNum; 020 import com.github.aliteralmind.codelet.alter.NewLineAltererFor; 021 import com.github.aliteralmind.codelet.NewLineFilterFor; 022 import com.github.aliteralmind.codelet.examples.adder.Adder; 023 import com.github.xbn.linefilter.alter.NewTextLineAltererFor; 024 import com.github.xbn.linefilter.alter.TextLineAlterer; 025 import com.github.xbn.linefilter.FilteredLineIterator; 026 import com.github.aliteralmind.codelet.type.SourceCodeTemplate; 027 import com.github.xbn.analyze.alter.ExpirableElements; 028 import com.github.xbn.analyze.alter.MultiAlterType; 029 import com.github.xbn.array.NullElement; 030 import static com.github.aliteralmind.codelet.CodeletBaseConfig.*; 031/** 032 <P style="font-size: 150%;"><b><a href="{@docRoot}/overview-summary.html#xmpl_links"><FONT SIZE="+1"><code><IMG SRC="{@docRoot}/resources/left_arrow.gif"/> GO BACK</code></FONT></a> Codelet: Example: Advanced customization: Making relevant functions into clickable JavaDoc links</b></p> 033 034 <h3><u>Taglet:</u></h3> 035 036 <P style="font-size: 125%;"><b>{@code {@.codelet.and.out com.github.aliteralmind.codelet.examples.adder.AdderDemo%adderDemo_lineSnippetWithLinks()}}</b></p> 037 038 <h3><u>Replaced with:</u></h3> 039 040 <p><i>(Output begins and ends between the horizontal lines.)</i></p> 041 042 <HR/> 043{@.codelet.and.out com.github.aliteralmind.codelet.examples.adder.AdderDemo%adderDemo_lineSnippetWithLinks()} 044 <HR/> 045 046 <h3><u>Original source code:</u></h3> 047 048{@.codelet com.github.aliteralmind.codelet.examples.adder.AdderDemo} 049 050 * @since 0.1.0 051 * @author Copyright (C) 2014, Jeff Epstein ({@code aliteralmind __DASH__ github __AT__ yahoo __DOT__ com}), dual-licensed under the LGPL (version 3.0 or later) or the ASL (version 2.0). See source code for details. <a href="http://codelet.aliteralmind.com">{@code http://codelet.aliteralmind.com}</a>, <a href="https://github.com/aliteralmind/codelet">{@code https://github.com/aliteralmind/codelet}</a> 052 **/ 053public class LineRangeWithLinksAndNamedDebugs { 054 055 private static final CustomizationInstructions<SourceCodeTemplate> adderDemo_lineSnippetWithLinks(CodeletInstance instance, CodeletType needed_defaultAlterType) { 056 String debugPrefix = "LineRangeWithLinksAndNamedDebugs.adderDemo_lineSnippetWithLinks"; 057 058 FilteredLineIterator filter = NewLineFilterFor.lineRange(instance, debugPrefix, 059 1, false, "Adder adder", 060 2, false, "println(adder"); 061 062 TextLineAlterer[] alterers = { 063 NewTextLineAltererFor.escapeHtml(), 064 NewLineAltererFor.eliminateIndentationOrNull("^ ", 065 getDebugApblIfOn(instance, debugPrefix + ".elimindent")), 066 NewJDLinkForWordOccuranceNum.constructor(instance, debugPrefix, null, 067 1, Adder.class, "(*)"), 068 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 069 1, Adder.class, "getSum()")}; 070 071 return new CustomizationInstructions<SourceCodeTemplate>(instance, 072 needed_defaultAlterType). 073 filter(filter). 074 orderedAlterers(getDebugApblIfOn(instance, debugPrefix + ".allalterer"), 075 NullElement.OK, ExpirableElements.OPTIONAL, 076 MultiAlterType.CUMULATIVE, alterers). 077 defaultOrOverrideTemplate( 078 getDebugApblIfOn(instance, debugPrefix + ".template")). 079 build(); 080 } 081}