मैं जावा स्रोत फ़ाइलों से JavaDoc टिप्पणियों को कैसे निकालूं? साथ ही उन्हें प्रारूपित करना चाहते हैं जैसा मैं चाहता हूं?स्रोत फ़ाइलों से JavaDoc टिप्पणियों को निकालने के लिए कैसे करें
उत्तर
मानक दृष्टिकोण के लिए Javadoc Tool Home Page की Doclets अनुभाग देखें।
Doclets मानक doclet एचटीएमएल उत्पन्न करता है और जावाडोक उपकरण में बनाया गया है। जावा सॉफ़्टवेयर विकसित किए गए अन्य दस्तावेज़ यहां सूचीबद्ध हैं। ..
Doclet API विशेष रूप से Example - Subclassing the Standard Doclet & देखें।
का उपयोग कर उन्हें उत्पन्न करें: जावाडोक * जावा और फिर stylesheet.css पुनर्लेखन के रूप में आप चाहते हैं ...
एक विकल्प के रूप में, आप FilteredLineIterator
नामक एक वर्ग पर विचार कर सकते हैं, जिसका उपयोग किसी स्रोत फ़ाइल से सभी जावाडॉक लाइनों को स्क्रैप करने के लिए किया जा सकता है।
(इस उत्तर एक मैं this question में लिखा है के समान है।)
एक FilteredLineIterator
एक स्ट्रिंग इटरेटर कि फिल्टर (रखता है या दबा देता है) एक और इटरेटर में तत्वों, "संस्थाओं" के आधार पर (एक पंक्ति है , ब्लॉक, और "चुपके" ब्लॉक) जिसमें प्रत्येक पंक्ति मौजूद है। केप्ट लाइनों को वैकल्पिक रूप से संशोधित किया जा सकता है।
(FilteredLineIterator
XBN-Java का हिस्सा है जार डाउनलोड किया जा सकता here।।)
उदाहरण शीर्ष और सेटअप:
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
मुख्य अनुभाग के नीचे शुरू होता है। जावाडॉक ब्लॉक को block entity के रूप में परिभाषित किया गया है, जहां केवल मध्य (प्रारंभ या अंत नहीं) लाइनें रखी जाती हैं। गलत "ब्लॉक खोलने से पहले मिली लाइन" त्रुटियों को रोकने के लिए - चूंकि जावाडॉक और "सामान्य" (गैर-जावाडोक) दोनों पंक्तियों की अंतिम पंक्ति */
- stealth block सामान्य बहु-पंक्ति टिप्पणियों के लिए घोषित की जानी चाहिए।
इनपुट की कच्ची रेखा इटरेटर, और दोनों इकाइयां फ़िल्टर किए गए लाइन इटरेटर को खिलाया जाता है।
<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>
प्रत्येक पंक्ति से वैकल्पिक तारक निकालने के लिए, किसी भी पूर्ववर्ती खाली स्थान के सहित, एक "मध्य लाइन alterer जोड़ें:
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());
}
}
}
आउटपुट (इनपुट फ़ाइल इस उत्तर-पोस्ट के नीचे स्थित है) "JavaDoc ब्लॉक इकाई के लिए:
TextLineAlterer asteriskStripper = NewTextLineAltererFor.replacement(
Pattern.compile("[ \t]*(?:\\*[ \t]*)?(.*)"), "$1",
ReplacedInEachInput.FIRST,
null, //debug
null);
के लिए
keepMidsOnly().build();
बदलकर ब्लॉक इकाई के लिए alterer जोड़े
midAlter(asteriskStripper).keepMidsOnly().build();
आउटपुट:
<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>
इनपुट फ़ाइल:
/*
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() {
}
}
सं ओपी के बारे में सिर्फ शैलियों को बदलने की तुलना में अधिक बात कर रही है। सरल आदेश के लिए –
thx –