return;
}
if (methodDeclaration.isDefaultConstructor()) {
if (this.reportReferenceInfo) {
ConstructorDeclaration constructorDeclaration = (ConstructorDeclaration) methodDeclaration;
ExplicitConstructorCall constructorCall = constructorDeclaration.constructorCall;
if (constructorCall != null) {
switch(constructorCall.accessMode) {
case ExplicitConstructorCall.This :
this.requestor.acceptConstructorReference(
this.typeNames[this.nestedTypeIndex-1],
constructorCall.arguments == null ? 0 : constructorCall.arguments.length,
constructorCall.sourceStart);
break;
case ExplicitConstructorCall.Super :
case ExplicitConstructorCall.ImplicitSuper :
this.requestor.acceptConstructorReference(
this.superTypeNames[this.nestedTypeIndex-1],
constructorCall.arguments == null ? 0 : constructorCall.arguments.length,
constructorCall.sourceStart);
break;
}
}
}
return;
}
char[][] argumentTypes = null;
char[][] argumentNames = null;
boolean isVarArgs = false;
Argument[] arguments = methodDeclaration.arguments;
ParameterInfo[] parameterInfos = null;
ISourceElementRequestor.MethodInfo methodInfo = new ISourceElementRequestor.MethodInfo();
methodInfo.typeAnnotated = ((methodDeclaration.bits & ASTNode.HasTypeAnnotations) != 0);
if (arguments != null) {
Object[][] argumentInfos = getArgumentInfos(arguments);
parameterInfos = (ParameterInfo[]) argumentInfos[0];
argumentTypes = (char[][]) argumentInfos[1][0];
argumentNames = (char[][]) argumentInfos[1][1];
isVarArgs = arguments[arguments.length-1].isVarArgs();
}
char[][] thrownExceptionTypes = getThrownExceptions(methodDeclaration);
// by default no selector end position
int selectorSourceEnd = -1;
if (methodDeclaration.isConstructor()) {
selectorSourceEnd = this.sourceEnds.get(methodDeclaration);
if (isInRange){
int currentModifiers = methodDeclaration.modifiers;
currentModifiers &= ExtraCompilerModifiers.AccJustFlag | ClassFileConstants.AccDeprecated;
if (isVarArgs)
currentModifiers |= ClassFileConstants.AccVarargs;
if (hasDeprecatedAnnotation(methodDeclaration.annotations))
currentModifiers |= ClassFileConstants.AccDeprecated;
methodInfo.isConstructor = true;
methodInfo.declarationStart = methodDeclaration.declarationSourceStart;
methodInfo.modifiers = currentModifiers;
methodInfo.name = methodDeclaration.selector;
methodInfo.nameSourceStart = methodDeclaration.sourceStart;
methodInfo.nameSourceEnd = selectorSourceEnd;
methodInfo.parameterTypes = argumentTypes;
methodInfo.parameterNames = argumentNames;
methodInfo.exceptionTypes = thrownExceptionTypes;
methodInfo.typeParameters = getTypeParameterInfos(methodDeclaration.typeParameters());
methodInfo.parameterInfos = parameterInfos;
methodInfo.categories = (char[][]) this.nodesToCategories.get(methodDeclaration);
methodInfo.annotations = methodDeclaration.annotations;
methodInfo.declaringPackageName = currentPackage == null ? CharOperation.NO_CHAR : CharOperation.concatWith(currentPackage.tokens, '.');
methodInfo.declaringTypeModifiers = declaringType.modifiers;
methodInfo.extraFlags = ExtraFlags.getExtraFlags(declaringType);
methodInfo.node = methodDeclaration;
this.requestor.enterConstructor(methodInfo);
}
if (this.reportReferenceInfo) {
ConstructorDeclaration constructorDeclaration = (ConstructorDeclaration) methodDeclaration;
ExplicitConstructorCall constructorCall = constructorDeclaration.constructorCall;
if (constructorCall != null) {
switch(constructorCall.accessMode) {
case ExplicitConstructorCall.This :
this.requestor.acceptConstructorReference(