Property definitions

core $ HashMapValues :: defaultinit
# View of the values of a Map
private class HashMapValues[K, V]
	super RemovableCollection[V]
	# The original map
	var map: HashMap[K, V]

	redef fun count(item)
	do
		var nb = 0
		var c = self.map._first_item
		while c != null do
			if c._value == item then nb += 1
			c = c._next_item
		end
		return nb
	end
	redef fun first do return self.map._first_item._value

	redef fun has(item)
	do
		var c = self.map._first_item
		while c != null do
			if c._value == item then return true
			c = c._next_item
		end
		return false
	end

	redef fun has_only(item)
	do
		var c = self.map._first_item
		while c != null do
			if c._value != item then return false
			c = c._next_item
		end
		return true
	end

	redef fun is_empty do return self.map.is_empty
	redef fun length do return self.map.length

	redef fun iterator do return new MapValuesIterator[K, V](self.map.iterator)

	redef fun clear do self.map.clear

	redef fun remove(item)
	do
		var map = self.map
		var c = map._first_item
		while c != null do
			if c._value == item then
				map.remove_node(c._key)
				return
			end
			c = c._next_item
		end
	end

	redef fun remove_all(item)
	do
		var map = self.map
		var c = map._first_item
		while c != null do
			if c._value == item then
				map.remove_node(c._key)
			end
			c = c._next_item
		end
	end
end
lib/core/collection/hash_collection.nit:305,1--374,3