Newer
Older
ultramine_permissions / src / main / java / org / ultramine / permission / internal / Resolver.java
@vlad20012 vlad20012 on 2 May 2017 743 bytes Initial commit
package org.ultramine.permission.internal;

import gnu.trove.map.hash.TObjectIntHashMap;

import java.util.HashMap;
import java.util.Map;

public class Resolver<T> extends AbstractResolver<T>
{
	protected final Map<String, T> values = new HashMap<String, T>();
	protected final TObjectIntHashMap<String> priorities = new TObjectIntHashMap<String>();

	public Resolver()
	{
	}

	public void clear()
	{
		values.clear();
		priorities.clear();
	}

	protected Map<String, T> getValues()
	{
		return values;
	}

	public boolean merge(String key, T value, int priority)
	{
		if (!priorities.containsKey(key) || priorities.get(key) < priority)
		{
			values.put(key, value);
			priorities.put(key, priority);
			return true;
		}
		return false;
	}
}