docs: public Object put(String key, Object value)
      {
          if (key == null)
          {
              throw new NullPointerException("key");
          }
          int keyLength = ((String)key).length();
          if (keyLength >= MIN_LENGHT_CHECK)
          {
              if (MARK_CREATED.length() == keyLength &&
                  MARK_CREATED.equals(key))
              {
                  String oldValue = _component.getOamVfMarkCreated();
                  _component.setOamVfMarkCreated((String)value);
                  return oldValue;
              }
              else if (FACET_NAME_KEY.length() == keyLength &&
                  FACET_NAME_KEY.equals(key))
              {
                  Object oldValue = _component.getOamVfFacetName();
                  _component.setOamVfFacetName((String)value);
                  return oldValue;
              }
              else if (COMPONENT_ADDED_BY_HANDLER_MARKER.length() == keyLength &&
                  COMPONENT_ADDED_BY_HANDLER_MARKER.equals(key))
              {
                  Object oldValue = _component.isOamVfAddedByHandler();
                  _component.setOamVfAddedByHandler((Boolean)value);
                  return oldValue;
              }
              else if (FACET_CREATED_UIPANEL_MARKER.length() == keyLength &&
                  FACET_CREATED_UIPANEL_MARKER.equals(key))
              {
                  Object oldValue = _component.isOamVfFacetCreatedUIPanel();
                  _component.setOamVfFacetCreatedUIPanel((Boolean)value);
                  return oldValue;
              }
          }
          _PropertyDescriptorHolder propertyDescriptor = getPropertyDescriptor(key);
          if (propertyDescriptor == null)
          {
              if (value == null)
              {
                  throw new NullPointerException("value is null for a not available property: " + key);
              }
          }
          else
          {
              if (propertyDescriptor.getReadMethod() != null)
              {
                  Object oldValue = getComponentProperty(propertyDescriptor);
                  setComponentProperty(propertyDescriptor, value);
                  return oldValue;
              }
              setComponentProperty(propertyDescriptor, value);
              return null;
          }
          // To keep this code in good shape, The fastest way to compare is look if the length first here
          // because we avoid an unnecessary cast later on equals().
          if ( Resource.COMPONENT_RESOURCE_KEY.length() == keyLength 
               && Resource.COMPONENT_RESOURCE_KEY.equals(key))
          {
              _isCompositeComponent = true;
              _isCompositeComponentSet = true;
          }
          if (UIComponent.BEANINFO_KEY.length() == keyLength 
              && UIComponent.BEANINFO_KEY.equals(key))
          {
              _ccBeanInfo = (BeanInfo) value;
          }
          return _component.getStateHelper().put(UIComponentBase.PropertyKeys.attributesMap, key, value);
      }