Make List type safe. Remove/suppress all warnings.
[marc4j.git] / src / org / marc4j / marc / impl / SubfieldImpl.java
1 // $Id: SubfieldImpl.java,v 1.4 2006/08/04 12:31:41 bpeters Exp $\r
2 /**\r
3  * Copyright (C) 2004 Bas Peters\r
4  *\r
5  * This file is part of MARC4J\r
6  *\r
7  * MARC4J is free software; you can redistribute it and/or\r
8  * modify it under the terms of the GNU Lesser General Public \r
9  * License as published by the Free Software Foundation; either \r
10  * version 2.1 of the License, or (at your option) any later version.\r
11  *\r
12  * MARC4J is distributed in the hope that it will be useful,\r
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
15  * Lesser General Public License for more details.\r
16  *\r
17  * You should have received a copy of the GNU Lesser General Public \r
18  * License along with MARC4J; if not, write to the Free Software\r
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
20  */\r
21 package org.marc4j.marc.impl;\r
22 \r
23 import java.util.regex.Matcher;\r
24 import java.util.regex.Pattern;\r
25 \r
26 import org.marc4j.marc.Subfield;\r
27 \r
28 /**\r
29  * Represents a subfield in a MARC record.\r
30  * \r
31  * @author Bas Peters\r
32  * @version $Revision: 1.4 $\r
33  */\r
34 public class SubfieldImpl implements Subfield {\r
35 \r
36     /**\r
37      *  \r
38      */\r
39     private static final long serialVersionUID = -5652216007819993017L;\r
40 \r
41     private Long id;\r
42     \r
43     private char code;\r
44 \r
45     private String data;\r
46 \r
47     /**\r
48      * Creates a new <code>Subfield</code>.\r
49      */\r
50     public SubfieldImpl() {\r
51     }\r
52 \r
53     /**\r
54      * Creates a new <code>Subfield</code> and sets the data element\r
55      * identifier.\r
56      * \r
57      * @param code\r
58      *            the data element identifier\r
59      */\r
60     public SubfieldImpl(char code) {\r
61         this.setCode(code);\r
62     }\r
63 \r
64     /**\r
65      * Creates a new <code>Subfield</code> and sets the data element\r
66      * identifier and the data element.\r
67      * \r
68      * @param code\r
69      *            the data element identifier\r
70      * @param data\r
71      *            the data element\r
72      */\r
73     public SubfieldImpl(char code, String data) {\r
74         this.setCode(code);\r
75         this.setData(data);\r
76     }\r
77 \r
78     public void setCode(char code) {\r
79         this.code = code;\r
80     }\r
81 \r
82     public char getCode() {\r
83         return code;\r
84     }\r
85 \r
86     public void setData(String data) {\r
87         this.data = data;\r
88     }\r
89 \r
90     public String getData() {\r
91         return data;\r
92     }\r
93 \r
94     public boolean find(String pattern) {\r
95         Pattern p = Pattern.compile(pattern);\r
96         Matcher m = p.matcher(getData());\r
97         return m.find();\r
98     }\r
99 \r
100     /**\r
101      * Returns a string representation of this subfield.\r
102      * \r
103      * <p>\r
104      * Example:\r
105      * \r
106      * <pre>\r
107      * $aSummerland /\r
108      * </pre>\r
109      * \r
110      * @return String - a string representation of this subfield\r
111      */\r
112     public String toString() {\r
113         return "$" + getCode() + getData();\r
114     }\r
115     \r
116     public void setId(Long id) {\r
117         this.id = id;\r
118     }\r
119 \r
120     public Long getId() {\r
121         return id;\r
122     }\r
123 \r
124 }\r