Lines 87-94
Link Here
|
87 |
final int flags, |
87 |
final int flags, |
88 |
final String fileUrl, |
88 |
final String fileUrl, |
89 |
final ElementQuery elementQuery, |
89 |
final ElementQuery elementQuery, |
90 |
final List<ParameterElement> parameters, |
90 |
final BaseFunctionElementSupport.Parameters parameters, |
91 |
final Set<TypeResolver> returnTypes, |
91 |
final BaseFunctionElementSupport.ReturnTypes returnTypes, |
92 |
final boolean isDeprecated) { |
92 |
final boolean isDeprecated) { |
93 |
super(methodName, enclosingType.getName(), fileUrl, offset, elementQuery, isDeprecated); |
93 |
super(methodName, enclosingType.getName(), fileUrl, offset, elementQuery, isDeprecated); |
94 |
final boolean isFromInterface = enclosingType.isInterface(); |
94 |
final boolean isFromInterface = enclosingType.isInterface(); |
Lines 119-125
Link Here
|
119 |
|
119 |
|
120 |
public static MethodElement createMagicMethod(final TypeElement type, String methodName, int flags, String... arguments) { |
120 |
public static MethodElement createMagicMethod(final TypeElement type, String methodName, int flags, String... arguments) { |
121 |
MethodElement retval = new MethodElementImpl(type, methodName, true, 0, flags, //NOI18N |
121 |
MethodElement retval = new MethodElementImpl(type, methodName, true, 0, flags, //NOI18N |
122 |
type.getFilenameUrl(), null, fromParameterNames(arguments), Collections.<TypeResolver>emptySet(), type.isDeprecated()); |
122 |
type.getFilenameUrl(), null, new ParametersImpl(fromParameterNames(arguments)), BaseFunctionElementSupport.ReturnTypes.NONE, type.isDeprecated()); |
123 |
return retval; |
123 |
return retval; |
124 |
} |
124 |
} |
125 |
|
125 |
|
Lines 159-165
Link Here
|
159 |
if (matchesQuery(query, signParser)) { |
159 |
if (matchesQuery(query, signParser)) { |
160 |
retval = new MethodElementImpl(type, signParser.getMethodName(), false, |
160 |
retval = new MethodElementImpl(type, signParser.getMethodName(), false, |
161 |
signParser.getOffset(), signParser.getFlags(), indexResult.getUrl().toString(), |
161 |
signParser.getOffset(), signParser.getFlags(), indexResult.getUrl().toString(), |
162 |
indexScopeQuery, signParser.getParameters(), signParser.getReturnTypes(), signParser.isDeprecated()); |
162 |
indexScopeQuery, new ParametersProxy(signParser), new ReturnTypesProxy(signParser), signParser.isDeprecated()); |
163 |
} |
163 |
} |
164 |
return retval; |
164 |
return retval; |
165 |
} |
165 |
} |
Lines 171-178
Link Here
|
171 |
MethodDeclarationInfo info = MethodDeclarationInfo.create(fileQuery.getResult().getProgram(), node, type.isInterface()); |
171 |
MethodDeclarationInfo info = MethodDeclarationInfo.create(fileQuery.getResult().getProgram(), node, type.isInterface()); |
172 |
return new MethodElementImpl( |
172 |
return new MethodElementImpl( |
173 |
type, info.getName(), false, info.getRange().getStart(), info.getAccessModifiers().toFlags(), |
173 |
type, info.getName(), false, info.getRange().getStart(), info.getAccessModifiers().toFlags(), |
174 |
fileQuery.getURL().toExternalForm(), fileQuery, info.getParameters(), |
174 |
fileQuery.getURL().toExternalForm(), fileQuery, new ParametersImpl(info.getParameters()), |
175 |
TypeResolverImpl.parseTypes(VariousUtils.getReturnTypeFromPHPDoc(fileQuery.getResult().getProgram(), node.getFunction())), |
175 |
new ReturnTypesImpl(TypeResolverImpl.parseTypes(VariousUtils.getReturnTypeFromPHPDoc(fileQuery.getResult().getProgram(), node.getFunction()))), |
176 |
VariousUtils.isDeprecatedFromPHPDoc(fileQuery.getResult().getProgram(), node.getFunction())); |
176 |
VariousUtils.isDeprecatedFromPHPDoc(fileQuery.getResult().getProgram(), node.getFunction())); |
177 |
} |
177 |
} |
178 |
|
178 |
|
Lines 197-203
Link Here
|
197 |
final MethodSignatureParser signParser = new MethodSignatureParser(sig); |
197 |
final MethodSignatureParser signParser = new MethodSignatureParser(sig); |
198 |
final MethodElement retval = new MethodElementImpl(type, MethodElementImpl.CONSTRUCTOR_NAME, false, |
198 |
final MethodElement retval = new MethodElementImpl(type, MethodElementImpl.CONSTRUCTOR_NAME, false, |
199 |
signParser.getOffset(), signParser.getFlags(), indexResult.getUrl().toString(), |
199 |
signParser.getOffset(), signParser.getFlags(), indexResult.getUrl().toString(), |
200 |
indexScopeQuery, signParser.getParameters(), signParser.getReturnTypes(), signParser.isDeprecated()); |
200 |
indexScopeQuery, new ParametersProxy(signParser), new ReturnTypesProxy(signParser), signParser.isDeprecated()); |
201 |
return retval; |
201 |
return retval; |
202 |
} |
202 |
} |
203 |
|
203 |
|
Lines 379-382
Link Here
|
379 |
assert getParameters().size() == parser.getParameters().size(); |
379 |
assert getParameters().size() == parser.getParameters().size(); |
380 |
} |
380 |
} |
381 |
} |
381 |
} |
|
|
382 |
|
383 |
private static final class ParametersImpl implements BaseFunctionElementSupport.Parameters { |
384 |
private final List<ParameterElement> parameters; |
385 |
|
386 |
public ParametersImpl(List<ParameterElement> parameters) { |
387 |
this.parameters = parameters; |
388 |
} |
389 |
|
390 |
@Override |
391 |
public List<ParameterElement> getParameters() { |
392 |
return parameters; |
393 |
} |
394 |
|
395 |
} |
396 |
|
397 |
private static final class ParametersProxy implements BaseFunctionElementSupport.Parameters { |
398 |
private final MethodSignatureParser methodSignatureParser; |
399 |
|
400 |
public ParametersProxy(MethodSignatureParser methodSignatureParser) { |
401 |
this.methodSignatureParser = methodSignatureParser; |
402 |
} |
403 |
|
404 |
@Override |
405 |
public List<ParameterElement> getParameters() { |
406 |
return methodSignatureParser.getParameters(); |
407 |
} |
408 |
} |
409 |
|
410 |
private static final class ReturnTypesImpl implements BaseFunctionElementSupport.ReturnTypes { |
411 |
private final Set<TypeResolver> returnTypes; |
412 |
|
413 |
public ReturnTypesImpl(Set<TypeResolver> returnTypes) { |
414 |
this.returnTypes = returnTypes; |
415 |
} |
416 |
|
417 |
@Override |
418 |
public Set<TypeResolver> getReturnTypes() { |
419 |
return returnTypes; |
420 |
} |
421 |
|
422 |
} |
423 |
|
424 |
private static final class ReturnTypesProxy implements BaseFunctionElementSupport.ReturnTypes { |
425 |
private final MethodSignatureParser methodSignatureParser; |
426 |
|
427 |
public ReturnTypesProxy(MethodSignatureParser methodSignatureParser) { |
428 |
this.methodSignatureParser = methodSignatureParser; |
429 |
} |
430 |
|
431 |
@Override |
432 |
public Set<TypeResolver> getReturnTypes() { |
433 |
return methodSignatureParser.getReturnTypes(); |
434 |
} |
435 |
|
436 |
} |
382 |
} |
437 |
} |