def entry(group, id_or_name)
return {} if group.empty? or id_or_name.empty?
unless @entries.has_key?(group)
raise ArgumentError, _("Unknown schema group: %s") % group
end
info, ids, aliases = ensure_schema_info(group)
id, name = determine_id_or_name(id_or_name, aliases)
return ids[id] if ids.has_key?(id)
schemata = @entries[group] || []
while schema = schemata.shift
next unless /\A\s*\(\s*(#{OID_RE})\s*(.*)\s*\)\s*\z/ =~ schema
schema_id = $1
rest = $2
if ids.has_key?(schema_id)
attributes = ids[schema_id]
else
attributes = {}
ids[schema_id] = attributes
end
parse_attributes(rest, attributes)
(attributes["NAME"] || []).each do |v|
normalized_name = normalize_schema_name(v)
aliases[normalized_name] = schema_id
id = schema_id if id.nil? and name == normalized_name
end
break if id == schema_id
end
ids[id || aliases[name]] || {}
end