Make List type safe. Remove/suppress all warnings.
[marc4j.git] / src / org / marc4j / marc / impl / RecordImpl.java
index b6b8a8c..ceb6249 100644 (file)
@@ -26,6 +26,7 @@ import java.util.Iterator;
 import java.util.List;\r
 \r
 import org.marc4j.marc.ControlField;\r
+import org.marc4j.marc.DataField;\r
 import org.marc4j.marc.IllegalAddException;\r
 import org.marc4j.marc.Leader;\r
 import org.marc4j.marc.Record;\r
@@ -39,13 +40,18 @@ import org.marc4j.marc.VariableField;
  */\r
 public class RecordImpl implements Record {\r
 \r
+    /**\r
+     * \r
+     */\r
+    private static final long serialVersionUID = 1906886225329068668L;\r
+\r
     private Long id;\r
 \r
     private Leader leader;\r
 \r
-    private List controlFields;\r
+    private List<ControlField> controlFields;\r
 \r
-    private List dataFields;\r
+    private List<DataField> dataFields;\r
 \r
     private String type;\r
 \r
@@ -53,8 +59,8 @@ public class RecordImpl implements Record {
      * Creates a new <code>Record</code>.\r
      */\r
     public RecordImpl() {\r
-        controlFields = new ArrayList();\r
-        dataFields = new ArrayList();\r
+        controlFields = new ArrayList<ControlField>();\r
+        dataFields = new ArrayList<DataField>();\r
     }\r
 \r
     public void setType(String type) {\r
@@ -87,6 +93,7 @@ public class RecordImpl implements Record {
      *             when the parameter is not a <code>VariableField</code>\r
      *             instance\r
      */\r
+    @SuppressWarnings("unchecked")\r
     public void addVariableField(VariableField field) {\r
         if (!(field instanceof VariableField))\r
             throw new IllegalAddException("Expected VariableField instance");\r
@@ -94,15 +101,16 @@ public class RecordImpl implements Record {
         String tag = field.getTag();\r
         if (Verifier.isControlNumberField(tag)) {\r
             if (Verifier.hasControlNumberField(controlFields))\r
-                controlFields.set(0, field);\r
+              // TODO create converter from VariableField to ControlField\r
+              controlFields.set(0, ((ControlField) field));\r
             else\r
-                controlFields.add(0, field);\r
+                controlFields.add(0, ((ControlField) field));\r
             Collections.sort(controlFields);\r
         } else if (Verifier.isControlField(tag)) {\r
-            controlFields.add(field);\r
+            controlFields.add(((ControlField) field));\r
             Collections.sort(controlFields);\r
         } else {\r
-            dataFields.add(field);\r
+            dataFields.add(((DataField) field));\r
             Collections.sort(dataFields);\r
         }\r
 \r
@@ -129,16 +137,17 @@ public class RecordImpl implements Record {
             return null;\r
     }\r
 \r
-    public List getControlFields() {\r
+    public List<ControlField> getControlFields() {\r
         return controlFields;\r
     }\r
 \r
-    public List getDataFields() {\r
+    public List<DataField> getDataFields() {\r
         return dataFields;\r
     }\r
 \r
     public VariableField getVariableField(String tag) {\r
-        Iterator i;\r
+        @SuppressWarnings("rawtypes")\r
+       Iterator i;\r
         if (Verifier.isControlField(tag))\r
             i = controlFields.iterator();\r
         else\r
@@ -151,9 +160,10 @@ public class RecordImpl implements Record {
         return null;\r
     }\r
 \r
-    public List getVariableFields(String tag) {\r
-        List fields = new ArrayList();\r
-        Iterator i;\r
+    public List<VariableField> getVariableFields(String tag) {\r
+        List<VariableField> fields = new ArrayList<VariableField>();\r
+        @SuppressWarnings("rawtypes")\r
+       Iterator i;\r
         if (Verifier.isControlField(tag))\r
             i = controlFields.iterator();\r
         else\r
@@ -166,15 +176,16 @@ public class RecordImpl implements Record {
         return fields;\r
     }\r
 \r
-    public List getVariableFields() {\r
-        List fields = new ArrayList();\r
-        Iterator i;\r
-        i = controlFields.iterator();\r
+    @SuppressWarnings("rawtypes")\r
+    public List<VariableField> getVariableFields() {\r
+        List<VariableField> fields = new ArrayList<VariableField>();\r
+       Iterator i;\r
+        i = ((List) controlFields).iterator();\r
         while (i.hasNext())\r
-            fields.add(i.next());\r
+            fields.add((VariableField) i.next());\r
         i = dataFields.iterator();\r
         while (i.hasNext())\r
-            fields.add(i.next());\r
+            fields.add((VariableField) i.next());\r
         return fields;\r
     }\r
 \r
@@ -184,7 +195,8 @@ public class RecordImpl implements Record {
         return(result);\r
     }\r
 \r
-    public List getVariableFields(String[] tags) {\r
+    @SuppressWarnings({ "rawtypes", "unchecked" })\r
+    public List<VariableField> getVariableFields(String[] tags) {\r
         List list = new ArrayList();\r
         for (int i = 0; i < tags.length; i++) {\r
             String tag = tags[i];\r
@@ -228,7 +240,8 @@ public class RecordImpl implements Record {
         sb.append("LEADER ");\r
         sb.append(getLeader().toString());\r
         sb.append('\n');\r
-        Iterator i = getVariableFields().iterator();\r
+        @SuppressWarnings("rawtypes")\r
+       Iterator i = getVariableFields().iterator();\r
         while (i.hasNext()) {\r
             VariableField field = (VariableField) i.next();\r
             sb.append(field.toString());\r
@@ -237,9 +250,12 @@ public class RecordImpl implements Record {
         return sb.toString();\r
     }\r
 \r
-    public List find(String pattern) {\r
-        List result = new ArrayList();\r
-        Iterator i = controlFields.iterator();\r
+    @SuppressWarnings("unchecked")\r
+    public List<VariableField> find(String pattern) {\r
+        @SuppressWarnings("rawtypes")\r
+       List result = new ArrayList();\r
+        @SuppressWarnings("rawtypes")\r
+       Iterator i = controlFields.iterator();\r
         while (i.hasNext()) {\r
             VariableField field = (VariableField) i.next();\r
             if (field.find(pattern))\r
@@ -254,7 +270,8 @@ public class RecordImpl implements Record {
         return result;\r
     }\r
 \r
-    public List find(String tag, String pattern) {\r
+    @SuppressWarnings({ "unchecked", "rawtypes" })\r
+    public List<VariableField> find(String tag, String pattern) {\r
         List result = new ArrayList();\r
         Iterator i = getVariableFields(tag).iterator();\r
         while (i.hasNext()) {\r
@@ -265,7 +282,8 @@ public class RecordImpl implements Record {
         return result;\r
     }\r
 \r
-    public List find(String[] tag, String pattern) {\r
+    @SuppressWarnings({ "rawtypes", "unchecked" })\r
+    public List<VariableField> find(String[] tag, String pattern) {\r
         List result = new ArrayList();\r
         Iterator i = getVariableFields(tag).iterator();\r
         while (i.hasNext()) {\r