presto-atop/src/main/java/io/prestosql/plugin/atop/AtopPageSource.java/AtopPageSource/AtopPageSource
class AtopPageSource:    public AtopPageSource(Semaphore readerPermits, AtopFactory atopFactory, ConnectorSession session, Slice hostIp, AtopTable table, ZonedDateTime date, List<AtopColumn> columns, List<Type> types)
    {
        this.readerPermits = requireNonNull(readerPermits, "readerPermits is null");
        this.atopFactory = requireNonNull(atopFactory, "atopFactory is null");
        this.session = requireNonNull(session, "session is null");
        this.hostIp = requireNonNull(hostIp, "hostIp is null");
        this.table = requireNonNull(table, "table is null");
        this.date = requireNonNull(date, "date is null");
        this.columns = ImmutableList.copyOf(requireNonNull(columns, "columns is null"));
        this.types = ImmutableList.copyOf(requireNonNull(types, "types is null"));
        checkArgument(columns.size() == types.size(), "columns (%s) does not match types (%s)", columns.size(), types.size());
        pageBuilder = new PageBuilder(types);
    }