# File lib/activeldap/base.rb, line 603
    def validate
      @@logger.debug("stub: validate called")
      # Clean up attr values, etc
      send(:enforce_types)

      # Validate objectclass settings
      @data['objectClass'].each do |klass|
        unless klass.class == String
          raise TypeError, "Value in objectClass array is not a String. (#{klass.class}:#{klass.inspect})"
        end
        unless Base.schema.names("objectClasses").member? klass
          raise ObjectClassError, "objectClass '#{klass}' unknown to LDAP server."
        end
      end

      # make sure this doesn't drop any of the required objectclasses
      required_classes().each do |oc|
        unless @data['objectClass'].member? oc.to_s
          raise ObjectClassError, "'#{oc}' must be a defined objectClass for class '#{self.class}' as set in the ldap_mapping"
        end
      end

      # Make sure all MUST attributes have a value
      @data['objectClass'].each do |objc|
        @must.each do |req_attr|
          deref = @attr_methods[req_attr]
          if @data[deref] == []
            raise AttributeEmpty,
              "objectClass '#{objc}' requires attribute '#{Base.schema.attribute_aliases(req_attr).join(', ')}'"
          end
        end
      end
      @@logger.debug("stub: validate finished")
    end