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

org.unlaxer.jaddress.elaticesearch.RequestData2 Maven / Gradle / Ivy

package org.unlaxer.jaddress.elaticesearch;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import org.unlaxer.jaddress.entity.standard.郵便番号;
import org.unlaxer.jaddress.parser.AddressContext;
import org.unlaxer.jaddress.parser.AddressElements;
import org.unlaxer.jaddress.parser.AddressParser;
import org.unlaxer.jaddress.parser.AddressParserImpl;
import org.unlaxer.jaddress.parser.DataAccessContextImpl;
import org.unlaxer.jaddress.parser.ParsingContext;
import org.unlaxer.jaddress.parser.ParsingState;
import org.unlaxer.util.Either;
import org.unlaxer.util.collection.ID;

public class RequestData2 {
	public String id;
	public Map map;

	public RequestData2(String input) {
		super();

		parse(input);

	}

	private void parse(String input) {
		List list = Arrays.asList(input.split("\t"));

		String zip = list.get(0);
		List address = list.subList(1, list.size());

		ParsingContext parsingContext = new ParsingContext(new DataAccessContextImpl(),
				new AddressContext(ID.generate(), new 郵便番号(zip), address));
		AddressParser addressParser = new AddressParserImpl();
		addressParser.parse(parsingContext);
		
		AddressContext addressContext2 = parsingContext.addressContext;
		id = addressContext2.id.getName();
		map = new TreeMap<>();
		map.put("zip", addressContext2.zip.hyphonated);
		map.put("input", input);

		Either results = parsingContext.addressContext.results();
		results.right.ifPresent(result -> {
			result.get().stream().forEach(as -> {
				as.get().forEach(addressElement -> {
					String value = addressElement.asString();
					if (value != null && !value.isBlank()) {
						map.put(String.valueOf(addressElement.階層要素().level), value);
					}
				});
			});
		});
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy