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.CodeletType; 017 import com.github.aliteralmind.codelet.CodeletInstance; 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.aliteralmind.codelet.type.SourceCodeTemplate; 024 import com.github.xbn.analyze.alter.ExpirableElements; 025 import com.github.xbn.analyze.alter.MultiAlterType; 026 import com.github.xbn.array.NullElement; 027 import com.github.xbn.linefilter.alter.NewTextLineAltererFor; 028 import com.github.xbn.linefilter.alter.TextLineAlterer; 029 import com.github.xbn.linefilter.FilteredLineIterator; 030/** 031 <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> 032 033 <h3><u>Taglet:</u></h3> 034 035 <P style="font-size: 125%;"><b>{@code {@.codelet.and.out com.github.aliteralmind.codelet.examples.adder.AdderDemo%adderDemo_lineSnippetWithLinks()}}</b></p> 036 037 <h3><u>Replaced with:</u></h3> 038 039 <p><i>(Output begins and ends between the horizontal lines.)</i></p> 040 041 <HR/> 042{@.codelet.and.out com.github.aliteralmind.codelet.examples.adder.AdderDemo%adderDemo_lineSnippetWithLinks()} 043 <HR/> 044 045 <h3><u>Original source code:</u></h3> 046 047{@.codelet com.github.aliteralmind.codelet.examples.adder.AdderDemo} 048 049 * @since 0.1.0 050 * @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> 051 **/ 052public class LineRangeWithLinks { 053 private static final CustomizationInstructions<SourceCodeTemplate> adderDemo_lineSnippetWithLinks(CodeletInstance instance, CodeletType needed_defaultAlterType) { 054 FilteredLineIterator filter = NewLineFilterFor.lineRange( 055 1, false, "Adder adder", 056 null, //debugStartFilter: on=System.out, off=null 057 null, //dbgStart 058 2, false, "println(adder", 059 null, //dbgEndFilter 060 null, //dbgEnd 061 null, //dbgLineNums 062 null, null); //dbgAllLines and its range 063 064 TextLineAlterer[] alterers = { 065 NewTextLineAltererFor.escapeHtml(), 066 NewLineAltererFor.eliminateIndentationOrNull("^ ", 067 null), //debug 068 NewJDLinkForWordOccuranceNum.constructor(instance, 069 1, Adder.class, "(*)", 070 null, //dbgRplcr 071 null, //dbgFilter 072 null, //dbgSearchTerm 073 null), //dbgSearchTermDoesMatch 074 NewJDLinkForWordOccuranceNum.method(instance, 075 1, Adder.class, "getSum()", 076 null, //dbgRplcr 077 null, //dbgFilter 078 null, //dbgSearchTerm 079 null)}; //dbgSearchTermDoesMatch 080 081 return new CustomizationInstructions<SourceCodeTemplate>(instance, 082 needed_defaultAlterType). 083 filter(filter). 084 orderedAlterers( 085 null, //debug 086 NullElement.OK, ExpirableElements.OPTIONAL, 087 MultiAlterType.CUMULATIVE, alterers). 088 defaultOrOverrideTemplate( 089 null). //debug 090 build(); 091 } //End snippet 092}