in cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/model/ReferenceModel.java [287:325]
private String calculateName(Class<?> service, Annotated annotated) {
Named named = annotated.getAnnotation(Named.class);
if (named != null) {
if (named.value() == null | named.value().equals("")) {
throw new IllegalArgumentException(
"It's illegal to specify @Name without specifying a value with @Reference: " +
annotated + " on " + _annotated);
}
return named.value();
}
String prefix = _declaringClass.getName() + ".";
if (annotated instanceof AnnotatedParameter) {
AnnotatedParameter<?> parameter = (AnnotatedParameter<?>)annotated;
AnnotatedCallable<?> declaringCallable = parameter.getDeclaringCallable();
if (declaringCallable instanceof AnnotatedConstructor) {
return prefix + "new" + parameter.getPosition();
}
else {
AnnotatedMethod<?> method = (AnnotatedMethod<?>)declaringCallable;
return prefix + method.getJavaMember().getName() + parameter.getPosition();
}
}
else if (annotated instanceof AnnotatedMethod) {
AnnotatedMethod<?> method = (AnnotatedMethod<?>)annotated;
return prefix + method.getJavaMember().getName();
}
else {
AnnotatedField<?> annotatedField = (AnnotatedField<?>)annotated;
return prefix + annotatedField.getJavaMember().getName();
}
}