package org.solrmarc.index.specification; import org.marc4j.marc.DataField; import org.marc4j.marc.VariableField; import org.solrmarc.index.specification.conditional.Condition; public class SingleLinkedDataFieldSpecification extends SingleDataFieldSpecification { String lnkTag; public SingleLinkedDataFieldSpecification(String tag, String subfields, Condition cond) { super(tag, subfields, cond); lnkTag = tag.substring(3); tags[0] = "880"; } public SingleLinkedDataFieldSpecification(String tag, String subfields) { this(tag, subfields, null); } private SingleLinkedDataFieldSpecification(SingleLinkedDataFieldSpecification toClone) { super(toClone); this.lnkTag = toClone.lnkTag; tags[0] = "880"; } @Override protected boolean specMatches(String tag, VariableField f) { String stag = this.lnkTag; if (tag.equals("880") && ((DataField) f).getSubfield('6') != null && ((DataField) f).getSubfield('6').getData().startsWith(stag)) { return (true); } return false; } @Override public Object makeThreadSafeCopy() { return new SingleLinkedDataFieldSpecification(this); } }