docs: public void registerBeanProperty(final String property, final Object newValue) {
          performOperationOnMetaClass(new Callable() {
              public void call() {
                  Class type = newValue == null ? Object.class : newValue.getClass();
  
                  MetaBeanProperty mbp = newValue instanceof MetaBeanProperty ? (MetaBeanProperty) newValue : new ThreadManagedMetaBeanProperty(theClass, property, type, newValue);
  
                  final MetaMethod getter = mbp.getGetter();
                  final MethodKey getterKey = new DefaultCachedMethodKey(theClass, getter.getName(), CachedClass.EMPTY_ARRAY, false);
                  final MetaMethod setter = mbp.getSetter();
                  final MethodKey setterKey = new DefaultCachedMethodKey(theClass, setter.getName(), setter.getParameterTypes(), false);
                  addMetaMethod(getter);
                  addMetaMethod(setter);
  
                  expandoMethods.put(setterKey, setter);
                  expandoMethods.put(getterKey, getter);
                  expandoProperties.put(mbp.getName(), mbp);
  
                  addMetaBeanProperty(mbp);
                  performRegistryCallbacks();
              }
  
          });
      }