code: private static void injectComponent(final Component<?> component, final boolean inner) {
  
          // Retrieve all fields annotated with Link
          for (final Field field : ClassUtility.getAnnotatedFields(component.getClass(), Link.class)) {
              final String keyPart = field.getAnnotation(Link.class).value();
              if (inner) {
                  if (InnerComponent.class.isAssignableFrom(field.getType())) {
                      if (keyPart.isEmpty()) {
                          injectInnerComponent(component, field);
                      } else {
                          injectInnerComponent(component, field, keyPart);
                      }
                  }
              } else {
                  if (Component.class.isAssignableFrom(field.getType())) {
                      if (keyPart.isEmpty()) {
                          injectComponent(component, field);
                      } else {
                          injectComponent(component, field, keyPart);
                      }
                  }
              }
          }
  
      }
docs: Inject component.
  
  @param component the component
  @param inner only manage innercomponent otherwise mange component