@SuppressWarnings("unchecked")
    protected static Class<? extends Component>[] getMergedTypes(Class<? extends Component> requiredType, Class<? extends Component>[] otherTypes)
    {
        Class<? extends Component>[] types = new Class[1 + otherTypes.length];
        
        types[0] = requiredType;
        
        for (int i = 0; i < otherTypes.length; ++i)
        {
            types[i + 1] = otherTypes[i];
        }
        
        return types;
    }