package org.gbif.checklistbank.cli.normalizer;
import org.gbif.api.vocabulary.Rank;
import org.gbif.dwc.terms.Term;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import com.google.common.collect.Maps;
import com.google.common.base.Splitter;
/**
* Settings uses during the insert of the dwc archive into neo.
*/
public class InsertMetadata {
private boolean coreIdUsed;
private boolean denormedClassificationMapped;
private boolean originalNameMapped;
private boolean acceptedNameMapped;
private boolean parentNameMapped;
private Map<Term, Splitter> multiValueDelimiters = Maps.newHashMap();
private int records;
private int ignored;
private Map<Rank, AtomicInteger> recordsByRank = Maps.newHashMap();
/**
* @return true if the coreID of the core records is used instead of a column mapped to the taxonID term.
*/
public boolean isCoreIdUsed() {
return coreIdUsed;
}
public void setCoreIdUsed(boolean coreIdUsed) {
this.coreIdUsed = coreIdUsed;
}
public boolean isDenormedClassificationMapped() {
return denormedClassificationMapped;
}
public void setDenormedClassificationMapped(boolean denormedClassificationMapped) {
this.denormedClassificationMapped = denormedClassificationMapped;
}
public boolean isOriginalNameMapped() {
return originalNameMapped;
}
public void setOriginalNameMapped(boolean originalNameMapped) {
this.originalNameMapped = originalNameMapped;
}
public boolean isAcceptedNameMapped() {
return acceptedNameMapped;
}
public void setAcceptedNameMapped(boolean acceptedNameMapped) {
this.acceptedNameMapped = acceptedNameMapped;
}
public boolean isParentNameMapped() {
return parentNameMapped;
}
public void setParentNameMapped(boolean parentNameMapped) {
this.parentNameMapped = parentNameMapped;
}
public Map<Term, Splitter> getMultiValueDelimiters() {
return multiValueDelimiters;
}
public void incRank(Rank rank) {
if (rank != null) {
if (!recordsByRank.containsKey(rank)) {
recordsByRank.put(rank, new AtomicInteger(1));
} else {
recordsByRank.get(rank).getAndIncrement();
}
}
}
public int getRecords() {
return records;
}
public void incRecords() {
records++;
}
public int getIgnored() {
return ignored;
}
public void incIgnored() {
ignored++;
}
}