package advancedsystemsmanager.flow.menus;
import advancedsystemsmanager.api.ISystemType;
import advancedsystemsmanager.flow.FlowComponent;
import advancedsystemsmanager.flow.elements.Variable;
import advancedsystemsmanager.registry.SystemTypeRegistry;
import java.util.HashSet;
import java.util.Set;
public class MenuVariableContainers extends MenuContainer
{
public MenuVariableContainers(FlowComponent parent)
{
super(parent, SystemTypeRegistry.VARIABLE);
}
@Override
public Set<ISystemType> getValidTypes()
{
MenuContainerTypes componentMenuContainerTypes = ((MenuContainerTypes)getParent().getMenus().get(1));
if (componentMenuContainerTypes.isVisible())
{
return componentMenuContainerTypes.getValidTypes();
} else
{
Variable variable = ((MenuVariable)getParent().getMenus().get(0)).getVariable();
if (variable != null && variable.isValid())
{
return ((MenuContainerTypes)variable.getDeclaration().getMenus().get(1)).getValidTypes();
} else
{
return new HashSet<ISystemType>();
}
}
}
@Override
public boolean isVariableAllowed(Set<ISystemType> validTypes, Variable variable)
{
return super.isVariableAllowed(validTypes, variable) && variable != ((MenuVariable)getParent().getMenus().get(0)).getVariable();
}
}