<html>
<head>
<style><!--
  body {background-color:#ffffff;}
  .file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
  .pathname {font-family:monospace; float:right;}
  .fileheader {margin-bottom:.5em;}
  .diff {margin:0;}
  .tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
  .tasklist ul {margin-top:0;margin-bottom:0;}
  tr.alt {background-color:#eeeeee}
  #added {background-color:#ddffdd;}
  #addedchars {background-color:#99ff99;font-weight:bolder;}
  tr.alt #added {background-color:#ccf7cc;}
  #removed {background-color:#ffdddd;}
  #removedchars {background-color:#ff9999;font-weight:bolder;}
  tr.alt #removed {background-color:#f7cccc;}
  #copied {background-color:#ccccff;}
  tr.alt #copied {background-color:#bbbbf7;}
  #info {color:#888888;}
  #context {background-color:#eeeeee;}
  td {padding-left:.3em;padding-right:.3em;}
  tr.head {border-bottom-width:1px;border-bottom-style:solid;}
  tr.head td {padding:0;padding-top:.2em;}
  .task {background-color:#ffff00;}
  .comment {white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word;padding:4px;border:1px dashed #000000;background-color:#ffffdd}
  .error {color:red;}
  hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="5">Commit in <b><tt>metaas/trunk/src</tt></b></td></tr>
<tr><td><tt>main/java/uk/co/badgersinfoil/metaas/dom/<a href="#file1">ASMethod.java</a></tt> </td><td></td><td align="right" id="added">+17</td><td></td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file2">DocComment.java</a></tt> </td><td></td><td align="right" id="added">+39</td><td></td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file3">DocTag.java</a></tt> </td><td></td><td align="right" id="added">+2</td><td></td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr class="alt"><td><tt>main/java/uk/co/badgersinfoil/metaas/impl/<a href="#file4">ASTASArg.java</a></tt> </td><td></td><td align="right" id="added">+3</td><td align="right" id="removed">-1</td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file5">ASTASMethod.java</a></tt> </td><td></td><td align="right" id="added">+21</td><td></td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file6">ASTDocComment.java</a></tt> </td><td></td><td align="right" id="added">+36</td><td align="right" id="removed">-4</td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file7">ASTDocTag.java</a></tt> </td><td></td><td align="right" id="added">+20</td><td align="right" id="removed">-1</td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<a href="#file8">DocCommentUtils.java</a></tt> </td><td></td><td align="right" id="added">+21</td><td align="right" id="removed">-3</td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr><td><tt>test/java/uk/co/badgersinfoil/metaas/<a href="#file9">DocCommentTests.java</a></tt> </td><td></td><td align="right" id="added">+19</td><td align="right" id="removed">-1</td><td nowrap="nowrap" align="center">438 -&gt; 439</td></tr>
<tr><td></td><td></td><td align="right" id="added">+178</td><td align="right" id="removed">-10</td><td></td></tr>
</table>
<small id="info">9 modified files</small><br />
<pre class="comment">
make DocTag body writable, and thereby support updates of ASArg descriptions,
and add ASMethod return descriptions
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/dom</span><br />
<div class="fileheader"><big><b>ASMethod.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/ASMethod.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/ASMethod.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -150,4 +150,21 @@
</small></pre><pre class="diff" id="context">          * Allows the role of a method to be changed.
          */
         public void setAccessorRole(AccessorRole getter);
</pre><pre class="diff" id="added">+
+        /**
+         * Shortcut method to update the &lt;code&gt;&lt;span&gt;@&lt;/span&gt;return&lt;/code&gt;
+         * tagged paragraph in this method's documentation comment, or create
+         * one if it doesn't exist.
+         */
+        public void setReturnDescription(String description);
+
+        /**
+         * Returns any description of the return value from this methods
+         * documentation comment.  If there is no doc-comment, or if the
+         * documentation does not contain a &lt;code&gt;&lt;span&gt;@&lt;/span&gt;return&lt;/code&gt;
+         * tagged paragraph, this method will return null.
+         * 
+         * @see DocComment
+         */
+        public String getReturnDescriptionString();
</pre><pre class="diff" id="context"> }
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/dom</span><br />
<div class="fileheader"><big><b>DocComment.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/DocComment.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/DocComment.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -50,6 +50,22 @@
</small></pre><pre class="diff" id="context">  * &lt;pre class="eg"&gt;docComment.getDescriptionString();  &lt;em&gt;=&gt; " Great\n stuff."&lt;/em&gt;&lt;/pre&gt;
  * 
  * 
</pre><pre class="diff" id="added">+ * &lt;h3&gt;HTML Formatting&lt;/h3&gt;
+ * 
+ * &lt;p&gt;It's common to include HTML tags in documentation comments to provide
+ * some additional formatting in the generated documentation.  metaas doesn't
+ * currently check the formatting of any HTML, but future versions may require
+ * well-formed XHTML.&lt;/p&gt;
+ * 
+ * 
+ * &lt;h3&gt;Inline Tags&lt;/h3&gt;
+ * 
+ * Documentation tools can process special 'inline' documetation tags with
+ * in documentation-comment descriptions, for instance
+ * &lt;code&gt;{&lt;span&gt;@&lt;/span&gt;link com.example.ThatClass}&lt;/code&gt;.  Future versions of
+ * metaas may expose information about such tags.
+ *
+ * 
</pre><pre class="diff" id="context">  * &lt;h3&gt;Tagged Paragraphs&lt;/h3&gt;
  * 
  * &lt;p&gt;Tagged paragraphs are used in JavaDoc-style comments to provide
</pre><pre class="diff"><small id="info">@@ -85,6 +101,20 @@
</small></pre><pre class="diff" id="context">  * 
  * &lt;pre&gt;uk.co.badgersinfoil.metaas.SyntaxException: trailing content after description: "@dave"&lt;/pre&gt;
  * 
</pre><pre class="diff" id="added">+ * &lt;h3&gt;Shortcuts&lt;/h3&gt;
+ * 
+ * &lt;p&gt;Other elements in the metaas API provide shorcuts for accessing specific
+ * parts of the documentation-comment structure (e.g. creating or updating
+ * specific tagged-paragraphs),&lt;/p&gt;
+ * &lt;ul&gt;
+ *   &lt;li&gt;{@link ASArg#getDescriptionString()},
+ *   {@link ASArg#setDescription(String)} for easy access to
+ *   &lt;span&gt;@&lt;/span&gt;param tags in a method comment&lt;/li&gt;
+ * 
+ *   &lt;li&gt;{@link ASMethod#getReturnDescriptionString()},
+ *   {@link ASMethod#setReturnDescription(String)}.&lt;/li&gt;
+ * &lt;/ul&gt;
+ * 
</pre><pre class="diff" id="context">  * @see Documentable
  */
 public interface DocComment {
</pre><pre class="diff"><small id="info">@@ -127,6 +157,15 @@
</small></pre><pre class="diff" id="context">         public Iterator findTags(String name);
 
         /**
</pre><pre class="diff" id="added">+         * Returns the first tagged paragraph in this documentation comment
+         * that has a tag name matching the name given.
+         * 
+         * @param name The paragraph tag name, not including the leading '@'
+         *        symbol.  
+         */
+        public DocTag findFirstTag(String name);
+
+        /**
</pre><pre class="diff" id="context">          * Adds a tagged paragraph with the given tag-name and body text to
          * the end of this documentation comment.  The name should be given
          * without the '@'-prefix, and this will be added by metaas.
</pre></div>
<hr /><a name="file3" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/dom</span><br />
<div class="fileheader"><big><b>DocTag.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/DocTag.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/DocTag.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -9,4 +9,6 @@
</small></pre><pre class="diff" id="context"> public interface DocTag {
 
         public String getBodyString();
</pre><pre class="diff" id="added">+
+        public void setBody(String text);
</pre><pre class="diff" id="context"> }
</pre></div>
<hr /><a name="file4" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTASArg.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASArg.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASArg.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -102,11 +102,13 @@
</small></pre><pre class="diff" id="context">         }
 
         public void setDescription(String description) {
</pre><pre class="diff" id="removed">-                DocComment doc = getMethod().getDocumentation();
</pre><pre class="diff" id="added">+                ASTDocComment doc = (ASTDocComment)getMethod().getDocumentation();
</pre><pre class="diff" id="context">                 String name = getName();
                 DocTag tag = DocCommentUtils.findParam(doc, name);
                 if (tag == null) {
                         doc.addParaTag("param", name+" "+description);
</pre><pre class="diff" id="added">+                } else {
+                        tag.setBody(name+" "+description);
</pre><pre class="diff" id="context">                 }
         }
 
</pre></div>
<hr /><a name="file5" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTASMethod.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASMethod.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASMethod.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -24,6 +24,8 @@
</small></pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.ASSwitchStatement;
 import uk.co.badgersinfoil.metaas.dom.ASWhileStatement;
 import uk.co.badgersinfoil.metaas.dom.ASWithStatement;
</pre><pre class="diff" id="added">+import uk.co.badgersinfoil.metaas.dom.DocComment;
+import uk.co.badgersinfoil.metaas.dom.DocTag;
</pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree;
 
 
</pre><pre class="diff"><small id="info">@@ -253,4 +255,23 @@
</small></pre><pre class="diff" id="context">         public List getStatementList() {
                 return stmtList.getStatementList();
         }
</pre><pre class="diff" id="added">+
+        public String getReturnDescriptionString() {
+                DocComment doc = getDocumentation();
+                DocTag ret = doc.findFirstTag("return");
+                if (ret == null) {
+                        return null;
+                }
+                return ret.getBodyString();
+        }
+
+        public void setReturnDescription(String description) {
+                DocComment doc = getDocumentation();
+                DocTag ret = doc.findFirstTag("return");
+                if (ret == null) {
+                        doc.addParaTag("return", description);
+                } else {
+                        ret.setBody(description);
+                }
+        }
</pre><pre class="diff" id="context"> }
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file6" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTDocComment.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTDocComment.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTDocComment.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -10,6 +10,8 @@
</small></pre><pre class="diff" id="context"> import java.util.Iterator;
 import java.util.LinkedList;
 import uk.co.badgersinfoil.metaas.dom.DocComment;
</pre><pre class="diff" id="added">+import uk.co.badgersinfoil.metaas.dom.DocTag;
+import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListToken;
</pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree;
 import uk.co.badgersinfoil.metaas.impl.parser.javadoc.JavadocParser;
 
</pre><pre class="diff"><small id="info">@@ -36,32 +38,62 @@
</small></pre><pre class="diff" id="context">                 if (javadoc == null) {
                         return Collections.EMPTY_LIST.iterator();
                 }
</pre><pre class="diff" id="removed">-                String tagname = "@" + name;
</pre><pre class="diff" id="added">+                String tagname = tagName(name);
</pre><pre class="diff" id="context">                 LinkedList tags = new LinkedList();
                 ASTIterator i = new ASTIterator(javadoc);
                 LinkedListTree para;
                 while ((para=i.search(JavadocParser.PARA_TAG)) != null) {
                         LinkedListTree tag = para.getFirstChild();
                         if (tag.getText().equals(tagname)) {
</pre><pre class="diff" id="removed">-                                tags.add(new ASTDocTag(para));
</pre><pre class="diff" id="added">+                                tags.add(new ASTDocTag(<span id="addedchars">this,&nbsp;</span>para));
</pre><pre class="diff" id="context">                         }
                 }
                 return tags.iterator();
         }
 
</pre><pre class="diff" id="added">+        private static String tagName(String name) {
+                return "@" + name;
+        }
+
+        public DocTag findFirstTag(String name) {
+                if (javadoc == null) {
+                        return null;
+                }
+                String tagname = tagName(name);
+                ASTIterator i = new ASTIterator(javadoc);
+                LinkedListTree para;
+                while ((para=i.search(JavadocParser.PARA_TAG)) != null) {
+                        LinkedListTree tag = para.getFirstChild();
+                        if (tag.getText().equals(tagname)) {
+                                return new ASTDocTag(this, para);
+                        }
+                }
+                return null;
+        }
+
</pre><pre class="diff" id="context">         public void addParaTag(String name, String body) {
                 DocCommentUtils.assertValidContent(body);
                 String newline = DocCommentUtils.getNewlineText(ast, javadoc);
                 body = body.replaceAll("\n", newline);
</pre><pre class="diff" id="added">+                String tagname = tagName(name);
</pre><pre class="diff" id="context">                 if (javadoc == null) {
</pre><pre class="diff" id="removed">-                        DocCommentUtils.setDocComment(ast, "\n <span id="removedchars">@"+</span>name+" "+body+"\n");
</pre><pre class="diff" id="added">+                        DocCommentUtils.setDocComment(ast, "\n <span id="addedchars">"+tag</span>name+" "+body+"\n");
</pre><pre class="diff" id="context">                         javadoc = DocCommentUtils.buildJavadoc(ast);
                 } else {
                         String comment = DocCommentUtils.getDocComment(ast);
                         if (!comment.endsWith("\n")) {
                                 comment += "\n";  // TODO: match document line-ending format
                         }
</pre><pre class="diff" id="removed">-                        DocCommentUtils.setDocComment(ast, comment + <span id="removedchars">"@"+</span>name+" "+body);
</pre><pre class="diff" id="added">+                        DocCommentUtils.setDocComment(ast, comment + <span id="addedchars">tag</span>name+" "+body);
</pre><pre class="diff" id="context">                 }
         }
</pre><pre class="diff" id="added">+        
+        /**
+         * Stores modifications to the javadoc comment's AST back into the
+         * comment token in the containing ActionScript AST.
+         */
+        public void commitModifiedAST() {
+                LinkedListToken doc = DocCommentUtils.findDocCommentToken(ast);
+                doc.setText("/**"+ASTUtils.stringifyNode(javadoc)+"*/");
+        }
</pre><pre class="diff" id="context"> }
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file7" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTDocTag.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTDocTag.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTDocTag.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -14,9 +14,11 @@
</small></pre><pre class="diff" id="context"> 
 public class ASTDocTag implements DocTag {
 
</pre><pre class="diff" id="added">+        private ASTDocComment comment;
</pre><pre class="diff" id="context">         private LinkedListTree ast;
 
</pre><pre class="diff" id="removed">-        public ASTDocTag(LinkedListTree ast) {
</pre><pre class="diff" id="added">+        public ASTDocTag(ASTDocComment comment, LinkedListTree ast) {
+                this.comment = comment;
</pre><pre class="diff" id="context">                 this.ast = ast;
         }
 
</pre><pre class="diff"><small id="info">@@ -40,4 +42,21 @@
</small></pre><pre class="diff" id="context">                                 return tok.getText();
                 }
         }
</pre><pre class="diff" id="added">+
+        public void setBody(String text) {
+                int lastIndex = ast.getChildCount()-1;
+                LinkedListTree trailingNL = null;
+                if (lastIndex&gt;=0 &amp;&amp; ast.getChild(lastIndex).getType() == JavadocParser.NL) {
+                        trailingNL = (LinkedListTree)ast.getChild(lastIndex);
+                }
+                LinkedListTree tag = DocCommentUtils.parseParaTag(ast.getFirstChild().getText()+" "+text);
+                if (trailingNL != null) {
+                        tag.addChildWithTokens(trailingNL);
+                }
+                LinkedListTree parent = ast.getParent();
+                int pos = parent.getIndexOfChild(ast);
+                parent.setChildWithTokens(pos, tag);
+
+                comment.commitModifiedAST();
+        }
</pre><pre class="diff" id="context"> }
</pre><pre class="diff"><small id="info">\ No newline at end of file
</small></pre></div>
<hr /><a name="file8" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>DocCommentUtils.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/DocCommentUtils.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/DocCommentUtils.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -42,7 +42,7 @@
</small></pre><pre class="diff" id="context">                 return commentToString(tok);
         }
 
</pre><pre class="diff" id="removed">-        p<span id="removedchars">rivate</span> static LinkedListToken findDocCommentToken(LinkedListTree node) {
</pre><pre class="diff" id="added">+        p<span id="addedchars">ublic</span> static LinkedListToken findDocCommentToken(LinkedListTree node) {
</pre><pre class="diff" id="context">                 LinkedListToken tok=node.getStartToken();
                 if (tok == null) {
                         return null;
</pre><pre class="diff"><small id="info">@@ -267,14 +267,19 @@
</small></pre><pre class="diff" id="context">                         trimEOF(lastChild);
                 }
                 while (isEOF(desc.getStopToken())) {
</pre><pre class="diff" id="removed">-                        desc.setStopToken(desc.getStopToken().getPrev());
</pre><pre class="diff" id="added">+                        LinkedListToken stop = desc.getStopToken();
+                        LinkedListToken prev = stop.getPrev();
+                        desc.setStopToken(prev);
+                        stop.delete();
</pre><pre class="diff" id="context">                 }
         }
 
         private static LinkedListTree parse(String body) {
                 try {
                         JavadocParser parser = parserOn(body);
</pre><pre class="diff" id="removed">-                        <span id="removedchars">return</span> (LinkedListTree)parser.comment_body().getTree();
</pre><pre class="diff" id="added">+                        <span id="addedchars">LinkedListTree&nbsp;result&nbsp;=</span> (LinkedListTree)parser.comment_body().getTree();
+                        trimEOF(result);
+                        return result;
</pre><pre class="diff" id="context">                 } catch (IOException e) {
                         throw new SyntaxException(e);
                 } catch (RecognitionException e) {
</pre><pre class="diff"><small id="info">@@ -282,6 +287,19 @@
</small></pre><pre class="diff" id="context">                 }
         }
 
</pre><pre class="diff" id="added">+        public static LinkedListTree parseParaTag(String text) {
+                try {
+                        JavadocParser parser = parserOn(text);
+                        LinkedListTree result = (LinkedListTree)parser.paragraph_tag().getTree();
+                        trimEOF(result);
+                        return result;
+                } catch (IOException e) {
+                        throw new SyntaxException(e);
+                } catch (RecognitionException e) {
+                        throw new SyntaxException(e);
+                }
+        }
+
</pre><pre class="diff" id="context">         private static JavadocParser parserOn(String text) throws IOException {
                 StringReader in = new StringReader(text);
                 ANTLRReaderStream cs = new ANTLRReaderStream(in);
</pre></div>
<hr /><a name="file9" /><div class="file">
<span class="pathname">metaas/trunk/src/test/java/uk/co/badgersinfoil/metaas</span><br />
<div class="fileheader"><big><b>DocCommentTests.java</b></big> <small id="info">438 -&gt; 439</small></div>
<pre class="diff"><small id="info">--- trunk/src/test/java/uk/co/badgersinfoil/metaas/DocCommentTests.java        2007-02-25 22:29:47 UTC (rev 438)
+++ trunk/src/test/java/uk/co/badgersinfoil/metaas/DocCommentTests.java        2007-02-25 22:38:22 UTC (rev 439)
@@ -86,7 +86,25 @@
</small></pre><pre class="diff" id="context">                 assertNotNull(actualDesc);
                 assertEquals("a test!", actualDesc.trim());
         }
</pre><pre class="diff" id="removed">-        
</pre><pre class="diff" id="added">+
+        public void testUpdateArgDocs() {
+                ASMethod meth = clazz.newMethod("test", Visibility.PUBLIC, "void");
+                ASArg test = meth.addParam("test", "String");
+                assertNull(test.getDescriptionString());
+                test.setDescription("initial text!");
+                assertEquals("initial text!", test.getDescriptionString().trim());
+                test.setDescription("replacement text");
+                assertEquals("replacement text", test.getDescriptionString().trim());
+        }
+
+
+        public void testReturnDocs() {
+                ASMethod meth = clazz.newMethod("test", Visibility.PUBLIC, "void");
+                assertNull(meth.getReturnDescriptionString());
+                meth.setReturnDescription("blah blah");
+                assertEquals("blah blah", meth.getReturnDescriptionString().trim());
+        }
+
</pre><pre class="diff" id="context">         public void testDocumentation() {
                 DocComment doc = clazz.getDocumentation();
                 assertNotNull(doc);
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -&gt; email">CVSspam</a> 0.2.12</small></center>
</body></html>