ObjectWithPropertyStorage.java

package eu.javaexperience.interfaces;

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

import eu.javaexperience.interfaces.simple.getBy.GetBy1;
import eu.javaexperience.reflect.Mirror;

public class ObjectWithPropertyStorage<T>
{
	protected Map<String, GetBy1<Object, T>> examiners = new HashMap<>();
	
	public void addExaminer(String key, GetBy1<Object, T> ex)
	{
		examiners.put(key, ex);
	}
	
	public String[] keys()
	{
		return examiners.keySet().toArray(Mirror.emptyStringArray);
	}
	
	public Object get(T object, String key)
	{
		GetBy1<Object, T> ex = examiners.get(key);
		if(null != ex)
		{
			return ex.getBy(object);
		}
		
		return null;
	}
}