import org.aspectj.weaver.patterns.ReferencePointcut;
/**
- * At each iteration of <CODE>processCompilationUnit</CODE> the declarations for
- * a particular compilation unit are added to the hierarchy passed as a a
- * parameter.
+ * At each iteration of <CODE>processCompilationUnit</CODE> the declarations for a particular compilation unit are added to the
+ * hierarchy passed as a a parameter.
* <p>
- * Clients who extend this class need to ensure that they do not override any of
- * the existing behavior. If they do, the structure model will not be built
- * properly and tools such as IDE structure views and ajdoc will fail.
+ * Clients who extend this class need to ensure that they do not override any of the existing behavior. If they do, the structure
+ * model will not be built properly and tools such as IDE structure views and ajdoc will fail.
* <p>
- * <b>Note:</b> this class is not considered public API and the overridable
- * methods are subject to change.
+ * <b>Note:</b> this class is not considered public API and the overridable methods are subject to change.
*
* @author Mik Kersten
*/
*
* @param cuDeclaration
* @param buildConfig
- * @param structureModel
- * hiearchy to add this unit's declarations to
+ * @param structureModel hiearchy to add this unit's declarations to
*/
- public void buildStructureForCompilationUnit(
- CompilationUnitDeclaration cuDeclaration,
- IHierarchy structureModel, AjBuildConfig buildConfig) {
+ public void buildStructureForCompilationUnit(CompilationUnitDeclaration cuDeclaration, IHierarchy structureModel,
+ AjBuildConfig buildConfig) {
currCompilationResult = cuDeclaration.compilationResult();
filename = new String(currCompilationResult.fileName);
lineseps = currCompilationResult.lineSeparatorPositions;
// throw new RuntimeException("not implemented");
}
- private void internalBuild(CompilationUnitDeclaration unit,
- IHierarchy structureModel) {
+ private void internalBuild(CompilationUnitDeclaration unit, IHierarchy structureModel) {
LangUtil.throwIaxIfNull(structureModel, "structureModel");
// if (!currCompilationResult.equals(unit.compilationResult())) {
// throw new IllegalArgumentException("invalid unit: " + unit);
// AMC - use the source start and end from the compilation unit decl
int startLine = getStartLine(unit);
int endLine = getEndLine(unit);
- SourceLocation sourceLocation = new SourceLocation(file, startLine,
- endLine);
+ SourceLocation sourceLocation = new SourceLocation(file, startLine, endLine);
sourceLocation.setOffset(unit.sourceStart);
- cuNode = new ProgramElement(new String(file.getName()),
- IProgramElement.Kind.FILE_JAVA, sourceLocation, 0, null,
- null);
+ cuNode = new ProgramElement(new String(file.getName()), IProgramElement.Kind.FILE_JAVA, sourceLocation, 0, null, null);
}
- cuNode.addChild(new ProgramElement("import declarations",
- IProgramElement.Kind.IMPORT_REFERENCE, null, 0, null, null));
+ cuNode.addChild(new ProgramElement("import declarations", IProgramElement.Kind.IMPORT_REFERENCE, null, 0, null, null));
- final IProgramElement addToNode = genAddToNode(file, unit,
- structureModel);
+ final IProgramElement addToNode = genAddToNode(file, unit, structureModel);
// -- remove duplicates before adding (XXX use them instead?)
if (addToNode != null && addToNode.getChildren() != null) {
- for (ListIterator itt = addToNode.getChildren().listIterator(); itt
- .hasNext();) {
+ for (ListIterator itt = addToNode.getChildren().listIterator(); itt.hasNext();) {
IProgramElement child = (IProgramElement) itt.next();
ISourceLocation childLoc = child.getSourceLocation();
if (null == childLoc) {
try {
structureModel.addToFileMap(file.getCanonicalPath(), cuNode);
} catch (IOException e) {
- System.err.println("IOException " + e.getMessage()
- + " creating path for " + file);
+ System.err.println("IOException " + e.getMessage() + " creating path for " + file);
// XXX signal IOException when canonicalizing file path
}
}
- private IProgramElement findOrCreateChildSourceFolder(String sourceFolder,
- IHierarchy structureModel) {
+ private IProgramElement findOrCreateChildSourceFolder(String sourceFolder, IHierarchy structureModel) {
IProgramElement root = structureModel.getRoot();
// Check if already there
IProgramElement sourceFolderNode = null;
List kids = root.getChildren();
for (Iterator iterator = kids.iterator(); iterator.hasNext();) {
IProgramElement child = (IProgramElement) iterator.next();
- if (child.getKind() == IProgramElement.Kind.SOURCE_FOLDER
- && child.getName().equals(sourceFolder)) {
+ if (child.getKind() == IProgramElement.Kind.SOURCE_FOLDER && child.getName().equals(sourceFolder)) {
sourceFolderNode = child;
break;
}
}
if (sourceFolderNode == null) {
- sourceFolderNode = new ProgramElement(sourceFolder,
- IProgramElement.Kind.SOURCE_FOLDER, new ArrayList());
+ sourceFolderNode = new ProgramElement(sourceFolder, IProgramElement.Kind.SOURCE_FOLDER, new ArrayList());
root.addChild(sourceFolderNode);
}
return sourceFolderNode;
/**
* Get/create the node (package or root) to add to.
*/
- private IProgramElement genAddToNode(File sourceFile,
- CompilationUnitDeclaration unit, IHierarchy structureModel) {
+ private IProgramElement genAddToNode(File sourceFile, CompilationUnitDeclaration unit, IHierarchy structureModel) {
final IProgramElement addToNode;
{
- CompilationResultDestinationManager manager = buildConfig
- .getCompilationResultDestinationManager();
- String sourceFolder = (manager == null ? null : manager
- .getSourceFolderForFile(sourceFile));
+ CompilationResultDestinationManager manager = buildConfig.getCompilationResultDestinationManager();
+ String sourceFolder = (manager == null ? null : manager.getSourceFolderForFile(sourceFile));
ImportReference unitPackage = unit.currentPackage;
if (sourceFolder == null) {
addToNode = structureModel.getRoot();
} else {
- addToNode = findOrCreateChildSourceFolder(sourceFolder,
- structureModel);
+ addToNode = findOrCreateChildSourceFolder(sourceFolder, structureModel);
}
} else {
IProgramElement rootForSource = structureModel.getRoot();
if (sourceFolder != null) {
- rootForSource = findOrCreateChildSourceFolder(sourceFolder,
- structureModel);
+ rootForSource = findOrCreateChildSourceFolder(sourceFolder, structureModel);
}
String pkgName;
{
}
IProgramElement pkgNode = null;
- if (structureModel != null && structureModel.getRoot() != null
- && rootForSource.getChildren() != null) {
- for (Iterator it = rootForSource.getChildren().iterator(); it
- .hasNext();) {
+ if (structureModel != null && structureModel.getRoot() != null && rootForSource.getChildren() != null) {
+ for (Iterator it = rootForSource.getChildren().iterator(); it.hasNext();) {
IProgramElement currNode = (IProgramElement) it.next();
if (pkgName.equals(currNode.getName())) {
pkgNode = currNode;
}
if (pkgNode == null) {
// note packages themselves have no source location
- pkgNode = new ProgramElement(pkgName,
- IProgramElement.Kind.PACKAGE, new ArrayList());
+ pkgNode = new ProgramElement(pkgName, IProgramElement.Kind.PACKAGE, new ArrayList());
rootForSource.addChild(pkgNode);
}
addToNode = pkgNode;
return addToNode;
}
- public boolean visit(TypeDeclaration typeDeclaration,
- CompilationUnitScope scope) {
+ public boolean visit(TypeDeclaration typeDeclaration, CompilationUnitScope scope) {
String name = new String(typeDeclaration.name);
IProgramElement.Kind kind = IProgramElement.Kind.CLASS;
if (typeDeclaration instanceof AspectDeclaration)
if (typeDeclaration.annotations != null) {
for (int i = 0; i < typeDeclaration.annotations.length; i++) {
Annotation annotation = typeDeclaration.annotations[i];
- if (Arrays.equals(annotation.type.getTypeBindingPublic(scope)
- .signature(), "Lorg/aspectj/lang/annotation/Aspect;"
+ if (Arrays.equals(annotation.type.getTypeBindingPublic(scope).signature(), "Lorg/aspectj/lang/annotation/Aspect;"
.toCharArray())) {
kind = IProgramElement.Kind.ASPECT;
} else {
// Creating the char[][] needed for ImportReference
- String[] temp = (new String(annotation.resolvedType
- .constantPoolName())).split("/");
+ String[] temp = (new String(annotation.resolvedType.constantPoolName())).split("/");
if (temp.length > 1) {
char[][] path = new char[temp.length][];
for (int k = 0; k < temp.length; k++) {
// Create the ImportReference needed to add a
// ProgramElement
- ImportReference importRef = new ImportReference(path,
- new long[] { 0 }, false, 0);
- ProgramElement ceNode = new ProgramElement(importRef
- .toString(),
- IProgramElement.Kind.IMPORT_REFERENCE,
+ ImportReference importRef = new ImportReference(path, new long[] { 0 }, false, 0);
+ ProgramElement ceNode = new ProgramElement(importRef.toString(), IProgramElement.Kind.IMPORT_REFERENCE,
makeLocation(importRef), 0, null, null);
- ceNode
- .setSourceSignature(genSourceSignature(importRef));
+ ceNode.setSourceSignature(genSourceSignature(importRef));
// Add Element to Imports of Current Class
- ProgramElement imports = (ProgramElement) ((ProgramElement) stack
- .peek()).getChildren().get(0);
+ ProgramElement imports = (ProgramElement) ((ProgramElement) stack.peek()).getChildren().get(0);
imports.addChild(0, ceNode);
}
}
int typeModifiers = typeDeclaration.modifiers;
if (typeDeclaration instanceof AspectDeclaration) {
- typeModifiers = ((AspectDeclaration) typeDeclaration)
- .getDeclaredModifiers();
+ typeModifiers = ((AspectDeclaration) typeDeclaration).getDeclaredModifiers();
}
- IProgramElement peNode = new ProgramElement(name, kind,
- makeLocation(typeDeclaration), typeModifiers, null, null);
+ IProgramElement peNode = new ProgramElement(name, kind, makeLocation(typeDeclaration), typeModifiers, null, null);
peNode.setSourceSignature(genSourceSignature(typeDeclaration));
peNode.setFormalComment(generateJavadocComment(typeDeclaration));
return true;
}
- public void endVisit(TypeDeclaration typeDeclaration,
- CompilationUnitScope scope) {
+ public void endVisit(TypeDeclaration typeDeclaration, CompilationUnitScope scope) {
stack.pop();
}
String name = new String(memberTypeDeclaration.name);
IProgramElement.Kind kind = IProgramElement.Kind.CLASS;
- int typeDeclarationKind = TypeDeclaration
- .kind(memberTypeDeclaration.modifiers);
+ int typeDeclarationKind = TypeDeclaration.kind(memberTypeDeclaration.modifiers);
if (memberTypeDeclaration instanceof AspectDeclaration)
kind = IProgramElement.Kind.ASPECT;
else if (typeDeclarationKind == TypeDeclaration.INTERFACE_DECL)
if (memberTypeDeclaration.annotations != null) {
for (int i = 0; i < memberTypeDeclaration.annotations.length; i++) {
Annotation annotation = memberTypeDeclaration.annotations[i];
- if (Arrays.equals(annotation.type.getTypeBindingPublic(scope)
- .signature(), "Lorg/aspectj/lang/annotation/Aspect;"
+ if (Arrays.equals(annotation.type.getTypeBindingPublic(scope).signature(), "Lorg/aspectj/lang/annotation/Aspect;"
.toCharArray())) {
kind = IProgramElement.Kind.ASPECT;
}
int typeModifiers = memberTypeDeclaration.modifiers;
if (memberTypeDeclaration instanceof AspectDeclaration) {
- typeModifiers = ((AspectDeclaration) memberTypeDeclaration)
- .getDeclaredModifiers();
+ typeModifiers = ((AspectDeclaration) memberTypeDeclaration).getDeclaredModifiers();
}
- IProgramElement peNode = new ProgramElement(name, kind,
- makeLocation(memberTypeDeclaration), typeModifiers, null, null);
+ IProgramElement peNode = new ProgramElement(name, kind, makeLocation(memberTypeDeclaration), typeModifiers, null, null);
peNode.setSourceSignature(genSourceSignature(memberTypeDeclaration));
peNode.setFormalComment(generateJavadocComment(memberTypeDeclaration));
public boolean visit(TypeDeclaration memberTypeDeclaration, BlockScope scope) {
String fullName = "<undefined>";
- if (memberTypeDeclaration.allocation != null
- && memberTypeDeclaration.allocation.type != null) {
+ if (memberTypeDeclaration.allocation != null && memberTypeDeclaration.allocation.type != null) {
// Create a name something like 'new Runnable() {..}'
- fullName = "new "
- + memberTypeDeclaration.allocation.type.toString()
- + "() {..}";
- } else if (memberTypeDeclaration.binding != null
- && memberTypeDeclaration.binding.constantPoolName() != null) {
+ fullName = "new " + memberTypeDeclaration.allocation.type.toString() + "() {..}";
+ } else if (memberTypeDeclaration.binding != null && memberTypeDeclaration.binding.constantPoolName() != null) {
// If we couldn't find a nice name like 'new Runnable() {..}' then
// use the number after the $
- fullName = new String(memberTypeDeclaration.binding
- .constantPoolName());
+ fullName = new String(memberTypeDeclaration.name);
+ // fullName = new String(memberTypeDeclaration.binding
+ // .constantPoolName());
int dollar = fullName.indexOf('$');
fullName = fullName.substring(dollar + 1);
if (memberTypeDeclaration.annotations != null) {
for (int i = 0; i < memberTypeDeclaration.annotations.length; i++) {
Annotation annotation = memberTypeDeclaration.annotations[i];
- if (Arrays.equals(annotation.type.getTypeBindingPublic(scope)
- .signature(), "Lorg/aspectj/lang/annotation/Aspect;"
+ if (Arrays.equals(annotation.type.getTypeBindingPublic(scope).signature(), "Lorg/aspectj/lang/annotation/Aspect;"
.toCharArray())) {
kind = IProgramElement.Kind.ASPECT;
break;
}
}
- IProgramElement peNode = new ProgramElement(fullName, kind,
- makeLocation(memberTypeDeclaration),
+ IProgramElement peNode = new ProgramElement(fullName, kind, makeLocation(memberTypeDeclaration),
memberTypeDeclaration.modifiers, null, null);
peNode.setSourceSignature(genSourceSignature(memberTypeDeclaration));
peNode.setFormalComment(generateJavadocComment(memberTypeDeclaration));
// if we're something like 'new Runnable(){..}' then set the
// bytecodeSignature to be the typename so we can match it later
// when creating the structure model
- if (peNode.getBytecodeSignature() == null
- && memberTypeDeclaration.binding != null
+ if (peNode.getBytecodeSignature() == null && memberTypeDeclaration.binding != null
&& memberTypeDeclaration.binding.constantPoolName() != null) {
- StringTokenizer st = new StringTokenizer(new String(
- memberTypeDeclaration.binding.constantPoolName()), "/");
+ StringTokenizer st = new StringTokenizer(new String(memberTypeDeclaration.binding.constantPoolName()), "/");
while (st.hasMoreTokens()) {
String s = st.nextToken();
if (!st.hasMoreTokens()) {
if (methodDeclaration instanceof InterTypeDeclaration) {
InterTypeDeclaration itd = (InterTypeDeclaration) methodDeclaration;
ResolvedMember sig = itd.getSignature();
- peNode = new ProgramElement(null, IProgramElement.Kind.ERROR,
- makeLocation(methodDeclaration), (sig != null ? sig
- .getModifiers() : 0), null, null);
+ peNode = new ProgramElement(null, IProgramElement.Kind.ERROR, makeLocation(methodDeclaration), (sig != null ? sig
+ .getModifiers() : 0), null, null);
} else {
- peNode = new ProgramElement(null, IProgramElement.Kind.ERROR,
- makeLocation(methodDeclaration),
+ peNode = new ProgramElement(null, IProgramElement.Kind.ERROR, makeLocation(methodDeclaration),
methodDeclaration.modifiers, null, null);
}
formatter.genLabelAndKind(methodDeclaration, peNode); // will set the
genBytecodeInfo(methodDeclaration, peNode);
List namedPointcuts = genNamedPointcuts(methodDeclaration);
if (shouldAddUsesPointcut)
- addUsesPointcutRelationsForNode(peNode, namedPointcuts,
- methodDeclaration);
+ addUsesPointcutRelationsForNode(peNode, namedPointcuts, methodDeclaration);
if (methodDeclaration.returnType != null) {
// if we don't make the distinction between ITD fields and other
// methods, then we loose the type, for example int, for the field
// and instead get "void".
if (peNode.getKind().equals(IProgramElement.Kind.INTER_TYPE_FIELD)) {
- peNode.setCorrespondingType(methodDeclaration.returnType
- .toString());
+ peNode.setCorrespondingType(methodDeclaration.returnType.toString());
} else {
if (methodDeclaration.returnType.resolvedType != null)
- peNode
- .setCorrespondingType(methodDeclaration.returnType.resolvedType
- .debugName());
+ peNode.setCorrespondingType(methodDeclaration.returnType.resolvedType.debugName());
else
peNode.setCorrespondingType(null);
}
// TODO: add return type test
if (peNode.getKind().equals(IProgramElement.Kind.METHOD)) {
if ((peNode.getName().charAt(0) == 'm')
- && (peNode.toLabelString().equals("main(String[])") || peNode
- .toLabelString().equals("main(java.lang.String[])"))
- && peNode.getModifiers().contains(
- IProgramElement.Modifiers.STATIC)
- && peNode.getAccessibility().equals(
- IProgramElement.Accessibility.PUBLIC)) {
+ && (peNode.toLabelString().equals("main(String[])") || peNode.toLabelString()
+ .equals("main(java.lang.String[])"))
+ && peNode.getModifiers().contains(IProgramElement.Modifiers.STATIC)
+ && peNode.getAccessibility().equals(IProgramElement.Accessibility.PUBLIC)) {
((IProgramElement) stack.peek()).setRunnable(true);
}
}
return true;
}
- private void addUsesPointcutRelationsForNode(IProgramElement peNode,
- List namedPointcuts, MethodDeclaration declaration) {
+ private void addUsesPointcutRelationsForNode(IProgramElement peNode, List namedPointcuts, MethodDeclaration declaration) {
for (Iterator it = namedPointcuts.iterator(); it.hasNext();) {
ReferencePointcut rp = (ReferencePointcut) it.next();
ResolvedMember member = getPointcutDeclaration(rp, declaration);
if (member != null) {
- IRelationship foreward = AsmManager.getDefault()
- .getRelationshipMap().get(peNode.getHandleIdentifier(),
- IRelationship.Kind.USES_POINTCUT,
- "uses pointcut", false, true);
- IProgramElement forwardIPE = AsmManager.getDefault()
- .getHierarchy().findElementForSourceLine(
- member.getSourceLocation());
- foreward.addTarget(AsmManager.getDefault().getHandleProvider()
- .createHandleIdentifier(forwardIPE));
-
- IRelationship back = AsmManager.getDefault()
- .getRelationshipMap().get(
- AsmManager.getDefault().getHandleProvider()
- .createHandleIdentifier(forwardIPE),
- IRelationship.Kind.USES_POINTCUT,
- "pointcut used by", false, true);
+ IRelationship foreward = AsmManager.getDefault().getRelationshipMap().get(peNode.getHandleIdentifier(),
+ IRelationship.Kind.USES_POINTCUT, "uses pointcut", false, true);
+ IProgramElement forwardIPE = AsmManager.getDefault().getHierarchy().findElementForSourceLine(
+ member.getSourceLocation());
+ foreward.addTarget(AsmManager.getDefault().getHandleProvider().createHandleIdentifier(forwardIPE));
+
+ IRelationship back = AsmManager.getDefault().getRelationshipMap().get(
+ AsmManager.getDefault().getHandleProvider().createHandleIdentifier(forwardIPE),
+ IRelationship.Kind.USES_POINTCUT, "pointcut used by", false, true);
back.addTarget(peNode.getHandleIdentifier());
}
}
}
- private ResolvedMember getPointcutDeclaration(ReferencePointcut rp,
- MethodDeclaration declaration) {
- EclipseFactory factory = ((AjLookupEnvironment) declaration.scope
- .environment()).factory;
+ private ResolvedMember getPointcutDeclaration(ReferencePointcut rp, MethodDeclaration declaration) {
+ EclipseFactory factory = ((AjLookupEnvironment) declaration.scope.environment()).factory;
World world = factory.getWorld();
UnresolvedType onType = rp.onType;
if (onType == null) {
/**
* @param methodDeclaration
- * @return all of the named pointcuts referenced by the PCD of this
- * declaration
+ * @return all of the named pointcuts referenced by the PCD of this declaration
*/
private List genNamedPointcuts(MethodDeclaration methodDeclaration) {
List pointcuts = new ArrayList();
if (methodDeclaration instanceof AdviceDeclaration) {
if (((AdviceDeclaration) methodDeclaration).pointcutDesignator != null)
- addAllNamed(
- ((AdviceDeclaration) methodDeclaration).pointcutDesignator
- .getPointcut(), pointcuts);
+ addAllNamed(((AdviceDeclaration) methodDeclaration).pointcutDesignator.getPointcut(), pointcuts);
} else if (methodDeclaration instanceof PointcutDeclaration) {
if (((PointcutDeclaration) methodDeclaration).pointcutDesignator != null)
- addAllNamed(
- ((PointcutDeclaration) methodDeclaration).pointcutDesignator
- .getPointcut(), pointcuts);
+ addAllNamed(((PointcutDeclaration) methodDeclaration).pointcutDesignator.getPointcut(), pointcuts);
}
return pointcuts;
}
/**
* @param left
- * @param pointcuts
- * accumulator for named pointcuts
+ * @param pointcuts accumulator for named pointcuts
*/
private void addAllNamed(Pointcut pointcut, List pointcuts) {
if (pointcut == null)
output.append("> ");
}
- methodDeclaration.printReturnType(0, output).append(
- methodDeclaration.selector).append('(');
+ methodDeclaration.printReturnType(0, output).append(methodDeclaration.selector).append('(');
if (methodDeclaration.arguments != null) {
for (int i = 0; i < methodDeclaration.arguments.length; i++) {
if (i > 0)
// }
// ((IProgramElement)stack.peek()).addChild(peNode);
// }
- protected void genBytecodeInfo(MethodDeclaration methodDeclaration,
- IProgramElement peNode) {
+ protected void genBytecodeInfo(MethodDeclaration methodDeclaration, IProgramElement peNode) {
if (methodDeclaration.binding != null) {
try {
- EclipseFactory factory = ((AjLookupEnvironment) methodDeclaration.scope
- .environment()).factory;
- Member member = factory
- .makeResolvedMember(methodDeclaration.binding);
+ EclipseFactory factory = ((AjLookupEnvironment) methodDeclaration.scope.environment()).factory;
+ Member member = factory.makeResolvedMember(methodDeclaration.binding);
peNode.setBytecodeName(member.getName());
peNode.setBytecodeSignature(member.getSignature());
} catch (BCException bce) { // bad type name
if (dotIndex != -1) {
currPackageImport = importRef.toString().substring(0, dotIndex);
}
- if (!((ProgramElement) stack.peek()).getPackageName().equals(
- currPackageImport)) {
+ if (!((ProgramElement) stack.peek()).getPackageName().equals(currPackageImport)) {
- ProgramElement peNode = new ProgramElement(new String(importRef
- .toString()), IProgramElement.Kind.IMPORT_REFERENCE,
+ ProgramElement peNode = new ProgramElement(new String(importRef.toString()), IProgramElement.Kind.IMPORT_REFERENCE,
makeLocation(importRef), 0,// could set static here, but for
// some reason the info is
// private
// create Source signature for import
peNode.setSourceSignature(genSourceSignature(importRef));
- ProgramElement imports = (ProgramElement) ((ProgramElement) stack
- .peek()).getChildren().get(0);
+ ProgramElement imports = (ProgramElement) ((ProgramElement) stack.peek()).getChildren().get(0);
imports.addChild(0, peNode);
stack.push(peNode);
}
if (dotIndex != -1) {
currPackageImport = importRef.toString().substring(0, dotIndex);
}
- if (!((ProgramElement) stack.peek()).getPackageName().equals(
- currPackageImport)) {
+ if (!((ProgramElement) stack.peek()).getPackageName().equals(currPackageImport)) {
stack.pop();
}
}
IProgramElement peNode = null;
if (fieldDeclaration.type == null) { // The field represents an enum
// value
- peNode = new ProgramElement(new String(fieldDeclaration.name),
- IProgramElement.Kind.ENUM_VALUE,
- makeLocation(fieldDeclaration), fieldDeclaration.modifiers,
- null, null);
- peNode.setCorrespondingType(fieldDeclaration.binding.type
- .debugName());
+ peNode = new ProgramElement(new String(fieldDeclaration.name), IProgramElement.Kind.ENUM_VALUE,
+ makeLocation(fieldDeclaration), fieldDeclaration.modifiers, null, null);
+ peNode.setCorrespondingType(fieldDeclaration.binding.type.debugName());
} else {
- peNode = new ProgramElement(new String(fieldDeclaration.name),
- IProgramElement.Kind.FIELD, makeLocation(fieldDeclaration),
- fieldDeclaration.modifiers, null, null);
+ peNode = new ProgramElement(new String(fieldDeclaration.name), IProgramElement.Kind.FIELD,
+ makeLocation(fieldDeclaration), fieldDeclaration.modifiers, null, null);
peNode.setCorrespondingType(fieldDeclaration.type.toString());
}
peNode.setSourceSignature(genSourceSignature(fieldDeclaration));
if (startIndex == -1) {
return null;
} else if (currCompilationResult.compilationUnit.getContents()[startIndex] == '/') {
- char[] comment = CharOperation.subarray(
- currCompilationResult.compilationUnit.getContents(),
- startIndex, astNode.sourceStart);
+ char[] comment = CharOperation.subarray(currCompilationResult.compilationUnit.getContents(), startIndex,
+ astNode.sourceStart);
while (comment.length > 2) {
int star = CharOperation.indexOf('*', comment);
if (star == -1)
return null;
// looking for '/**' and not '//' or '//*'
- if (star != 0 && (comment[star - 1] == '/')
- && (comment[star + 1] == '*')
+ if (star != 0 && (comment[star - 1] == '/') && (comment[star + 1] == '*')
&& (star - 2 < 0 || comment[star - 2] != '/')) {
boolean completed = false;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < comment.length && !completed; i++) {
char curr = comment[i];
- if (curr == '/' && sb.length() > 2
- && sb.charAt(sb.length() - 1) == '*') {
+ if (curr == '/' && sb.length() > 2 && sb.charAt(sb.length() - 1) == '*') {
completed = true; // found */
}
sb.append(comment[i]);
// The following will remove any non-javadoc comments
// preceeding a javadoc comment in this block
if (sb.toString().indexOf("/**") != 0) {
- return sb.toString().substring(
- sb.toString().indexOf("/**"));
+ return sb.toString().substring(sb.toString().indexOf("/**"));
}
return sb.toString();
}
- comment = CharOperation.subarray(comment, star + 1,
- comment.length);
+ comment = CharOperation.subarray(comment, star + 1, comment.length);
}
}
return null;
return output.toString();
} else {
FieldDeclaration.printModifiers(fieldDeclaration.modifiers, output);
- fieldDeclaration.type.print(0, output).append(' ').append(
- fieldDeclaration.name);
+ fieldDeclaration.type.print(0, output).append(' ').append(fieldDeclaration.name);
}
- if (fieldDeclaration.initialization != null
- && !(fieldDeclaration.initialization instanceof QualifiedAllocationExpression)) {
+ if (fieldDeclaration.initialization != null && !(fieldDeclaration.initialization instanceof QualifiedAllocationExpression)) {
output.append(" = "); //$NON-NLS-1$
if (fieldDeclaration.initialization instanceof ExtendedStringLiteral) {
output.append("\"<extended string literal>\"");
// stack.pop();
// }
- public boolean visit(ConstructorDeclaration constructorDeclaration,
- ClassScope scope) {
+ public boolean visit(ConstructorDeclaration constructorDeclaration, ClassScope scope) {
if ((constructorDeclaration.bits & ASTNode.IsDefaultConstructor) != 0) {
stack.push(null); // a little weird but does the job
return true;
argumentsSignature.append("(");
if (constructorDeclaration.arguments != null) {
for (int i = 0; i < constructorDeclaration.arguments.length; i++) {
- argumentsSignature
- .append(constructorDeclaration.arguments[i].type);
+ argumentsSignature.append(constructorDeclaration.arguments[i].type);
if (i + 1 < constructorDeclaration.arguments.length)
argumentsSignature.append(",");
}
}
argumentsSignature.append(")");
- IProgramElement peNode = new ProgramElement(new String(
- constructorDeclaration.selector),
- IProgramElement.Kind.CONSTRUCTOR,
- makeLocation(constructorDeclaration),
- constructorDeclaration.modifiers, null, null);
+ IProgramElement peNode = new ProgramElement(new String(constructorDeclaration.selector), IProgramElement.Kind.CONSTRUCTOR,
+ makeLocation(constructorDeclaration), constructorDeclaration.modifiers, null, null);
formatter.setParameters(constructorDeclaration, peNode);
peNode.setModifiers(constructorDeclaration.modifiers);
peNode.setSourceSignature(genSourceSignature(constructorDeclaration));
String memberName = "";
String memberBytecodeSignature = "";
try {
- EclipseFactory factory = ((AjLookupEnvironment) constructorDeclaration.scope
- .environment()).factory;
- Member member = factory
- .makeResolvedMember(constructorDeclaration.binding);
+ EclipseFactory factory = ((AjLookupEnvironment) constructorDeclaration.scope.environment()).factory;
+ Member member = factory.makeResolvedMember(constructorDeclaration.binding);
memberName = member.getName();
memberBytecodeSignature = member.getSignature();
} catch (BCException bce) { // bad type name
return true;
}
- public void endVisit(ConstructorDeclaration constructorDeclaration,
- ClassScope scope) {
+ public void endVisit(ConstructorDeclaration constructorDeclaration, ClassScope scope) {
stack.pop();
}
- private String genSourceSignature(
- ConstructorDeclaration constructorDeclaration) {
+ private String genSourceSignature(ConstructorDeclaration constructorDeclaration) {
StringBuffer output = new StringBuffer();
ASTNode.printModifiers(constructorDeclaration.modifiers, output);
return false;
inInitializer = initializer;
- IProgramElement peNode = new ProgramElement("...",
- IProgramElement.Kind.INITIALIZER, makeLocation(initializer),
+ IProgramElement peNode = new ProgramElement("...", IProgramElement.Kind.INITIALIZER, makeLocation(initializer),
initializer.modifiers, null, null);
// "",
// new ArrayList());
// (AbstractMethodDeclaration)n);
// if ( n instanceof TypeDeclaration ) return getStartLine(
// (TypeDeclaration)n);
- return Util.getLineNumber(n.sourceStart, lineseps, 0,
- lineseps.length - 1);
+ return Util.getLineNumber(n.sourceStart, lineseps, 0, lineseps.length - 1);
// return ProblemHandler.searchLineNumber(lineseps,
// currCompilationResult.lineSeparatorPositions,
// n.sourceStart);
return getEndLine((AbstractMethodDeclaration) n);
if (n instanceof TypeDeclaration)
return getEndLine((TypeDeclaration) n);
- return Util
- .getLineNumber(n.sourceEnd, lineseps, 0, lineseps.length - 1);
+ return Util.getLineNumber(n.sourceEnd, lineseps, 0, lineseps.length - 1);
// return ProblemHandler.searchLineNumber(lineseps,
// currCompilationResult.lineSeparatorPositions,
// n.sourceEnd);
// various ASTNode types. They have no common ancestor in the
// hierarchy!!
private int getEndLine(AbstractVariableDeclaration avd) {
- return Util.getLineNumber(avd.declarationSourceEnd, lineseps, 0,
- lineseps.length - 1);
+ return Util.getLineNumber(avd.declarationSourceEnd, lineseps, 0, lineseps.length - 1);
}
// AMC - overloaded set of methods to get start and end lines for
// various ASTNode types. They have no common ancestor in the
// hierarchy!!
private int getEndLine(AbstractMethodDeclaration amd) {
- return Util.getLineNumber(amd.declarationSourceEnd, lineseps, 0,
- lineseps.length - 1);
+ return Util.getLineNumber(amd.declarationSourceEnd, lineseps, 0, lineseps.length - 1);
}
// AMC - overloaded set of methods to get start and end lines for
// various ASTNode types. They have no common ancestor in the
// hierarchy!!
private int getEndLine(TypeDeclaration td) {
- return Util.getLineNumber(td.declarationSourceEnd, lineseps, 0,
- lineseps.length - 1);
+ return Util.getLineNumber(td.declarationSourceEnd, lineseps, 0, lineseps.length - 1);
}
}