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.CodeletBaseConfig; 017 import com.github.aliteralmind.codelet.CodeletInstance; 018 import com.github.aliteralmind.codelet.CodeletType; 019 import com.github.aliteralmind.codelet.CustomizationInstructions; 020 import com.github.aliteralmind.codelet.alter.NewJDLinkForWordOccuranceNum; 021 import com.github.aliteralmind.codelet.alter.NewLineAltererFor; 022 import com.github.aliteralmind.codelet.NewLineFilterFor; 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>Custom <a href="{@docRoot}/com/github/aliteralmind/codelet/CustomizationInstructions.html#overview">customizers</a> used throughout {@code com.github.aliteralmind.codelet.examples}.</p> 033 034 * @since 0.1.0 035 * @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> 036 **/ 037public class zCodeletCustomizers { 038 private static final CustomizationInstructions<SourceCodeTemplate> LineRangeWithLinksAndNamedDebugs_adderDemo_lineRangeWithLinks(CodeletInstance instance, CodeletType needed_defaultAlterType) { 039 040 String debugPrefix = "LineRangeWithLinksAndNamedDebugs.LineRangeWithLinksAndNamedDebugs_adderDemo_lineRangeWithLinks"; 041 042 FilteredLineIterator filter = NewLineFilterFor.eliminateAllCmtBlocksAndPackageLine(instance, debugPrefix, true, true); 043 044 TextLineAlterer[] alterers = { 045 NewTextLineAltererFor.escapeHtml(), 046 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 047 1, NewLineFilterFor.class, "lineRange(*, String)"), 048 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 049 1, CodeletBaseConfig.class, "getDebugApblIfOn(*, String)"), 050 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 051 1, NewLineAltererFor.class, "eliminateIndentationOrNull(*)"), 052 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 053 1, NewJDLinkForWordOccuranceNum.class, "constructor(*, Appendable)"), 054 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 055 1, NewJDLinkForWordOccuranceNum.class, "method(*, String, Appendable, *)"), 056 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 057 1, CustomizationInstructions.class, "filter(*)"), 058 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 059 1, CustomizationInstructions.class, "orderedAlterers(*)"), 060 NewJDLinkForWordOccuranceNum.method(instance, debugPrefix, null, 061 1, CustomizationInstructions.class, "defaultOrOverrideTemplate(*)")}; 062 063 return new CustomizationInstructions<SourceCodeTemplate>(instance, 064 needed_defaultAlterType). 065 filter(filter). 066 orderedAlterers( 067 getDebugApblIfOn(instance, debugPrefix + ".allalterer"), 068 NullElement.OK, ExpirableElements.OPTIONAL, 069 MultiAlterType.CUMULATIVE, alterers). 070 defaultOrOverrideTemplate( 071 getDebugApblIfOn(instance, debugPrefix + ".template")). 072 classNameOrFilePathRestricter("*.LineRangeWithLinksAndNamedDebugs"). 073 build(); 074 } 075}