User: rinkrank
Date: 02/02/19 16:12:02
Modified: src/xjavadoc XTagTest.java XTagParameter.java
XTagFactory.java XTag.java XProgramElement.java
XParameter.java XPackage.java XMethod.java
XJavaDocTest.java XJavaDocRoot.java
XJavaDoclet.java XJavaDocException.java
XJavaDoc.java XField.java XExecutableMember.java
XDocTest.java XDoc.java XConstructor.java
XClass.java Util.java UnknownClass.java
SourceClass.java ProxyClass.java Primitive.java
ParameterImpl.java MethodImpl.java
JavaDocReaderTest.java JavaDocReader.java
FieldImpl.java DefaultXTagFactory.java
DefaultXTag.java ConstructorImpl.java
ClassDump.java BinaryClass.java
AbstractProgramElement.java
AbstractExecutableMember.java AbstractClass.java
Added: src/xjavadoc Token.java SimpleNode.java NoopDoclet.java
NodePrinter.java
Log:
-Added benchmark target, javadoc is still 20% faster than xjavadoc :-(
-Optimizations: static parser, MULTI=false (no more ASTxxx classes)
-Mades impl classes package private
-Fixed some comments
-Fixed a few bugs
Revision Changes Path
1.5 +1 -1 xjavadoc/src/xjavadoc/XTagTest.java
Index: XTagTest.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XTagTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -w -r1.4 -r1.5
--- XTagTest.java 19 Feb 2002 19:13:49 -0000 1.4
+++ XTagTest.java 20 Feb 2002 00:12:00 -0000 1.5
@@ -44,7 +44,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 8. januar 2002
* @todo-javadoc Write javadocs
*/
1.4 +1 -1 xjavadoc/src/xjavadoc/XTagParameter.java
Index: XTagParameter.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XTagParameter.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -r1.3 -r1.4
--- XTagParameter.java 9 Feb 2002 23:39:29 -0000 1.3
+++ XTagParameter.java 20 Feb 2002 00:12:01 -0000 1.4
@@ -38,7 +38,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 11. januar 2002
* @todo-javadoc Write javadocs
*/
1.2 +1 -1 xjavadoc/src/xjavadoc/XTagFactory.java
Index: XTagFactory.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XTagFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- XTagFactory.java 9 Feb 2002 23:39:29 -0000 1.1
+++ XTagFactory.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -40,7 +40,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 10. februar 2002
* @todo-javadoc Write javadocs
*/
1.9 +1 -1 xjavadoc/src/xjavadoc/XTag.java
Index: XTag.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XTag.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -w -r1.8 -r1.9
--- XTag.java 9 Feb 2002 23:39:29 -0000 1.8
+++ XTag.java 20 Feb 2002 00:12:01 -0000 1.9
@@ -36,7 +36,7 @@
package xjavadoc;
/**
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 11. januar 2002
* @todo implement equals. seems xdoclet.util.DocletUtil.getTagsByName() wants
* it
1.3 +1 -0 xjavadoc/src/xjavadoc/XProgramElement.java
Index: XProgramElement.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XProgramElement.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- XProgramElement.java 19 Feb 2002 19:13:49 -0000 1.2
+++ XProgramElement.java 20 Feb 2002 00:12:01 -0000 1.3
@@ -39,6 +39,7 @@
* Describe what this class does
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 16, 2002
* @todo-javadoc Write javadocs for interface
*/
1.7 +1 -1 xjavadoc/src/xjavadoc/XParameter.java
Index: XParameter.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XParameter.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- XParameter.java 19 Feb 2002 19:13:49 -0000 1.6
+++ XParameter.java 20 Feb 2002 00:12:01 -0000 1.7
@@ -38,7 +38,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 12. januar 2002
* @todo-javadoc Write javadocs
*/
1.6 +1 -1 xjavadoc/src/xjavadoc/XPackage.java
Index: XPackage.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XPackage.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -w -r1.5 -r1.6
--- XPackage.java 1 Feb 2002 21:46:32 -0000 1.5
+++ XPackage.java 20 Feb 2002 00:12:01 -0000 1.6
@@ -40,7 +40,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
* @todo-javadoc Write javadocs
*/
1.5 +1 -1 xjavadoc/src/xjavadoc/XMethod.java
Index: XMethod.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XMethod.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -w -r1.4 -r1.5
--- XMethod.java 19 Feb 2002 19:13:49 -0000 1.4
+++ XMethod.java 20 Feb 2002 00:12:01 -0000 1.5
@@ -38,7 +38,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 19. februar 2002
* @todo-javadoc Write javadocs for interface
*/
1.10 +1 -1 xjavadoc/src/xjavadoc/XJavaDocTest.java
Index: XJavaDocTest.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XJavaDocTest.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -w -r1.9 -r1.10
--- XJavaDocTest.java 19 Feb 2002 19:13:49 -0000 1.9
+++ XJavaDocTest.java 20 Feb 2002 00:12:01 -0000 1.10
@@ -44,7 +44,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 8. januar 2002
* @todo-javadoc Write javadocs
*/
1.3 +69 -3 xjavadoc/src/xjavadoc/XJavaDocRoot.java
Index: XJavaDocRoot.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XJavaDocRoot.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- XJavaDocRoot.java 18 Dec 2001 23:26:29 -0000 1.2
+++ XJavaDocRoot.java 20 Feb 2002 00:12:01 -0000 1.3
@@ -1,9 +1,75 @@
+/*
+ * Copyright (c) 2001, Aslak Helles�y, BEKK Consulting
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of BEKK Consulting nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+/*
+ * Change log
+ *
+ */
package xjavadoc;
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
+ * @created 19. februar 2002
+ */
public interface XJavaDocRoot {
+ /**
+ * Describe what the method does
+ *
+ * @return Describe the return value
+ * @todo-javadoc Write javadocs for method
+ * @todo-javadoc Write javadocs for return value
+ */
public XClass[] classes();
+
+
+ /**
+ * Describe what the method does
+ *
+ * @return Describe the return value
+ * @todo-javadoc Write javadocs for method
+ * @todo-javadoc Write javadocs for return value
+ */
public XPackage[] specifiedPackages();
+
+
+ /**
+ * Describe what the method does
+ *
+ * @param name Describe what the parameter does
+ * @return Describe the return value
+ * @todo-javadoc Write javadocs for method
+ * @todo-javadoc Write javadocs for method parameter
+ * @todo-javadoc Write javadocs for return value
+ */
public XPackage packageNamed( String name );
}
1.3 +48 -3 xjavadoc/src/xjavadoc/XJavaDoclet.java
Index: XJavaDoclet.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XJavaDoclet.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- XJavaDoclet.java 18 Dec 2001 23:26:29 -0000 1.2
+++ XJavaDoclet.java 20 Feb 2002 00:12:01 -0000 1.3
@@ -1,10 +1,55 @@
+/*
+ * Copyright (c) 2001, Aslak Helles�y, BEKK Consulting
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of BEKK Consulting nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+/*
+ * Change log
+ *
+ */
package xjavadoc;
/**
- * The doclet-like interface for XJavaDoc doclets
- *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a> The
+ * doclet-like interface for XJavaDoc doclets
+ * @created 19. februar 2002
*/
public interface XJavaDoclet {
+ /**
+ * Describe what the method does
+ *
+ * @param xjavadoc Describe what the parameter does
+ * @exception XJavaDocException Describe the exception
+ * @todo-javadoc Write javadocs for method
+ * @todo-javadoc Write javadocs for method parameter
+ * @todo-javadoc Write javadocs for exception
+ */
public void start( XJavaDocRoot xjavadoc ) throws XJavaDocException;
}
1.3 +79 -17 xjavadoc/src/xjavadoc/XJavaDocException.java
Index: XJavaDocException.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XJavaDocException.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- XJavaDocException.java 18 Dec 2001 23:26:29 -0000 1.2
+++ XJavaDocException.java 20 Feb 2002 00:12:01 -0000 1.3
@@ -1,21 +1,83 @@
+/*
+ * Copyright (c) 2001, Aslak Helles�y, BEKK Consulting
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of BEKK Consulting nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGE.
+ */
+
+/*
+ * Change log
+ *
+ */
package xjavadoc;
-
+/**
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
+ * @created 19. februar 2002
+ */
public class XJavaDocException extends Exception {
+ /**
+ * @todo-javadoc Describe the field
+ */
private Throwable _source;
+
+ /**
+ * Describe what the XJavaDocException constructor does
+ *
+ * @param source Describe what the parameter does
+ * @todo-javadoc Write javadocs for constructor
+ * @todo-javadoc Write javadocs for method parameter
+ */
public XJavaDocException( Throwable source ) {
this( source.getMessage() );
_source = source;
}
+
+ /**
+ * Describe what the XJavaDocException constructor does
+ *
+ * @param message Describe what the parameter does
+ * @todo-javadoc Write javadocs for constructor
+ * @todo-javadoc Write javadocs for method parameter
+ */
public XJavaDocException( String message ) {
super( message );
}
+
+ /**
+ * Gets the Source attribute of the XJavaDocException object
+ *
+ * @return The Source value
+ */
public Throwable getSource() {
return _source;
}
}
-
1.12 +24 -15 xjavadoc/src/xjavadoc/XJavaDoc.java
Index: XJavaDoc.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XJavaDoc.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -w -r1.11 -r1.12
--- XJavaDoc.java 19 Feb 2002 19:13:49 -0000 1.11
+++ XJavaDoc.java 20 Feb 2002 00:12:01 -0000 1.12
@@ -47,15 +47,10 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
-import xjavadoc.ast.ASTCompilationUnit;
-import xjavadoc.ast.JavaParser;
-import xjavadoc.ast.ParseException;
-import xjavadoc.ast.Token;
/**
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
- * @todo separate the scanning in separate class
*/
public class XJavaDoc implements XJavaDocRoot, Serializable {
@@ -111,6 +106,11 @@
/**
* @todo-javadoc Describe the field
*/
+ private static JavaParser _javaParser;
+
+ /**
+ * @todo-javadoc Describe the field
+ */
private final static HashMap _primitiveClasses = new HashMap();
@@ -266,27 +266,33 @@
* @todo-javadoc Write javadocs for exception
*/
public XClass scan(String qualifiedName) throws XJavaDocException {
+ File f = null;
try {
- File f = new File(_dir, qualifiedName.replace('.', '/') +
".java");
+ f = new File(_dir, qualifiedName.replace('.', '/') + ".java");
if (!f.exists()) {
- throw new XJavaDocException("No source found for " +
qualifiedName);
+ throw new XJavaDocException("No source found for " +
qualifiedName + " at " + f.getAbsolutePath());
}
- System.out.println("Scanning class: " + qualifiedName);
+ _log.debug("Scanning class: " + qualifiedName);
Token.lastParsedToken = null;
SourceClass sourceClass = new SourceClass(null, qualifiedName);
Reader in = new FileReader(f);
- JavaParser javaParser = new JavaParser(in);
+ if (_javaParser == null) {
+ _javaParser = new JavaParser(in);
+ }
+ else {
+ _javaParser.ReInit(in);
+ }
_log.debug("Parsing " + sourceClass.qualifiedName());
- javaParser.CompilationUnit(sourceClass);
+ _javaParser.CompilationUnit(sourceClass);
_log.debug("Done. ");
return sourceClass;
} catch (FileNotFoundException e) {
throw new XJavaDocException(e.getMessage());
} catch (ParseException e) {
- throw new XJavaDocException(e.getMessage());
+ throw new XJavaDocException("Error parsing " +
f.getAbsolutePath() + ":" + e.getMessage());
}
}
@@ -299,14 +305,17 @@
* @todo-javadoc Write javadocs for exception
*/
public void scan() throws XJavaDocException {
+ long start = System.currentTimeMillis();
+ System.out.println("Scanning " + _files.length + " classes...");
for (int i = 0; i < _files.length; i++) {
- XClass clazz = scan(_files[i]);
String qualifiedName = _files[i].replace('/', '.');
qualifiedName = qualifiedName.replace('\\', '.');
+ qualifiedName = qualifiedName.substring(0,
qualifiedName.length() - 5);
+ XClass clazz = scan(qualifiedName);
_sourceClasses.put(qualifiedName, clazz);
}
-
- _log.debug("Done parsing");
+ long end = System.currentTimeMillis();
+ System.out.println("Scanned " + _sourceClasses.size() + " classes in "
+ (end - start) + " milliseconds.");
if (_docletClass != null) {
_log.debug("Running doclet " + _docletClass);
invokeDoclet();
1.2 +1 -0 xjavadoc/src/xjavadoc/XField.java
Index: XField.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XField.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- XField.java 17 Feb 2002 21:12:08 -0000 1.1
+++ XField.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -39,6 +39,7 @@
* Describe what this class does
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 16, 2002
* @todo-javadoc Write javadocs for interface
*/
1.7 +1 -0 xjavadoc/src/xjavadoc/XExecutableMember.java
Index: XExecutableMember.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XExecutableMember.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- XExecutableMember.java 19 Feb 2002 19:13:49 -0000 1.6
+++ XExecutableMember.java 20 Feb 2002 00:12:01 -0000 1.7
@@ -39,6 +39,7 @@
* Describe what this class does
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 17, 2002
* @todo-javadoc Write javadocs for interface
*/
1.2 +3 -3 xjavadoc/src/xjavadoc/XDocTest.java
Index: XDocTest.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XDocTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- XDocTest.java 9 Feb 2002 23:39:29 -0000 1.1
+++ XDocTest.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -37,12 +37,12 @@
import java.io.*;
import junit.framework.*;
-import xjavadoc.ast.Token;
+import xjavadoc.Token;
/**
* JUnit test for XDoc.
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
* @ejb:bla bla
* @param what about this one? Or this one?
@@ -86,7 +86,7 @@
Token token = Token.newToken(0);
token.image = javadoc;
- XDoc doc = new XDoc(token);
+ XDoc doc = new XDoc(token, token);
assertEquals("This is in the doc too JUnit test for JavaDocReader.",
doc.firstSentence());
assertEquals("This is in the doc too JUnit test for JavaDocReader.
This is sentence number two.", doc.commentText());
1.10 +39 -19 xjavadoc/src/xjavadoc/XDoc.java
Index: XDoc.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XDoc.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -w -r1.9 -r1.10
--- XDoc.java 19 Feb 2002 19:13:49 -0000 1.9
+++ XDoc.java 20 Feb 2002 00:12:01 -0000 1.10
@@ -46,14 +46,14 @@
import java.util.Iterator;
import xjavadoc.XTag;
import xjavadoc.XTagParameter;
-import xjavadoc.ast.Token;
+import xjavadoc.Token;
import xjavadoc.event.XDocListener;
import xjavadoc.event.XDocEvent;
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
* @todo-javadoc Write javadocs
* @todo implement removeTag method.
@@ -76,12 +76,22 @@
private final ArrayList _allTags = new ArrayList();
/**
+ * @todo-javadoc Describe the field
+ */
+ private boolean _dirty = true;
+
+ /**
* Token (which is linked in the AST) that holds the string representation of
* the doc. Needed for printing out the class.
*/
private final Token _javadocToken;
/**
+ * Token on which the javadoc belongs. Needed for proper indentation
+ */
+ private final Token _programElementToken;
+
+ /**
* @todo-javadoc Describe the field
*/
private HashSet _docListeners = new HashSet();
@@ -97,22 +107,29 @@
private static org.apache.log4j.Category _log =
org.apache.log4j.Category.getInstance(XDoc.class.getName());
-
/**
* Describe what the XDoc constructor does
*
* @param javadocToken Describe what the parameter does
+ * @param programElementToken Describe what the parameter does
+ * @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for constructor
* @todo-javadoc Write javadocs for method parameter
*/
- public XDoc(Token javadocToken) {
+ public XDoc(Token javadocToken, Token programElementToken) {
+ if (programElementToken == null) {
+ throw new IllegalStateException("programElementToken can't be
null");
+ }
+ if (programElementToken.image == null) {
+ throw new IllegalStateException("programElementToken's image
can't be null");
+ }
_javadocToken = javadocToken;
if (_javadocToken.image == null) {
// the passed token was not from source code, but was created
because no javadoc existed.
_javadocToken.image = "/**\n */";
}
- parse(_javadocToken.image);
+ _programElementToken = programElementToken;
}
@@ -123,7 +140,6 @@
*/
public void setJavadoc(String s) throws UnsupportedOperationException {
_javadocToken.image = s;
- parse(_javadocToken.image);
}
@@ -264,13 +280,13 @@
public String toString() {
StringBuffer sb = new StringBuffer("/**").append(NEWLINE);
if (!_commentText.trim().equals("")) {
- appendWhiteSpaces(sb, _javadocToken).append(" *
").append(_commentText).append(NEWLINE);
- appendWhiteSpaces(sb, _javadocToken).append(" *
").append(NEWLINE);
+ appendWhiteSpaces(sb).append(" *
").append(_commentText).append(NEWLINE);
+ appendWhiteSpaces(sb).append(" * ").append(NEWLINE);
}
// addSpaces(sb, _javadocToken).append(" * ").append(NEWLINE);
XTag[] tags = tags();
for (int i = 0; i < tags.length; i++) {
- appendWhiteSpaces(sb, _javadocToken).append(" *
@").append(tags[i].name());
+ appendWhiteSpaces(sb).append(" * @").append(tags[i].name());
XTagParameter[] parameters = tags[i].getParameters();
if (parameters.length == 0) {
// no parameters, or malformed
@@ -279,11 +295,11 @@
else {
sb.append(NEWLINE);
for (int j = 0; j < parameters.length; j++) {
- appendWhiteSpaces(sb, _javadocToken).append("
* ").append(parameters[j].toString()).append(NEWLINE);
+ appendWhiteSpaces(sb).append(" *
").append(parameters[j].toString()).append(NEWLINE);
}
}
}
- appendWhiteSpaces(sb, _javadocToken).append(" */");
+ appendWhiteSpaces(sb).append(" */");
return sb.toString();
}
@@ -308,6 +324,9 @@
* @todo-javadoc Write javadocs for return value
*/
public String firstSentence() {
+ if (_dirty) {
+ parse();
+ }
int dotIndex = _commentText.indexOf(".");
if (dotIndex != -1) {
return _commentText.substring(0, dotIndex) + ".";
@@ -341,6 +360,9 @@
* @todo-javadoc Write javadocs for return value
*/
public XTag[] tags(String tagName) {
+ if (_dirty) {
+ parse();
+ }
ArrayList tags = (ArrayList)_tagMap.get(tagName);
if (tags == null) {
return new XTag[0];
@@ -401,7 +423,6 @@
* @todo-javadoc Write javadocs for method
*/
private void fireDocChanged() {
-
for (Iterator i = _docListeners.iterator(); i.hasNext(); ) {
XDocListener docListener = (XDocListener)i.next();
docListener.docChanged(new XDocEvent(this));
@@ -413,7 +434,6 @@
* Describe the method
*
* @param sb Describe the method parameter
- * @param javadocToken Describe the method parameter
* @return Describe the return value
* @todo-javadoc Describe the method parameter
* @todo-javadoc Describe the method
@@ -421,12 +441,12 @@
* @todo-javadoc Describe the method parameter
* @todo-javadoc Write javadocs for return value
*/
- private StringBuffer appendWhiteSpaces(StringBuffer sb, Token javadocToken) {
- Token tk = javadocToken;
+ private StringBuffer appendWhiteSpaces(StringBuffer sb) {
+ Token tk = _programElementToken;
while (tk.previous != null && isTabOrSpace(tk.previous)) {
tk = tk.previous;
}
- while (tk != javadocToken) {
+ while (tk.next != null && tk != _programElementToken) {
sb.append(tk.image);
tk = tk.next;
}
@@ -437,14 +457,13 @@
/**
* Describe what the method does
*
- * @param javadoc Describe what the parameter does
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
*/
- private void parse(String javadoc) {
+ private void parse() {
_log.debug("parse");
// We must read line by line, since a @tags can only begin as the
first token of a line.
- BufferedReader in = new BufferedReader(new JavaDocReader(new
StringReader(javadoc)));
+ BufferedReader in = new BufferedReader(new JavaDocReader(new
StringReader(_javadocToken.image)));
StringBuffer docElement = new StringBuffer();
String tagName = null;
@@ -489,6 +508,7 @@
} catch (StringIndexOutOfBoundsException e) {
e.printStackTrace();
}
+ _dirty = false;
}
1.4 +1 -1 xjavadoc/src/xjavadoc/XConstructor.java
Index: XConstructor.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XConstructor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -r1.3 -r1.4
--- XConstructor.java 19 Feb 2002 19:13:49 -0000 1.3
+++ XConstructor.java 20 Feb 2002 00:12:01 -0000 1.4
@@ -38,7 +38,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 19. februar 2002
* @todo-javadoc Write javadocs for interface
*/
1.12 +1 -1 xjavadoc/src/xjavadoc/XClass.java
Index: XClass.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/XClass.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -w -r1.11 -r1.12
--- XClass.java 19 Feb 2002 19:13:49 -0000 1.11
+++ XClass.java 20 Feb 2002 00:12:01 -0000 1.12
@@ -41,7 +41,7 @@
/**
* This class represents any type: source class, binary class or primitive type.
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
*/
public interface XClass extends XProgramElement {
1.4 +2 -2 xjavadoc/src/xjavadoc/Util.java
Index: Util.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/Util.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -r1.3 -r1.4
--- Util.java 26 Jan 2002 18:25:07 -0000 1.3
+++ Util.java 20 Feb 2002 00:12:01 -0000 1.4
@@ -42,11 +42,11 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 20. januar 2002
* @todo-javadoc Write javadocs
*/
-public class Util {
+class Util {
/**
* @todo-javadoc Describe the field
1.7 +2 -1 xjavadoc/src/xjavadoc/UnknownClass.java
Index: UnknownClass.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/UnknownClass.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- UnknownClass.java 19 Feb 2002 19:13:49 -0000 1.6
+++ UnknownClass.java 20 Feb 2002 00:12:01 -0000 1.7
@@ -44,9 +44,10 @@
* XDoclet.
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 17, 2002
*/
-public class UnknownClass extends AbstractClass {
+class UnknownClass extends AbstractClass {
/**
* Describe what the UnknownClass constructor does
1.2 +11 -6 xjavadoc/src/xjavadoc/SourceClass.java
Index: SourceClass.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/SourceClass.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- SourceClass.java 19 Feb 2002 19:13:49 -0000 1.1
+++ SourceClass.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -37,15 +37,17 @@
import java.util.*;
import java.io.*;
-import xjavadoc.ast.*;
+import xjavadoc.*;
import java.lang.reflect.Modifier;
/**
- * @author Aslak Helles�y
+ * This class represents a class for which the source code is available
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
*/
-public class SourceClass extends AbstractClass {
+class SourceClass extends AbstractClass {
/**
* @todo-javadoc Describe the field
@@ -55,7 +57,8 @@
/**
* @todo-javadoc Describe the field
*/
- private ASTCompilationUnit _compilationUnit;
+// private ASTCompilationUnit _compilationUnit;
+ private SimpleNode _compilationUnit;
/**
* Get static reference to Log4J Logger
@@ -85,7 +88,8 @@
*
* @param compilationUnit The new CompilationUnit value
*/
- public void setCompilationUnit(ASTCompilationUnit compilationUnit) {
+ public void setCompilationUnit(SimpleNode compilationUnit) {
+// public void setCompilationUnit(ASTCompilationUnit compilationUnit) {
_compilationUnit = compilationUnit;
}
@@ -98,7 +102,8 @@
* @todo-javadoc Write javadocs for method parameter
*/
public void print(PrintStream out) {
- new PrintVisitor().visit(_compilationUnit, out);
+// new PrintVisitor().visit(_compilationUnit, out);
+ NodePrinter.print(_compilationUnit, out);
}
1.2 +6 -3 xjavadoc/src/xjavadoc/ProxyClass.java
Index: ProxyClass.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/ProxyClass.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- ProxyClass.java 19 Feb 2002 19:13:49 -0000 1.1
+++ ProxyClass.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -39,13 +39,16 @@
import java.io.IOException;
/**
- * Describe what this class does
+ * This class implements the GoF proxy pattern, and is used as a placeholder for
+ * classes that haven't yet been resolved. The reason to use this class is
+ * performance. The real class will be loaded as soon as any method is called,
+ * (except the qualifiedName() method).
*
- * @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 17, 2002
* @todo-javadoc Write javadocs
*/
-public class ProxyClass implements XClass {
+class ProxyClass implements XClass {
/**
* @todo-javadoc Describe the field
1.5 +2 -1 xjavadoc/src/xjavadoc/Primitive.java
Index: Primitive.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/Primitive.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -w -r1.4 -r1.5
--- Primitive.java 19 Feb 2002 19:13:49 -0000 1.4
+++ Primitive.java 20 Feb 2002 00:12:01 -0000 1.5
@@ -41,9 +41,10 @@
* This class represents primitive types
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 17, 2002
*/
-public class Primitive extends AbstractClass {
+class Primitive extends AbstractClass {
/**
* Describe what the Primitive constructor does
1.2 +2 -1 xjavadoc/src/xjavadoc/ParameterImpl.java
Index: ParameterImpl.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/ParameterImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- ParameterImpl.java 19 Feb 2002 19:13:49 -0000 1.1
+++ ParameterImpl.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -37,10 +37,11 @@
/**
* @author Ara Abrahamian ([EMAIL PROTECTED])
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created Feb 11, 2002
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
-public class ParameterImpl implements XParameter {
+class ParameterImpl implements XParameter {
/**
* @todo-javadoc Describe the field
1.2 +2 -2 xjavadoc/src/xjavadoc/MethodImpl.java
Index: MethodImpl.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/MethodImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- MethodImpl.java 19 Feb 2002 19:13:49 -0000 1.1
+++ MethodImpl.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -40,11 +40,11 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
* @todo-javadoc Write javadocs
*/
-public class MethodImpl extends AbstractExecutableMember implements XMethod {
+class MethodImpl extends AbstractExecutableMember implements XMethod {
/**
* @todo-javadoc Describe the field
*/
1.2 +1 -1 xjavadoc/src/xjavadoc/JavaDocReaderTest.java
Index: JavaDocReaderTest.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/JavaDocReaderTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- JavaDocReaderTest.java 9 Feb 2002 23:39:29 -0000 1.1
+++ JavaDocReaderTest.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -41,7 +41,7 @@
/**
* JUnit test for JavaDocReader.
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
* @ejb:bla bla
* @param what about this one? Or this one?
1.2 +1 -2 xjavadoc/src/xjavadoc/JavaDocReader.java
Index: JavaDocReader.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/JavaDocReader.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- JavaDocReader.java 9 Feb 2002 23:39:29 -0000 1.1
+++ JavaDocReader.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -40,10 +40,9 @@
/**
* A reader which strips away any spaces and stars at the beginning of javadoc
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
*/
-
class JavaDocReader extends FilterReader {
/**
1.2 +2 -1 xjavadoc/src/xjavadoc/FieldImpl.java
Index: FieldImpl.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/FieldImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- FieldImpl.java 19 Feb 2002 19:13:49 -0000 1.1
+++ FieldImpl.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -39,10 +39,11 @@
/**
* @author Ara Abrahamian ([EMAIL PROTECTED])
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created Feb 15, 2002
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
*/
-public class FieldImpl extends AbstractProgramElement implements XField {
+class FieldImpl extends AbstractProgramElement implements XField {
/**
* Describe what the SourceMethod constructor does
*
1.2 +1 -1 xjavadoc/src/xjavadoc/DefaultXTagFactory.java
Index: DefaultXTagFactory.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/DefaultXTagFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- DefaultXTagFactory.java 9 Feb 2002 23:39:29 -0000 1.1
+++ DefaultXTagFactory.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -38,7 +38,7 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 10. februar 2002
* @todo-javadoc Write javadocs
*/
1.3 +3 -3 xjavadoc/src/xjavadoc/DefaultXTag.java
Index: DefaultXTag.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/DefaultXTag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- DefaultXTag.java 10 Feb 2002 21:03:25 -0000 1.2
+++ DefaultXTag.java 20 Feb 2002 00:12:01 -0000 1.3
@@ -41,7 +41,7 @@
import java.util.HashMap;
/**
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 11. januar 2002
* @todo implement equals. seems xdoclet.util.DocletUtil.getTagsByName() wants
* it
@@ -318,7 +318,7 @@
i++;
}
else {
- _log.warn("Error in @tag: \" sign expected but
something different found, @tags=" + value);
+ _log.debug("Error in @tag: \" sign expected but
something different found, @tags=" + value);
return;
}
@@ -342,7 +342,7 @@
}
else {
//probably user does
not know escaping is needed!
- _log.warn("Error in
@tag: to put \" in a parameter value you need to escape \" character with \\\",
@tags=" + value);
+ _log.debug("Error in
@tag: to put \" in a parameter value you need to escape \" character with \\\",
@tags=" + value);
return;
}
}
1.2 +2 -2 xjavadoc/src/xjavadoc/ConstructorImpl.java
Index: ConstructorImpl.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/ConstructorImpl.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- ConstructorImpl.java 19 Feb 2002 19:13:49 -0000 1.1
+++ ConstructorImpl.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -38,11 +38,11 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 18. januar 2002
* @todo-javadoc Write javadocs
*/
-public class ConstructorImpl extends AbstractExecutableMember implements
XConstructor {
+class ConstructorImpl extends AbstractExecutableMember implements XConstructor {
/**
* Describe what the SourceConstructor constructor does
1.5 +2 -1 xjavadoc/src/xjavadoc/ClassDump.java
Index: ClassDump.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/ClassDump.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -w -r1.4 -r1.5
--- ClassDump.java 19 Feb 2002 19:13:49 -0000 1.4
+++ ClassDump.java 20 Feb 2002 00:12:01 -0000 1.5
@@ -42,8 +42,9 @@
/**
* @author Ara Abrahamian ([EMAIL PROTECTED])
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created Feb 2, 2002
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
public class ClassDump extends Task {
1.2 +2 -1 xjavadoc/src/xjavadoc/BinaryClass.java
Index: BinaryClass.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/BinaryClass.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- BinaryClass.java 19 Feb 2002 19:13:49 -0000 1.1
+++ BinaryClass.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -44,10 +44,11 @@
* Describe what this class does
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 17, 2002
* @todo-javadoc Write javadocs
*/
-public class BinaryClass extends AbstractClass {
+class BinaryClass extends AbstractClass {
/**
* Describe what the BinaryClass constructor does
1.2 +9 -9 xjavadoc/src/xjavadoc/AbstractProgramElement.java
Index: AbstractProgramElement.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/AbstractProgramElement.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- AbstractProgramElement.java 19 Feb 2002 19:13:49 -0000 1.1
+++ AbstractProgramElement.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -35,9 +35,9 @@
*/
package xjavadoc;
-import xjavadoc.ast.Token;
-import xjavadoc.ast.JavaParserConstants;
-import xjavadoc.ast.SimpleNode;
+import xjavadoc.Token;
+import xjavadoc.JavaParserConstants;
+import xjavadoc.SimpleNode;
import java.lang.reflect.Modifier;
@@ -45,10 +45,11 @@
* Describe what this class does
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 17, 2002
* @todo-javadoc Write javadocs
*/
-public abstract class AbstractProgramElement implements XProgramElement {
+abstract class AbstractProgramElement implements XProgramElement {
/**
* @todo-javadoc Describe the field
@@ -97,13 +98,12 @@
/**
- * Sets the Token where we start. Useful for mutation.
+ * Sets the Token where we start. Useful for doc mutation.
*
* @param token The new Token value
*/
public final void setToken(Token token) {
if (_token == null && token != null) {
- System.out.println("setToken:" + token.image);
_token = token;
}
}
@@ -139,10 +139,10 @@
public final void setDoc(Token javaDoc) {
if (javaDoc != null) {
if (_doc != null) {
- throw new IllegalStateException("Doc has already been
set!!");
+ //throw new IllegalStateException("Doc has already
been set!!");
}
else {
- _doc = new XDoc(javaDoc);
+ _doc = new XDoc(javaDoc, _token);
}
}
}
@@ -274,7 +274,7 @@
//postJavadocToken.next = firstParentToken;
firstParentToken.specialToken = preJavadocToken;
- _doc = new XDoc(javadocToken);
+ _doc = new XDoc(javadocToken, firstParentToken);
}
return _doc;
}
1.2 +2 -2 xjavadoc/src/xjavadoc/AbstractExecutableMember.java
Index: AbstractExecutableMember.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/AbstractExecutableMember.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- AbstractExecutableMember.java 19 Feb 2002 19:13:49 -0000 1.1
+++ AbstractExecutableMember.java 20 Feb 2002 00:12:01 -0000 1.2
@@ -41,11 +41,11 @@
/**
* Describe what this class does
*
- * @author Aslak Helles�y
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 8. januar 2002
* @todo-javadoc Write javadocs
*/
-public abstract class AbstractExecutableMember extends AbstractProgramElement
implements XExecutableMember {
+abstract class AbstractExecutableMember extends AbstractProgramElement implements
XExecutableMember {
/**
* @todo-javadoc Describe the field
1.3 +2 -1 xjavadoc/src/xjavadoc/AbstractClass.java
Index: AbstractClass.java
===================================================================
RCS file: /cvsroot/xdoclet/xjavadoc/src/xjavadoc/AbstractClass.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- AbstractClass.java 19 Feb 2002 19:13:49 -0000 1.2
+++ AbstractClass.java 20 Feb 2002 00:12:01 -0000 1.3
@@ -44,10 +44,11 @@
* Describe what this class does
*
* @author Ara Abrahamian
+ * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created February 17, 2002
* @todo-javadoc Write javadocs
*/
-public abstract class AbstractClass extends AbstractProgramElement implements
XClass {
+abstract class AbstractClass extends AbstractProgramElement implements XClass {
/**
* @todo-javadoc Describe the field
1.1 xjavadoc/src/xjavadoc/Token.java
Index: Token.java
===================================================================
/*
* Copyright (c) 2001, Aslak Helles�y, BEKK Consulting
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of BEKK Consulting nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
/*
* Change log
*
*/
package xjavadoc;
/**
* Describes the input token stream.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 16. januar 2002
*/
class Token {
/**
* An integer that describes the kind of this token. This numbering system is
* determined by JavaCCParser, and a table of these numbers is stored in the
* file ...Constants.java.
*/
public int kind;
/**
* beginLine and beginColumn describe the position of the first character of
* this token; endLine and endColumn describe the position of the last
* character of this token.
*/
public int beginLine, beginColumn, endLine, endColumn;
/**
* The string image of the token.
*/
public String image;
/**
* A reference to the next regular (non-special) token from the input stream.
* If this is the last token from the input stream, or if the token manager has
* not read tokens beyond this one, this field is set to null. This is true
* only if this token is also a regular token. Otherwise, see below for a
* description of the contents of this field.
*/
public Token next;
/**
* This field is used to access special tokens that occur prior to this token,
* but after the immediately preceding regular (non-special) token. If there
* are no such special tokens, this field is set to null. When there are more
* than one such special token, this field refers to the last of these special
* tokens, which in turn refers to the next previous special token through its
* specialToken field, and so on until the first special token (whose
* specialToken field is null). The next fields of special tokens refer to
* other special tokens that immediately follow it (without an intervening
* regular token). If there is no such token, this field is null.
*/
public Token specialToken;
/**
* @todo-javadoc Describe the field
*/
public Token previous;
/**
* Added for xjavadoc. We'll use this field to know the preceding whitespace
* when we encounter javadoc. Needed for proper indentation of javadoc
*/
public static Token lastParsedToken;
/**
* Describe what the Token constructor does
*
* @todo-javadoc Write javadocs for constructor
*/
public Token() {
}
/**
* Describe what the Token constructor does
*
* @param ofKind Describe what the parameter does
* @todo-javadoc Write javadocs for constructor
* @todo-javadoc Write javadocs for method parameter
*/
private Token(int ofKind) {
kind = ofKind;
previous = lastParsedToken;
lastParsedToken = this;
}
/**
* Returns the image.
*
* @return Describe the return value
* @todo-javadoc Write javadocs for return value
*/
public final String toString() {
return image;
}
/**
* Returns a new Token object, by default. However, if you want, you can create
* and return subclass objects based on the value of ofKind. Simply add the
* cases to the switch for all those special cases. For example, if you have a
* subclass of Token called IDToken that you want to create if ofKind is ID,
* simlpy add something like : case MyParserConstants.ID : return new
* IDToken(); to the following switch statement. Then you can cast matchedToken
* variable to the appropriate type and use it in your lexical actions.
*
* @param ofKind Describe what the parameter does
* @return Describe the return value
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
*/
public final static Token newToken(int ofKind) {
Token newToken = new Token(ofKind);
return newToken;
}
}
1.1 xjavadoc/src/xjavadoc/SimpleNode.java
Index: SimpleNode.java
===================================================================
/*
* Copyright (c) 2001, Aslak Helles�y, BEKK Consulting
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of BEKK Consulting nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
/*
* Change log
*
*/
package xjavadoc;
/**
* Describe what this class does
*
* @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 3. januar 2002
* @todo-javadoc Write javadocs
*/
class SimpleNode implements Node {
/**
* @todo-javadoc Describe the field
*/
protected Node parent;
/**
* @todo-javadoc Describe the field
*/
protected Node[] children;
/**
* @todo-javadoc Describe the field
*/
protected int id;
/**
* @todo-javadoc Describe the field
*/
protected JavaParser parser;
/**
* @todo-javadoc Describe the field
*/
protected Token first, last;
/**
* Get static reference to Log4J Logger
*/
private static org.apache.log4j.Category _log =
org.apache.log4j.Category.getInstance(SimpleNode.class.getName());
/**
* Describe what the SimpleNode constructor does
*
* @param i Describe what the parameter does
* @todo-javadoc Write javadocs for constructor
* @todo-javadoc Write javadocs for method parameter
*/
public SimpleNode(int i) {
id = i;
}
/**
* Describe what the SimpleNode constructor does
*
* @param p Describe what the parameter does
* @param i Describe what the parameter does
* @todo-javadoc Write javadocs for constructor
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method parameter
*/
public SimpleNode(final JavaParser p, int i) {
this(i);
parser = p;
}
/**
* Gets the FirstToken attribute of the SimpleNode object
*
* @return The FirstToken value
*/
public Token getFirstToken() {
return first;
}
// new
/**
* Gets the LastToken attribute of the SimpleNode object
*
* @return The LastToken value
*/
public Token getLastToken() {
return last;
}
/**
* Describe what the method does
*
* @todo-javadoc Write javadocs for method
*/
public void jjtOpen() {
first = parser.getToken(1);
// new
}
/**
* Describe what the method does
*
* @todo-javadoc Write javadocs for method
*/
public void jjtClose() {
last = parser.getToken(0);
// new
}
// new
/**
* Describe what the method does
*
* @param n Describe what the parameter does
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
*/
public void jjtSetParent(Node n) {
parent = n;
}
/**
* Describe what the method does
*
* @return Describe the return value
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for return value
*/
public Node jjtGetParent() {
return parent;
}
/**
* Describe what the method does
*
* @param n Describe what the parameter does
* @param i Describe what the parameter does
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method parameter
*/
public void jjtAddChild(Node n, int i) {
if (children == null) {
children = new Node[i + 1];
}
else if (i >= children.length) {
Node c[] = new Node[i + 1];
System.arraycopy(children, 0, c, 0, children.length);
children = c;
}
children[i] = n;
}
/**
* Describe what the method does
*
* @param i Describe what the parameter does
* @return Describe the return value
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
*/
public Node jjtGetChild(int i) {
return children[i];
}
/**
* Describe what the method does
*
* @return Describe the return value
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for return value
*/
public int jjtGetNumChildren() {
return (children == null) ? 0 : children.length;
}
/**
* Accept the visitor. *
*
* @return Describe the return value
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
*/
// public Object jjtAccept(JavaParserVisitor visitor, Object data) {
// return visitor.visit(this, data);
// }
/**
* Accept the visitor. *
*
* @return Describe the return value
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
*/
// public Object childrenAccept(JavaParserVisitor visitor, Object data) {
// if (children != null) {
// for (int i = 0; i < children.length; ++i) {
// children[i].jjtAccept(visitor, data);
// }
// }
// return data;
// }
/*
* You can override these two methods in subclasses of SimpleNode to
* customize the way the node appears when the tree is dumped. If
* your output uses more than one line you should override
* toString(String), otherwise overriding toString() is probably all
* you need to do.
*/
/**
* Describe what the method does
*
* @return Describe the return value
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for return value
*/
public String toString() {
return JavaParserTreeConstants.jjtNodeName[id];
}
/**
* Describe what the method does
*
* @param prefix Describe what the parameter does
* @return Describe the return value
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
*/
public String toString(String prefix) {
return prefix + toString();
}
/*
* Override this method if you want to customize how the node dumps
* out its children.
*/
/**
* Describe what the method does
*
* @param prefix Describe what the parameter does
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
*/
public void dump(String prefix) {
_log.debug(toString(prefix));
if (children != null) {
for (int i = 0; i < children.length; ++i) {
SimpleNode n = (SimpleNode)children[i];
if (n != null) {
n.dump(prefix + " ");
}
}
}
}
}
1.1 xjavadoc/src/xjavadoc/NoopDoclet.java
Index: NoopDoclet.java
===================================================================
/*
* Copyright (c) 2001, Aslak Helles�y, BEKK Consulting
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of BEKK Consulting nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
/*
* Change log
*
*/
package xjavadoc;
import com.sun.javadoc.*;
/**
* Used for benchmarking only
*
* @author Aslak Helles�y
* @created 19. februar 2002
* @todo-javadoc Write javadocs
*/
public class NoopDoclet extends Doclet {
/**
* @todo-javadoc Describe the field
*/
private static long _start;
/**
* Describe what the method does
*
* @param root Describe what the parameter does
* @return Describe the return value
* @todo-javadoc Write javadocs for exception
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
* @todo-javadoc Write javadocs for exception
*/
public static boolean start(RootDoc root) {
if (_start == 0) {
System.out.println("You must pass a dummy value to the doclet
for timing to work.");
}
long time = System.currentTimeMillis() - _start;
System.out.println("Classic parsed " + root.classes().length + "
classes in " + time + " milliseconds.");
return true;
}
/**
* Describe what the method does
*
* @param option Describe what the parameter does
* @return Describe the return value
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
*/
public static int optionLength(java.lang.String option) {
_start = System.currentTimeMillis();
return 1;
}
}
1.1 xjavadoc/src/xjavadoc/NodePrinter.java
Index: NodePrinter.java
===================================================================
/*
* Copyright (c) 2001, Aslak Helles�y, BEKK Consulting
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of BEKK Consulting nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
/*
* Change log
*
*/
package xjavadoc;
import java.io.PrintStream;
/**
* This visitor prints a node and all its children to a PrintStream. The
* PrintStream must be passed to the data variable in the jjtAccept method of
* the node from which printing should start. T print a whole class, call
* compilationUnit.jjtAccept( new PrintVisitor(), System.out );
*
* @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a>
* @created 8. januar 2002
* @todo replace PrintStream with PrintStream and remove the addUnicodeEscapes()
*/
class NodePrinter {
/**
* Describe the method
*
* @param str Describe the method parameter
* @return Describe the return value
* @todo-javadoc Describe the method
* @todo-javadoc Describe the method parameter
* @todo-javadoc Write javadocs for return value
*/
protected String addUnicodeEscapesOld(String str) {
String retval = "";
char ch;
for (int i = 0; i < str.length(); i++) {
ch = str.charAt(i);
if ((ch < 0x20 || ch > 0x7e) &&
ch != '\t' && ch != '\n' && ch != '\r' && ch
!= '\f') {
String s = "0000" + Integer.toString(ch, 16);
retval += "\\u" + s.substring(s.length() - 4,
s.length());
}
else {
retval += ch;
}
}
return retval;
}
/**
* Describe what the method does
*
* @param node Describe what the parameter does
* @param out Describe what the parameter does
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for return value
*/
public static void print(SimpleNode node, PrintStream out) {
Token t1 = node.getFirstToken();
Token t = new Token();
t.next = t1;
SimpleNode n;
for (int ord = 0; ord < node.jjtGetNumChildren(); ord++) {
n = (SimpleNode)node.jjtGetChild(ord);
while (true) {
t = t.next;
if (t == n.getFirstToken()) {
break;
}
print(t, out);
}
print(n, out);
t = n.getLastToken();
}
while (t != node.getLastToken() && t != null) {
// SECOND PREDICATE ADDED BY ASLAK AFTER ADDING
METHODMODIFIERS TO GRAMMAR
t = t.next;
if (t != null) {
print(t, out);
}
}
/*
* while (t != node.getLastToken()) {
* t = t.next;
* print(t, out);
* }
*/
//return data;
}
/**
* Describe what the method does
*
* @param t Describe what the parameter does
* @param out Describe what the parameter does
* @todo-javadoc Write javadocs for method
* @todo-javadoc Write javadocs for method parameter
* @todo-javadoc Write javadocs for method parameter
*/
private final static void print(Token t, PrintStream out) {
Token tt = t.specialToken;
if (tt != null) {
while (tt.specialToken != null) {
tt = tt.specialToken;
}
while (tt != null) {
out.print(addUnicodeEscapes(tt.image));
// out.print(tt.image);
tt = tt.next;
}
}
out.print(addUnicodeEscapes(t.image));
// out.print(t.image);
}
/**
* Describe the method
*
* @param str Describe the method parameter
* @return Describe the return value
* @todo-javadoc Describe the method
* @todo-javadoc Describe the method parameter
* @todo-javadoc Write javadocs for return value
*/
private final static String addUnicodeEscapes(final String str) {
return str;
}
}
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel