From d5165134df129951544fa354b74b256bdb482688 Mon Sep 17 00:00:00 2001 From: mkersten Date: Wed, 10 Mar 2004 21:18:21 +0000 Subject: [PATCH] Fixed generation and access of return types on IProgramElements(s). --- asm/src/org/aspectj/asm/IProgramElement.java | 16 ++++++++++++++-- .../org/aspectj/asm/internal/ProgramElement.java | 6 +++--- .../core/builder/AsmElementFormatter.java | 4 ++-- .../core/builder/AsmHierarchyBuilder.java | 7 ++++++- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/asm/src/org/aspectj/asm/IProgramElement.java b/asm/src/org/aspectj/asm/IProgramElement.java index f45493e4e..8bf641ce8 100644 --- a/asm/src/org/aspectj/asm/IProgramElement.java +++ b/asm/src/org/aspectj/asm/IProgramElement.java @@ -49,8 +49,15 @@ public interface IProgramElement extends Serializable { public String getDeclaringType(); // TODO: remove (Emacs uses it) public String getPackageName(); - public void setReturnType(String returnType); - public String getReturnType(); + /** + * @param method return types or field types + */ + public void setCorrespondingType(String returnType); + + /** + * This correponds to both method return types and field types. + */ + public String getCorrespondingType(); public String toSignatureString(); @@ -71,6 +78,11 @@ public interface IProgramElement extends Serializable { public String toString(); + /** + * @return the javadoc comment for this program element, null if not available + */ + public String getFormalComment(); + /** * Includes information about the origin of the node. */ diff --git a/asm/src/org/aspectj/asm/internal/ProgramElement.java b/asm/src/org/aspectj/asm/internal/ProgramElement.java index 559abd353..6f83e3be9 100644 --- a/asm/src/org/aspectj/asm/internal/ProgramElement.java +++ b/asm/src/org/aspectj/asm/internal/ProgramElement.java @@ -33,7 +33,7 @@ public class ProgramElement implements IProgramElement { protected List children = new ArrayList(); protected IMessage message = null; protected ISourceLocation sourceLocation = null; - + private List modifiers = new ArrayList(); private List relations = new ArrayList(); @@ -281,11 +281,11 @@ public class ProgramElement implements IProgramElement { this.kind = kind; } - public void setReturnType(String returnType) { + public void setCorrespondingType(String returnType) { this.returnType = returnType; } - public String getReturnType() { + public String getCorrespondingType() { return returnType; } diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmElementFormatter.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmElementFormatter.java index eddc09cde..14e89d232 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmElementFormatter.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmElementFormatter.java @@ -38,7 +38,7 @@ public class AsmElementFormatter { node.setKind(IProgramElement.Kind.ADVICE); if (ad.kind == AdviceKind.Around) { - node.setReturnType(ad.returnType.toString()); //returnTypeToString(0)); + node.setCorrespondingType(ad.returnType.toString()); //returnTypeToString(0)); } String details = ""; @@ -131,7 +131,7 @@ public class AsmElementFormatter { node.setKind(IProgramElement.Kind.ERROR); } node.setName(name); - node.setReturnType(itd.returnType.toString()); + node.setCorrespondingType(itd.returnType.toString()); if (node.getKind() != IProgramElement.Kind.INTER_TYPE_FIELD) { setParameters(methodDeclaration, node); } diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java index 3091094d7..2aa2e07ca 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java @@ -276,6 +276,7 @@ public class AsmHierarchyBuilder extends ASTVisitor { formatter.genLabelAndKind(methodDeclaration, peNode); genBytecodeInfo(methodDeclaration, peNode); peNode.setModifiers(methodDeclaration.modifiers); + peNode.setCorrespondingType(methodDeclaration.returnType.toString()); // TODO: add return type test if (peNode.getKind().equals(IProgramElement.Kind.METHOD)) { @@ -285,6 +286,7 @@ public class AsmHierarchyBuilder extends ASTVisitor { ((IProgramElement)stack.peek()).setRunnable(true); } } + stack.push(peNode); return true; } @@ -351,7 +353,10 @@ public class AsmHierarchyBuilder extends ASTVisitor { makeLocation(fieldDeclaration), fieldDeclaration.modifiers, "", - new ArrayList()); + new ArrayList()); + + peNode.setCorrespondingType(fieldDeclaration.type.toString()); + ((IProgramElement)stack.peek()).addChild(peNode); stack.push(peNode); return true; -- 2.39.5