
de.gwdg.metadataqa.marc.Utils Maven / Gradle / Ivy
package de.gwdg.metadataqa.marc;
import de.gwdg.metadataqa.marc.dao.DataField;
import de.gwdg.metadataqa.marc.definition.structure.ControlfieldPositionDefinition;
import de.gwdg.metadataqa.marc.definition.structure.DataFieldDefinition;
import de.gwdg.metadataqa.marc.definition.MarcVersion;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Péter Király
*/
public class Utils {
private Utils() {
}
public static List generateCodes(String... input) {
if (input.length % 2 != 0) {
throw new IllegalArgumentException("Number of input should be even");
}
List codes = new ArrayList<>();
for (int i = 0, len = input.length; i < len; i += 2) {
codes.add(new EncodedValue(input[i], input[i + 1]));
}
return codes;
}
public static List generateControlPositionList(ControlfieldPositionDefinition... input) {
List list = new ArrayList<>();
list.addAll(Arrays.asList(input));
return list;
}
public static String extractPackageName(DataField field) {
return extractPackageName(field.getDefinition());
}
public static String extractPackageName(DataFieldDefinition field) {
return field.getClass().getPackage().getName()
.replace("de.gwdg.metadataqa.marc.definition.tags.", "")
.replace("de.gwdg.metadataqa.marc.utils.", "")
;
}
public static String extractPackageName(Class extends DataFieldDefinition> field) {
return field.getPackage().getName()
.replace("de.gwdg.metadataqa.marc.definition.tags.", "")
.replace("de.gwdg.metadataqa.marc.utils.", "")
;
}
public static MarcVersion getVersion(DataFieldDefinition field) {
return package2version(extractPackageName(field));
}
public static MarcVersion getVersion(Class extends DataFieldDefinition> field) {
return package2version(extractPackageName(field));
}
public static MarcVersion package2version(String packageName) {
MarcVersion version;
switch (packageName) {
case "bltags": version = MarcVersion.BL; break;
case "dnbtags": version = MarcVersion.DNB; break;
case "fennicatags": version = MarcVersion.FENNICA; break;
case "genttags": version = MarcVersion.GENT; break;
case "oclctags": version = MarcVersion.OCLC; break;
case "sztetags": version = MarcVersion.SZTE; break;
case "nkcrtags": version = MarcVersion.NKCR; break;
case "uvatags": version = MarcVersion.UVA; break;
case "b3kattags": version = MarcVersion.B3KAT; break;
case "kbrtags": version = MarcVersion.KBR; break;
default: version = MarcVersion.MARC21; break;
}
return version;
}
public static List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy