org.unlaxer.jaddress.parser.Sources Maven / Gradle / Ivy
package org.unlaxer.jaddress.parser;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Optional;
import java.util.Set;
import org.unlaxer.jaddress.entity.standard.SingleOrRange階層要素;
import org.unlaxer.jaddress.parser.picker.PickerResult;
public class Sources{
Map sourcesByKindForPredecessor;
Map sourcesByKindForSuccessor;
Map pickerResultByKind;
public Sources() {
super();
sourcesByKindForPredecessor = new HashMap<>();
sourcesByKindForSuccessor = new HashMap<>();
pickerResultByKind = new HashMap<>();
}
public void add(Optional parserResult) {
parserResult.ifPresent(result->{
SingleOrRange階層要素 _階層要素 = result.SIngleOrRange階層要素();
pickerResultByKind.put(_階層要素, result);
result.predecessor().ifPresent(
source->sourcesByKindForPredecessor.put(_階層要素, source));
result.successor().ifPresent(
source->sourcesByKindForSuccessor.put(_階層要素, source));
});
}
Map get(Sources.PredecessorOrSuccessor predecessorOrSuccessor){
return predecessorOrSuccessor.isPredecessor() ?
sourcesByKindForPredecessor:
sourcesByKindForSuccessor;
}
public Optional pickerResult(SingleOrRange階層要素 _階層要素){
Optional ofNullable = Optional.ofNullable(pickerResultByKind.get(_階層要素));
return ofNullable;
}
public void add(
SingleOrRange階層要素 _階層要素 ,
Sources.PredecessorOrSuccessor predecessorOrSuccessor ,
AddressToken addressToken) {
Map map = get(predecessorOrSuccessor);
map.put(_階層要素, addressToken);
}
public enum PredecessorOrSuccessor{
predecessor,
successor,
;
public boolean isPredecessor() {
return this == predecessor;
}
public boolean isSuccessor() {
return this == successor;
}
}
public void remove(SingleOrRange階層要素 _階層要素 , Sources.PredecessorOrSuccessor predecessorOrSuccessor) {
Map map = get(predecessorOrSuccessor);
map.remove(_階層要素);
}
public Optional get(
SingleOrRange階層要素 _階層要素 , Sources.PredecessorOrSuccessor predecessorOrSuccessor){
Map sourceByKind = get(predecessorOrSuccessor);
return Optional.ofNullable(sourceByKind.get(_階層要素));
}
public Set> getAll(
Sources.PredecessorOrSuccessor predecessorOrSuccessor) {
return get(predecessorOrSuccessor).entrySet();
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy