You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kato-commits@incubator.apache.org by sp...@apache.org on 2009/07/26 09:09:40 UTC
svn commit: r797880 -
/incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/xmlgen/XMLWriter.java
Author: spoole
Date: Sun Jul 26 09:09:40 2009
New Revision: 797880
URL: http://svn.apache.org/viewvc?rev=797880&view=rev
Log:
updated xml writer to convert some links to docbook
Modified:
incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/xmlgen/XMLWriter.java
Modified: incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/xmlgen/XMLWriter.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/xmlgen/XMLWriter.java?rev=797880&r1=797879&r2=797880&view=diff
==============================================================================
--- incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/xmlgen/XMLWriter.java (original)
+++ incubator/kato/trunk/org.apache.kato/kato.anttasks/src/main/java/org/apache/kato/anttasks/xmlgen/XMLWriter.java Sun Jul 26 09:09:40 2009
@@ -28,6 +28,7 @@
public class XMLWriter {
+ private static String url="http://java.sun.com/javase/6/docs/api";
private Writer model=null;
private PrintWriter out=null;
public XMLWriter(Writer model) {
@@ -233,6 +234,8 @@
if(commentText.startsWith("<p>")==false) {
commentText="<p>"+commentText;
}
+
+ commentText=replaceLinks(commentText);
DOMFragmentParser parser = new DOMFragmentParser();
HTMLDocument document = new HTMLDocumentImpl();
@@ -249,6 +252,45 @@
write(fragment);
}
+
+ /**
+ * Replaces @links with doc references
+ *
+ * @param commentText
+ * @return
+ */
+ private String replaceLinks(String commentText) {
+
+ while(true) {
+ int start=commentText.indexOf("{@link ");
+ if(start<0) break;
+ int end=commentText.indexOf('}',start);
+ if(end<0) break;
+ String left=commentText.substring(0,start);
+ String right=commentText.substring(end+1);
+ String middle=commentText.substring(start+7,end).trim();
+ if(middle.startsWith("#")) {
+ // local ref
+ commentText=left+"<link linkend=\""+middle+".html\">"+middle+"</link>"+right;
+ }
+ else {
+ // long ref.
+ // same package?
+ if(middle.startsWith("java.")) {
+
+ commentText=left+"<ulink url=\""+url+middle.replace('.','/')+".html\">"+middle+"</ulink>"+right;
+
+ }
+ else {
+ commentText=left+middle+right;
+ }
+ }
+ System.out.println("middle="+middle);
+
+ }
+
+ return commentText;
+ }
private void write(DocumentFragment fragment) {
NodeList list=fragment.getChildNodes();
@@ -311,6 +353,8 @@
if(name.equals("DD")) name="db:listitem";
if(name.equals("DT")) name="db:listitem";
if(name.equals("A")) name="db:link";
+ if(name.equals("LINK")) name="db:link";
+ if(name.equals("ULINK")) name="db:ulink";
if(name.equals("PRE")) name="db:programlisting";
if(name.equals("CODE")) name="db:programlisting";
if(name.equals("BR")) name="db:para";