@Override public Key<?> getKey(TypeLiteral<?> injectedType, Field injectedMember, Resource resourceAnnotation) { String name = resourceAnnotation.name(); if (name.length() != 0) { // explicit key // if a name is provided, it acts as a Named binding and this means we ask for a precise key return Key.get(injectedType.getFieldType(injectedMember), Names.named(name)); } else { // implicit key // if no name given, try a combination with the field name Key<?> implicitKey = Key.get(injectedType.getFieldType(injectedMember), Names.named(injectedMember.getName())); if (injector.getExistingBinding(implicitKey) != null) { return implicitKey; } else { // else create the find based on the field type (default behavior) - with optional existing binding annotations return super.getKey(injectedType, injectedMember, resourceAnnotation); } } } }
@Override public Key<?> getKey(TypeLiteral<?> injectedType, Field injectedMember, Resource resourceAnnotation) { String name = resourceAnnotation.name(); if (name.length() != 0) { // explicit key // if a name is provided, it acts as a Named binding and this means we ask for a precise key return Key.get(injectedType.getFieldType(injectedMember), Names.named(name)); } else { // implicit key // if no name given, try a combination with the field name Key<?> implicitKey = Key.get(injectedType.getFieldType(injectedMember), Names.named(injectedMember.getName())); if (injector.getExistingBinding(implicitKey) != null) { return implicitKey; } else { // else create the find based on the field type (default behavior) - with optional existing binding annotations return super.getKey(injectedType, injectedMember, resourceAnnotation); } } } }