package org.icij.extract.document; import org.apache.tika.metadata.Metadata; import org.apache.tika.metadata.TikaCoreProperties; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; public abstract class AbstractIdentifier implements Identifier { private final String key; final String algorithm; final Charset charset; public AbstractIdentifier(final String algorithm, final Charset charset) { key = TikaCoreProperties.TIKA_META_PREFIX + "digest" + Metadata.NAMESPACE_PREFIX_DELIMITER + algorithm .replace("-", ""); this.algorithm = algorithm; this.charset = charset; } public AbstractIdentifier() { this("SHA256", StandardCharsets.US_ASCII); } @Override public String hash(final Document document) { return retrieveHash(document.getMetadata()); } @Override public String retrieveHash(final Metadata metadata) { return metadata.get(key); } }