2012-10-23 16 views

Odpowiedz

1

Generowanie je za pomocą: javadoc * .java a następnie przepisać stylesheet.css jak chcesz ...

+0

nr PO mówi o czymś więcej niż tylko zmianę stylów. –

+0

thx za proste polecenie –

0

Alternatywnie można rozważyć napisaną przeze mnie klasę o nazwie FilteredLineIterator, której można użyć do skasowania wszystkich linii JavaDoc z pliku źródłowego.

(Ta odpowiedź jest podobna do tej, którą napisał w this question).

FilteredLineIterator jest iterator ciąg, który filtruje (utrzymuje lub zablokowanie) elementy w innym iteracyjnej, opiera się na „podmioty” (pojedyncza linia , blokowe i "ukradkowe" bloki), w których każda linia istnieje. Linie zatrzymane można opcjonalnie modyfikować.

(FilteredLineIterator jest częścią XBN-Java Słoiki mogą być pobrane here..)

Przykład góry i konfiguracja:

import com.github.xbn.linefilter.FilteredLineIterator; 
    import com.github.xbn.linefilter.KeepUnmatched; 
    import com.github.xbn.linefilter.Returns; 
    import com.github.xbn.linefilter.entity.BlockEntity; 
    import com.github.xbn.linefilter.entity.EntityRequired; 
    import com.github.xbn.linefilter.entity.KeepMatched; 
    import com.github.xbn.linefilter.entity.NewBlockEntityFor; 
    import com.github.xbn.linefilter.entity.NewStealthBlockEntityFor; 
    import com.github.xbn.linefilter.entity.StealthBlockEntity; 
    import com.github.xbn.testdev.GetFromCommandLineAtIndex; 
    import com.github.xbn.util.IncludeJavaDoc; 
    import java.util.Iterator; 
/** 
    <P>{@code java ExtractAllJavaDocBlockTextRaw examples\com\github\xbn\examples\linefilter\JavaClassWithOneCommentAndTwoJavaDocBlocks_input.txt}</P> 
**/ 
public class ExtractAllJavaDocBlockTextRaw { 
    public static final void main(String[] cmd_lineParams) { 
    //Example setup: 
     Iterator<String> rawInputLineItr = GetFromCommandLineAtIndex.fileLineIterator(
      cmd_lineParams, 0, 
      null); //debugPath 

Odcinek główny rozpoczyna poniżej. Bloki JavaDoc są zdefiniowane jako block entity, gdzie zachowywane są tylko linie środkowe (nie początkowe i końcowe). Aby zapobiec błędnym błędom "linii końcowej znalezionej przed otwarciem bloku" - ponieważ wiersz końcowy dla komentarzy wielowierszowych JavaDoc i "normalnych" (innych niż JavaDoc) to */ - a stealth block dla zwykłych wielowierszowych komentarzy należy zadeklarować.

Iterator surowej linii wejściowej i obie jednostki są podawane do przefiltrowanego iteratora linii.

 StealthBlockEntity javaMlcBlock = NewStealthBlockEntityFor.javaComment(
     "comment", IncludeJavaDoc.NO, 
     null,  //dbgStart (on=System.out, off=null) 
     null,  //dbgEnd 
     KeepMatched.NO, EntityRequired.YES, null, 
     null);  //dbgLineNums 

    BlockEntity javaDocBlock = NewBlockEntityFor.javaDocComment_Cfg(
     "doccomment", 
     null,  //dbgStart 
     null,  //dbgEnd 
     EntityRequired.YES, null, 
     null).  //dbgLineNums 
     keepMidsOnly().build(); 

    FilteredLineIterator filteredItr = new FilteredLineIterator(
     rawInputLineItr, Returns.KEPT, KeepUnmatched.NO, 
     null, null, //dbgEveryLine and its line-range 
     javaMlcBlock, javaDocBlock); 

    while(filteredItr.hasNext()) { 
     System.out.println(filteredItr.next()); 
    } 
    } 
} 

wyjściowa (plik wejściowy jest w dolnej części tej odpowiedzi post):

 <P>The main class JavaDoc block.</P> 
     <P>Constructor JavaDoc block</P> 
     * <P>Function JavaDoc block.</P> 

     * <P>This function does some stuff.</P> 

     * <P>Lots and lots of stuff.</P> 

rozebrać opcjonalne gwiazdki z każdej linii, w tym któregokolwiek z poprzednich spacji, dodać „Mid linii älterer "podmiotowi bloku JavaDoc:

TextLineAlterer asteriskStripper = NewTextLineAltererFor.replacement(
    Pattern.compile("[ \t]*(?:\\*[ \t]*)?(.*)"), "$1", 
    ReplacedInEachInput.FIRST, 
    null,  //debug 
    null); 

Dodaj älterer podmiotowi bloku zmieniając keepMidsOnly().build(); do

midAlter(asteriskStripper).keepMidsOnly().build(); 

wyjściowa:

<P>The main class JavaDoc block.</P> 
<P>Constructor JavaDoc block</P> 
<P>Function JavaDoc block.</P> 

<P>This function does some stuff.</P> 

<P>Lots and lots of stuff.</P> 

Plik wejściowy:

/* 
    A Java comment block. 
*/ 
package fully.qualified.package.name; 
/** 
    <P>The main class JavaDoc block.</P> 
*/ 
public class StayClassy { 
    /** 
     <P>Constructor JavaDoc block</P> 
    */ 
    public StayClassy() { 
     //Do stuff 
    } 
    /** 
     * <P>Function JavaDoc block.</P> 

     * <P>This function does some stuff.</P> 

     * <P>Lots and lots of stuff.</P> 
    */ 
    public void doStuff() { 
    } 
} 
Powiązane problemy