
de.gwdg.metadataqa.marc.MarcField Maven / Gradle / Ivy
package de.gwdg.metadataqa.marc;
import de.gwdg.metadataqa.marc.definition.structure.SubfieldDefinition;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author Péter Király
*/
public class MarcField {
private String code;
private String type;
private String label;
private SubfieldDefinition indicator1;
private SubfieldDefinition indicator2;
private Map subfields = new HashMap<>();
private List subfieldList = new ArrayList<>();
private List validSubfieldCodes = new ArrayList<>();
public MarcField(String code, String type, String label) {
this.code = code;
this.type = type;
this.label = label;
}
public void addSubfield(String code, String type, String label) {
var subfield = new SubfieldDefinition(code, label, type);
switch (code) {
case "ind1": indicator1 = subfield; break;
case "ind2": indicator2 = subfield; break;
default:
subfields.put(code, subfield);
subfieldList.add(subfield);
validSubfieldCodes.add(code);
break;
}
}
public String getCode() {
return code;
}
public void setField(String field) {
this.code = field;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public SubfieldDefinition getIndicator1() {
return indicator1;
}
public void setIndicator1(SubfieldDefinition indicator1) {
this.indicator1 = indicator1;
}
public SubfieldDefinition getIndicator2() {
return indicator2;
}
public void setIndicator2(SubfieldDefinition indicator2) {
this.indicator2 = indicator2;
}
public Map getSubfields() {
return subfields;
}
public List getSubfieldList() {
return subfieldList;
}
public void setSubfieldList(List subfields) {
this.subfieldList = subfields;
}
public List getValidSubfieldCodes() {
return validSubfieldCodes;
}
public void setValidSubfieldCodes(List validSubfieldCodes) {
this.validSubfieldCodes = validSubfieldCodes;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy