code: private EntityData addManagedClass(Class<?> managedClass) {
          if (LOG.isDebugEnabled()) {
              LOG.debug(String.format("Adding class %1$s to managed set", managedClass));
          }
  
          // Extract the meta-data from the class
          ObjectMetaData metaData=new ObjectMetaData(managedClass);
  
          // Check we can construct the target type - it must have a zero argument public constructor
          try {
              managedClass.getConstructor();
          } catch (NoSuchMethodException e) {
              throw new InvalidEntryException(String.format(
                      "The class %1$s must have a zero argument constructor to be an Entry", managedClass), e);
          }
  
          // Check we have all of the necessary converters for the class
          for (Field field : metaData) {
              AttributeMetaData attributeInfo = metaData.getAttribute(field);
              if (!attributeInfo.isTransient() && !attributeInfo.isId() && !(attributeInfo.isObjectClass())) {
                  verifyConversion(managedClass, field, attributeInfo);
              }
          }
  
          // Filter so we only read the object classes supported by the managedClass
          AndFilter ocFilter = new AndFilter();
          for (CaseIgnoreString oc : metaData.getObjectClasses()) {
              ocFilter.and(new EqualsFilter(OBJECT_CLASS_ATTRIBUTE, oc.toString()));
          }
  
          EntityData newValue = new EntityData(metaData, ocFilter);
          EntityData previousValue = metaDataMap.putIfAbsent(managedClass, newValue);
          // Just in case someone beat us to it
          if(previousValue != null) {
              return previousValue;
          }
  
          return newValue;
      }
docs: Adds an {@link org.springframework.ldap.odm.annotations} annotated class to the set
  managed by this OdmManager.
  
  @param managedClass The class to add to the managed set.