org.unlaxer.jaddress.parser.DataAccessContextImpl Maven / Gradle / Ivy
package org.unlaxer.jaddress.parser;
import java.nio.file.Path;
import java.util.List;
import java.util.stream.Stream;
import org.seasar.doma.jdbc.Config;
import org.seasar.doma.jdbc.tx.TransactionManager;
import org.unlaxer.jaddress.JyuusyoJPDomaConfig;
import org.unlaxer.jaddress.UserHomeContext;
import org.unlaxer.jaddress.dao.JyuusyoJPDao;
import org.unlaxer.jaddress.dao.JyuusyoJPDaoImpl;
import org.unlaxer.jaddress.entity.jyuusyojp.JyuusyoJP;
import org.unlaxer.jaddress.entity.standard.郵便番号;
public class DataAccessContextImpl implements DataAccessContext{
public static final Path DEFAULT_SQLITE_PATH = UserHomeContext.getPathWithFolderAndFile("jyuusyojp","zenkoku.sqlite3");
JyuusyoJPDao jyuusyoJPDao;
TransactionManager transactionManager;
Config config;
public DataAccessContextImpl(Path pathToJyuusyoJpSqlite) {
super();
config = new JyuusyoJPDomaConfig(pathToJyuusyoJpSqlite);
jyuusyoJPDao = new JyuusyoJPDaoImpl(config);
transactionManager = config.getTransactionManager();
}
public DataAccessContextImpl() {
this(DEFAULT_SQLITE_PATH);
}
@Override
public List extends JyuusyoJP> selectJyuusyoJPsByZip(郵便番号 zip){
List extends JyuusyoJP> addresses = transactionManager.required(() -> {
List extends JyuusyoJP> selectAll = jyuusyoJPDao.selectByZip(zip);
return selectAll;
});
return addresses;
}
@Override
public Stream extends JyuusyoJP> selectAllJyuusyoJP() {
Stream extends JyuusyoJP> addresses = transactionManager.required(() -> {
List extends JyuusyoJP> selectAll = jyuusyoJPDao.selectAll();
return selectAll.stream();
});
return addresses;
}
@Override
public void addIndexToJyuusyoJP() {
transactionManager.required(() -> {
jyuusyoJPDao.addIndex();
});
}
@Override
public void dropIndexFromJyuusyoJP() {
transactionManager.required(() -> {
jyuusyoJPDao.dropIndex();
});
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy