X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Forg%2Fmarc4j%2Fmarc%2Fimpl%2FRecordImpl.java;fp=src%2Forg%2Fmarc4j%2Fmarc%2Fimpl%2FRecordImpl.java;h=ceb6249bdaa95fd954936470fe8625e3610bf526;hb=50f32ab70a47cf0d329bf65a596f94dbb413c76f;hp=b6b8a8ccb67b011b230b25f100896b80884c8aaf;hpb=fa7e8c01ac0a2009caeca46135a0df80da2c2d52;p=marc4j.git diff --git a/src/org/marc4j/marc/impl/RecordImpl.java b/src/org/marc4j/marc/impl/RecordImpl.java index b6b8a8c..ceb6249 100644 --- a/src/org/marc4j/marc/impl/RecordImpl.java +++ b/src/org/marc4j/marc/impl/RecordImpl.java @@ -26,6 +26,7 @@ import java.util.Iterator; import java.util.List; import org.marc4j.marc.ControlField; +import org.marc4j.marc.DataField; import org.marc4j.marc.IllegalAddException; import org.marc4j.marc.Leader; import org.marc4j.marc.Record; @@ -39,13 +40,18 @@ import org.marc4j.marc.VariableField; */ public class RecordImpl implements Record { + /** + * + */ + private static final long serialVersionUID = 1906886225329068668L; + private Long id; private Leader leader; - private List controlFields; + private List controlFields; - private List dataFields; + private List dataFields; private String type; @@ -53,8 +59,8 @@ public class RecordImpl implements Record { * Creates a new Record. */ public RecordImpl() { - controlFields = new ArrayList(); - dataFields = new ArrayList(); + controlFields = new ArrayList(); + dataFields = new ArrayList(); } public void setType(String type) { @@ -87,6 +93,7 @@ public class RecordImpl implements Record { * when the parameter is not a VariableField * instance */ + @SuppressWarnings("unchecked") public void addVariableField(VariableField field) { if (!(field instanceof VariableField)) throw new IllegalAddException("Expected VariableField instance"); @@ -94,15 +101,16 @@ public class RecordImpl implements Record { String tag = field.getTag(); if (Verifier.isControlNumberField(tag)) { if (Verifier.hasControlNumberField(controlFields)) - controlFields.set(0, field); + // TODO create converter from VariableField to ControlField + controlFields.set(0, ((ControlField) field)); else - controlFields.add(0, field); + controlFields.add(0, ((ControlField) field)); Collections.sort(controlFields); } else if (Verifier.isControlField(tag)) { - controlFields.add(field); + controlFields.add(((ControlField) field)); Collections.sort(controlFields); } else { - dataFields.add(field); + dataFields.add(((DataField) field)); Collections.sort(dataFields); } @@ -129,16 +137,17 @@ public class RecordImpl implements Record { return null; } - public List getControlFields() { + public List getControlFields() { return controlFields; } - public List getDataFields() { + public List getDataFields() { return dataFields; } public VariableField getVariableField(String tag) { - Iterator i; + @SuppressWarnings("rawtypes") + Iterator i; if (Verifier.isControlField(tag)) i = controlFields.iterator(); else @@ -151,9 +160,10 @@ public class RecordImpl implements Record { return null; } - public List getVariableFields(String tag) { - List fields = new ArrayList(); - Iterator i; + public List getVariableFields(String tag) { + List fields = new ArrayList(); + @SuppressWarnings("rawtypes") + Iterator i; if (Verifier.isControlField(tag)) i = controlFields.iterator(); else @@ -166,15 +176,16 @@ public class RecordImpl implements Record { return fields; } - public List getVariableFields() { - List fields = new ArrayList(); - Iterator i; - i = controlFields.iterator(); + @SuppressWarnings("rawtypes") + public List getVariableFields() { + List fields = new ArrayList(); + Iterator i; + i = ((List) controlFields).iterator(); while (i.hasNext()) - fields.add(i.next()); + fields.add((VariableField) i.next()); i = dataFields.iterator(); while (i.hasNext()) - fields.add(i.next()); + fields.add((VariableField) i.next()); return fields; } @@ -184,7 +195,8 @@ public class RecordImpl implements Record { return(result); } - public List getVariableFields(String[] tags) { + @SuppressWarnings({ "rawtypes", "unchecked" }) + public List getVariableFields(String[] tags) { List list = new ArrayList(); for (int i = 0; i < tags.length; i++) { String tag = tags[i]; @@ -228,7 +240,8 @@ public class RecordImpl implements Record { sb.append("LEADER "); sb.append(getLeader().toString()); sb.append('\n'); - Iterator i = getVariableFields().iterator(); + @SuppressWarnings("rawtypes") + Iterator i = getVariableFields().iterator(); while (i.hasNext()) { VariableField field = (VariableField) i.next(); sb.append(field.toString()); @@ -237,9 +250,12 @@ public class RecordImpl implements Record { return sb.toString(); } - public List find(String pattern) { - List result = new ArrayList(); - Iterator i = controlFields.iterator(); + @SuppressWarnings("unchecked") + public List find(String pattern) { + @SuppressWarnings("rawtypes") + List result = new ArrayList(); + @SuppressWarnings("rawtypes") + Iterator i = controlFields.iterator(); while (i.hasNext()) { VariableField field = (VariableField) i.next(); if (field.find(pattern)) @@ -254,7 +270,8 @@ public class RecordImpl implements Record { return result; } - public List find(String tag, String pattern) { + @SuppressWarnings({ "unchecked", "rawtypes" }) + public List find(String tag, String pattern) { List result = new ArrayList(); Iterator i = getVariableFields(tag).iterator(); while (i.hasNext()) { @@ -265,7 +282,8 @@ public class RecordImpl implements Record { return result; } - public List find(String[] tag, String pattern) { + @SuppressWarnings({ "rawtypes", "unchecked" }) + public List find(String[] tag, String pattern) { List result = new ArrayList(); Iterator i = getVariableFields(tag).iterator(); while (i.hasNext()) {