presto-raptor-legacy/src/main/java/io/prestosql/plugin/raptor/legacy/storage/organization/ShardOrganizationManager.java/ShardOrganizationManager/ShardOrganizationManager
class ShardOrganizationManager:    public ShardOrganizationManager(
            IDBI dbi,
            String currentNodeIdentifier,
            ShardManager shardManager,
            ShardOrganizer organizer,
            TemporalFunction temporalFunction,
            boolean enabled,
            Duration organizationInterval,
            Duration organizationDiscoveryInterval)
    {
        this.dbi = requireNonNull(dbi, "dbi is null");
        this.metadataDao = onDemandDao(dbi, MetadataDao.class);
        this.organizerDao = onDemandDao(dbi, ShardOrganizerDao.class);

        this.organizer = requireNonNull(organizer, "organizer is null");
        this.shardManager = requireNonNull(shardManager, "shardManager is null");
        this.currentNodeIdentifier = requireNonNull(currentNodeIdentifier, "currentNodeIdentifier is null");
        this.temporalFunction = requireNonNull(temporalFunction, "temporalFunction is null");

        this.enabled = enabled;

        requireNonNull(organizationInterval, "organizationInterval is null");
        this.organizationIntervalMillis = max(1, organizationInterval.roundTo(MILLISECONDS));
        this.organizationDiscoveryIntervalMillis = max(1, organizationDiscoveryInterval.roundTo(MILLISECONDS));
    }