All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.unlaxer.jaddress.parser.JyuusyoJPDataAccessContextImpl 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 JyuusyoJPDataAccessContextImpl implements JyuusyoJPDataAccessContext{
	
	public static final Path DEFAULT_SQLITE_PATH =  UserHomeContext.getPathWithFolderAndFile("jyuusyojp","zenkoku.sqlite3");
	
	JyuusyoJPDao jyuusyoJPDao;
	TransactionManager transactionManager;
	
	Config config;
	
	public JyuusyoJPDataAccessContextImpl(Path pathToJyuusyoJpSqlite) {
		super();
		config = new JyuusyoJPDomaConfig(pathToJyuusyoJpSqlite);
		jyuusyoJPDao = new JyuusyoJPDaoImpl(config);
		transactionManager = config.getTransactionManager();
	}
	
	public JyuusyoJPDataAccessContextImpl() {
		this(DEFAULT_SQLITE_PATH);
	}

	@Override
	public List selectJyuusyoJPsByZip(郵便番号 zip){
		
		List addresses = transactionManager.required(() -> {
			
			List selectAll = jyuusyoJPDao.selectByZip(zip);
			
			return selectAll;
		});
		return addresses;
	}

	@Override
	public Stream selectAllJyuusyoJP() {
		Stream addresses = transactionManager.required(() -> {

			List 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