code: protected boolean registerAccessor(PojoDescriptorImpl<?> descriptor, PojoPropertyAccessor accessor) {
  
      PojoPropertyDescriptorImpl propertyDescriptor = descriptor.getOrCreatePropertyDescriptor(accessor.getName());
      boolean added = false;
      PojoPropertyAccessor existing = propertyDescriptor.getAccessor(accessor.getMode());
      if (existing == null) {
        propertyDescriptor.putAccessor(accessor);
        added = true;
      } else {
        // Workaround for JVM-Bug with overridden methods
        if (existing.getReturnType().isAssignableFrom(accessor.getReturnType())) {
          AccessibleObject accessorAccessible = accessor.getAccessibleObject();
          if (accessorAccessible instanceof Method) {
            propertyDescriptor.putAccessor(accessor);
            added = true;
          }
        }
        // this will also happen for private fields with the same name and is
        // then a regular log message...
        if (added) {
          logDuplicateAccessor(accessor, existing);
        } else {
          logDuplicateAccessor(existing, accessor);
        }
      }
      return added;
    }
docs: This method registers the given {@code accessor} for the given {@code descriptor}.
  
  @param descriptor is the {@link net.sf.mmm.util.pojo.descriptor.api.PojoDescriptor}.
  @param accessor is the {@link PojoPropertyAccessor} to register.
  @return {@code true} if the given {@code accessor} has been registered or {@code false} if it has been ignored (it
  is a duplicate).