
com.github.lontime.extcosid.jdbi.JdbiIdSegmentDistributorFactory Maven / Gradle / Ivy
package com.github.lontime.extcosid.jdbi;
import me.ahoo.cosid.segment.IdSegmentDistributor;
import me.ahoo.cosid.segment.IdSegmentDistributorDefinition;
import me.ahoo.cosid.segment.IdSegmentDistributorFactory;
import org.jdbi.v3.core.Jdbi;
/**
* JdbiIdSegmentDistributorFactory.
* @author lontime
* @since 1.0
*/
public class JdbiIdSegmentDistributorFactory implements IdSegmentDistributorFactory {
private final Jdbi jdbi;
private final Boolean enableAutoInitIdSegment;
private final JdbiIdSegmentInitializer jdbiIdSegmentInitializer;
private final String incrementMaxIdSql;
private final String fetchMaxIdSql;
public JdbiIdSegmentDistributorFactory(Jdbi jdbi, JdbiIdSegmentInitializer jdbiIdSegmentInitializer, String incrementMaxIdSql, String fetchMaxIdSql) {
this(jdbi, Boolean.FALSE, jdbiIdSegmentInitializer, incrementMaxIdSql, fetchMaxIdSql);
}
public JdbiIdSegmentDistributorFactory(Jdbi jdbi, Boolean enableAutoInitIdSegment, JdbiIdSegmentInitializer jdbiIdSegmentInitializer, String incrementMaxIdSql, String fetchMaxIdSql) {
this.jdbi = jdbi;
this.enableAutoInitIdSegment = enableAutoInitIdSegment;
this.jdbiIdSegmentInitializer = jdbiIdSegmentInitializer;
this.incrementMaxIdSql = incrementMaxIdSql;
this.fetchMaxIdSql = fetchMaxIdSql;
}
@Override
public IdSegmentDistributor create(IdSegmentDistributorDefinition definition) {
if (enableAutoInitIdSegment) {
jdbiIdSegmentInitializer.tryInitIdSegment(definition.getNamespacedName(), definition.getOffset());
}
return new JdbiIdSegmentDistributor(
definition.getNamespace(), definition.getName(), definition.getStep(),
incrementMaxIdSql, fetchMaxIdSql, jdbi
);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy