def class_attributes(objc)
      if @@class_cache.has_key? objc
        return @@class_cache[objc]
      end
      
      @@class_cache[objc] = {}
      
      @@class_cache[objc] = {:must => attr('objectClasses', objc, 'MUST'), 
        :may => attr('objectClasses', objc, 'MAY')}
      
      
      
      
      sups = attr('objectClasses', objc, 'SUP')
      loop do 
        start_size = sups.size
        new_sups = []
        sups.each do |sup|
          new_sups += attr('objectClasses', sup, 'SUP')
        end
        sups += new_sups
        sups.uniq!
        break if sups.size == start_size
      end
      sups.each do |sup|
        @@class_cache[objc][:must] += attr('objectClasses', sup, 'MUST')
        @@class_cache[objc][:may] += attr('objectClasses', sup, 'MAY')
      end
      
      @@class_cache[objc][:must].uniq!
      @@class_cache[objc][:may].uniq!
      
      return @@class_cache[objc].dup
    end