OptionGroup.java

package eu.javaexperience.database.accessModel;

import java.util.ArrayList;
import java.util.List;

import eu.javaexperience.reflect.Mirror;

public class OptionGroup
{
	protected String userFriendlyName;
	protected String systemName;
	protected List<OptionEntry> options = new ArrayList<>();
	
	public OptionGroup(WellKnownAccessQueryOptions systemName, String userFiendlyName, OptionEntry... options)
	{
		this(systemName.name(), userFiendlyName, options);
	}
	
	public OptionGroup(String systemName, String userFiendlyName, OptionEntry... options)
	{
		this.systemName = systemName;
		this.userFriendlyName = userFiendlyName;
		for(OptionEntry o:options)
		{
			this.options.add(o);
			o.owner = this;
		}
	}

	public String getSystemName()
	{
		return systemName;
	}

	public void addOptions(OptionEntry... opt)
	{
		for(OptionEntry o:opt)
		{
			this.options.add(o);
			o.owner = this;
		}
	}

	public void overrideOptions(OptionEntry... opts)
	{
		options.clear();
		addOptions(opts);
	}

	public boolean isValuePermitted(String val)
	{
		for(OptionEntry e:options)
		{
			if(Mirror.equals(val, e.optionAddress))
			{
				return true;
			}
		}
		
		return false;
	}
}